Leerzeichen in $_GET Variable

mrsatx

Grünschnabel
Hallo,

will über die URL mehrere Wörter in einer Variable übergeben.

Bei IE klappts mal wieder ab in Netscape mal wieder nix.

Wenn ein Leerzeichen in der Variable ist die ich mit $_GET aus der URL hole wird das Script nicht richtig ausgeführt.

Ich kann zwar das Leerzeichen durch ein anderes Zeichen austauschen und später wieder ersetzen lassen aber es gibt doch wahrscheinlich n einfacheren Weg oder?

Danke!
 
Hm weiß nich ob das das richtige ist.

Netscape hat glaub ich schon Probleme mit den Leerzeichen in der URL und nicht im Code. Also habe zum Beispiel stehen:

index.php?test1=Nun ist gut&test2=Jetzt reicht es

Wenn ich die Leerzeichen durch andere Zeichen ersetzte und diese im nachhinein austausche klappt es aber das is n bischen umständlich :(

Weiß jetzt nicht ob mir da urldecode() helfen würde da Netscape ja schon die Variable nicht komplett rüberholt mit $_GET.
 
für soetwas würde ich rawurlencode nehmen, wobei glaube net alzu große Unterschiede gibt.

Dieser Befehl bewirkt folgendes

Mit urldecode() kann man einen String (str), der über eine URL übermittelt oder
mit der Funktion urlencode() kodiert wurde, wieder dekodieren.
Bei der Dekodierung werden alle Prozentzeichen(%), gefolgt von zwei
Hexzeichen, wieder in ihre alphanumerische Entsprechung umgewandelt.
Weiterhin werden alle Pluszeichen (+) in Leerzeichen umgewandelt.

Folgende alphanumerischen Zeichen werden nicht dekodiert:
- - Bindestrich
_ - Unterstrich
. - Punkt

PHP:
<?PHP
$var = "Der Wald ist voller Bäume";
echo $var . "<br>";
$var_encode = rawurlencode($var);
echo $var_encode . "<br>";
echo '<A HREF="index.php?text=' . $var_encode . '">Senden</A>';
?>

Die Ausgabe dazu wäre

Der Wald ist voller Bäume
Der%20Wald%20ist%20voller%20B%E4ume
Senden


Sprich, du hast nun keine leerzeichen mehr in der URL und somit würde es dann gehen.
Musst dann nur noch rawurldecode machen auf der neuen seite
PHP:
$var_decode=rawurldecode($_GET['text']);

habs aber nicht getestet
 
Zurück