mySQL: URL richtig eintragen und auslesen?

  • Moin!
    Wie war das noch mit den Sonderzeichen, verschlüsseln, entschlüsseln usw. beim Übergeben der Formularergebnisse und die korrekte Weiterverarbeitung?
    Zur Erläuterung drei Codeschnipsel.
    Ich habe eine Seite für die Eingabe einer URL

    Formularergebnis wird an diese Datei gesendet, die dann so auswertet:

    Code
    Eingabe in mysql-DB speichern
    
    
    <?
    include("../db.php");
    if(strlen($url) < 5 || strlen($bild) < 5)
    echo"Das Bild wurde erfolgreich hinzugefügt!";
    mysql_query("INSERT INTO datenbank (url, bild, views, klicks) VALUES ('$url', '$bild', 0, 0)");
    }
    ?>


    Anschliessend wird mit einer anderen Datei aus der DB ausgelesen und dargestellt

    Nun habe ich den Effekt, dass die Übergabe der URL nicht klappt. aus einem Slash wird %2F usw. Wäre eigentlich nicht schlimm, aber die Überprüfung scheitert, die URL wird nicht zugelassen. Auch die Ausgabe würde nicht funktionieren, weil statt einem Slash ja %2F ausgegeben und zum Browser übertragen wird.

    Da gibt es doch was mit escape und unescape, oder? ...wie war das noch?
    Wär prima, wenn mir da jemand bei der syntaktisch richtigen Einbindung helfen könnte.

    Gruß
    webbie

  • Hoi =)
    Grundsätzlich würde ich Formularwerte mit $_POST['url'] oder $_GET['url'] auslesen.

    Zur Frage:
    Versuche es einmal mit addslashes($url) beim Eintragen und stripslashes($url) beim Auslesen aus der Datenbank.

    addslashes fügt vor "Sonderzeichen" (nur ein paar bestimmten, z.B. slash, Aprostroph, ...) ein Backslash hinzu, damit das nachfolgende Zeichen auch wirklich als solches Zeichen angesehen wird.
    stripslashes macht das Gegenteil, ist also zum Auslesen.

    Dies wird wirklich, wie du geschrieben hast, "escapen" genannt, man escapet also die Sonderzeichen, die sonst falsch gespeichert werden.

    Am besten:
    http://www.php.net/addslashes
    http://www.php.net/stripslashes

  • Hey Baloo,
    ich habe ganz vergessen mich für Deinen Hinweis zu bedanken. Will das eben nachholen, so etwas ist mir wichtig.
    Ich konnte es mangels Zeit noch nicht testen, habe die Sache erstmal auf Eis gelegt, aber ich geh da nochmal bei. Dank Deiner Hinweise werde ich es hinbekommen ;)
    Frohes Fest wünscht Dir
    webbie