Schlumpf: Sonderzeichen in der Adresszeile des Browsers

Hi allezusammen,

ich habe folgendes Problem. Ich habe drei PHP Scripte, die sich nacheinander Informationen übergeben.
Das erste Script liest Namen aus einer Datenbank aus, die werden an das zweite übergen. Bzw. sollen an das zweite übergeben werden.

Dabei passiert folgendes. Der Name lautet "Sperling & Sohn GmbH". Der Browser interpretiert bei der Übergabe nun das & Zeichen als Parametertrenner. Damit werden die Informationen nicht mehr richtig an das zweite Script übergeben.

Gibt es Möglichkeiten auch Namen mit Sonderzeichen in der Kommandozeile des Browsers zu übergeben?

Die Übergabezeile sieht folgendermassen aus:

http://localhost/cardat.php?Hausname=Sperling%20&%20Sohn%20GmbH&Mid=9&art=Panne&KName=&KVName=&KStrasse=&KNr=&KPLZ=&KOrt=&KTel=&KHandy=&KStandort=&KBemerkung=

Ich hoffe ich konnte mein Problem einigermassen verständlich machen.

  1. Hi Schlumpf,

    http://localhost/cardat.php?Hausname=Sperling%20&%20Sohn%20GmbH&Mid=...

    ^^^
    An der Stelle siehste doch schon, wie’s zu machen ist: %20 steht für ein Leerzeichen (Unicode U+0020).

    Das Gleiche machste mit dem "&".
    Gruß,
    Gunnar

    --
    „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
  2. echo $begrüßung;

    Der Browser interpretiert bei der Übergabe nun das & Zeichen als Parametertrenner.

    Der Browser ist unschuldig, das Interpretieren findet auf PHP-Seite statt.

    Wenn Daten an ein bestimmtes Medium übergeben werden sollen, dann sind diese Daten gemäß den Bedingungen dieses Mediums zu kodieren.
    Im Falle einer URL stellt PHP die Funktion urlencode() zur Verfügung.

    echo "$verabschiedung $name";

  3. Hi!

    Dabei passiert folgendes. Der Name lautet "Sperling & Sohn GmbH". Der Browser interpretiert bei der Übergabe nun das & Zeichen als Parametertrenner. Damit werden die Informationen nicht mehr richtig an das zweite Script übergeben.

    Gibt es Möglichkeiten auch Namen mit Sonderzeichen in der Kommandozeile des Browsers zu übergeben?

    Die Übergabezeile sieht folgendermassen aus:

    http://localhost/cardat.php?Hausname=Sperling%20&%20Sohn%20GmbH&Mid=9&art=Panne&KName=&KVName=&KStrasse=&KNr=&KPLZ=&KOrt=&KTel=&KHandy=&KStandort=&KBemerkung=

    Du solltest auf deinen Query-String die Funktion urlencode() loslassen.

    Grüße,
    Fabian St.