SESSION zeigt leertaste nicht an

  • PHP

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von 3daycliff.

    SESSION zeigt leertaste nicht an

    Moin moin,

    Sehr dumme Frage aber ist es ein PhP Fehler das eine Leertaste nicht bei einer session ausgegeben wird?

    PHP-Quellcode

    1. $uuid = $_SESSION["username"]; //Session heisst 'Justin Back'
    2. ?>
    3. <body>
    4. <div id="content">
    5. <center><h1>Eingeloggt als <?php echo $uuid ?><h1></center> // Hier zeigt er an 'Justin Back'
    6. <hr>
    7. <b> &#149 </b> <b><a href=forum/index.php>Forum</a> </b>
    8. <br>
    9. <b> &#149 </b> <b><a href=profil.php?user=<?php echo $uuid ?>>Profil</a> </b> // Nur im <a href zeigt er nur 'Justin' an
    10. /**
    11. * Im moment sieht die url so aus: profil.php?user=Justin
    12. *
    13. * Soll aber so aussehen: profil.php?user=Justin Back
    14. *
    15. * Oder profil.php?user=Justin Back //Mit dem (funktioniert im editor nicht, fügt leerzeichen ein)
    16. */


    Ich bin da gerade ein bisschen überfordert
    Fragen dürfen gerne via PN gesendet werden ;)

    Ich versuche sie schnell wie möglich zu beantworten und euch zu helfen :)
    Leerzeichen werden in PHP bzw in der URL mit einem '+' escaped...
    Du hast ja die Google-Abfrage nicht so: https://www.google.de/?gws_rd=ssl#q=tool zum aufnehmen
    sondern mit +en:https://www.google.de/?gws_rd=ssl#q=tool+zum+aufnehmen
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Verwende einfach urlencode($uuid).

    Leerzeichen und & Zeichen müssen Escaped werden. Bei Forms wird es bei den Query Parametern meist durch + ersetzt, eigentlich wäre es %2.0 ohne Punkt. Ka wie man es hier im Forum escaped. Also im Prinzip die Hexwert von Space in Unicode bzw Ascii

    LG
    Das ist meine Signatur und sie wird wunderbar sein!
    Das Problem hat nur bedingt was mit dem encoding zu tun. Es würde vollkommen ausreichen, den Attributwert in HTML korrekt in Anführungszeichen zu setzen (schadet nicht und solltest du immer machen, wenn die Werte dynamisch sind): <a href="profil.php?user=<?php echo $uuid ?>">Profil</a>

    Und wenn du schon am ändern bist, mach es bitte so:
    <a href="profil.php?user=<?php echo htmlspecialchars($uuid); ?>">Profil</a>

    Am besten bei JEDER Ausgabe htmlspecialchars (oder etwas äquivalentes) verwenden; Stichwort XSS.
    Hi,

    @3daycliff
    Am besten bei JEDER Ausgabe htmlspecialchars (oder etwas äquivalentes) verwenden; Stichwort XSS.

    Stimmt. Ich empfehle dir zusätzlich noch, für htmlspecialchars den Flag ENT_QUOTES zu setzen, insbesondere wenn du ja HTML-Attribute mit dynamischen Werten füllst. Somit also

    PHP-Quellcode

    1. <a href="profil.php?user=<?php echo htmlspecialchars($uuid, ENT_QUOTES); ?>">Profil</a>



    Link :thumbup:
    Hello World

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Link“ ()

    @Mono Danke dir hatte vergessen urlencode zu benutzen, @Link deine variante funktioniert nicht, und @3daycliff deine auch nicht ^^
    Fragen dürfen gerne via PN gesendet werden ;)

    Ich versuche sie schnell wie möglich zu beantworten und euch zu helfen :)