er macht aus "|12" ... "%7C12"

Status
Nicht offen für weitere Antworten.

Vaio82

Erfahrenes Mitglied
Eine kleine Frage :)

Woran liegt es, dass er mir diesen Link so darstellt?

PHP:
http://www.clausgrm.com/home/search.php?section=%7C12&searchstring=php
http://www.clausgrm.com/home/search.php?section=|12&searchstring=php

Der Code des Formulars lautet so:

PHP:
<form action="/home/search.php" method="get" name="search">   
<input type="hidden" name="section" value="|12"> 
<input type="text" size="10" value="" maxsize="50" name="searchstring">   
<input type="submit" value="Suchen...">   
</form>

er macht also aus "|12" ... "%7C12" ... jedoch möchte ich gerne den Strich im Link haben.

LG Claus
 
Es liegt daran, dass das HTTP-Protokoll in der Adressanfrage keine Sonderzeichen erlaubt (oder so).
Da du ja PHP zur Verfügung stehen hast, könntest du es mit der Funktion urldecode lösen.
 
wärst du so nett und würdest mir mal zeigen, wie ich den php code:

PHP:
$a = split ('&', $querystring);
$i = 0;
while ($i < count ($a)) {
    $b = split ('=', $a [$i]);
    echo 'Value for parameter ', htmlspecialchars (urldecode ($b [0])),
         ' is ', htmlspecialchars (urldecode ($b [1])), "<BR>";
    $i++;
}

so ändere, dass er $value modifiziert- und im Anschluß übergeben wird?

[edit]bitte ins PHP-Forum verschieben...[/edit]
 
Oje, du machst dirs vielleicht schwer :)
Es ginbt auch ein Array, das _GET heisst und automatisch alle Daten aus der Addresszeile enthält. Habs grad kurz getestet und es scheint, als ob in _GET die Werte wieder normal drinnen wären.

Ps: Wo hast du das Script her? Es benutzt nämlich schon urldecode!

Anbei ein einfacheres Script, das das gleiche macht.
PHP:
foreach ($_GET as $gkey => $gvalue) {
  echo "Value for Parameter ".htmlspecialchars($gkey);
  echo " is ".htmlspecialchars($gvalue);
}
 
jedoch weiß ich noch immer nicht, wie ich den PHP Code nun so mit dem Formular übergebe, dass er das so übergibt, wie ich es haben will ;-)
 
jedoch weiß ich noch immer nicht, wie ich den PHP Code nun so mit dem Formular übergebe, dass er das so übergibt, wie ich es haben will
???
Willst du, dass das "%7C12" wieder normal angezeigt wird?

Probier droch mal das Script aus.

Ps: Es gibt übrigens einen Edit-Button, mit dem du 2 Posts hintereinander vermeiden kannst!
 
hmm .... wenn ich es mir genau ansehe, modifizierst du ja die GET-Methode. Gut, dann muss ich mir keine Gedanken - um die Integration ins Formular - machen. Habe 2 Mal geposted, da ich dachte, dass du schon am schreiben wärst und den Nachtrag dann vielleicht übersiehst.

Kann es nocht nicht testen, da ich hier keinen Zugriff auf den Code habe. Vielen Dank für deine Hilfe :)
 
Die Darstellung des Links macht nichts.
%7C steht für |
Bei der Abfrage erhält das PHP-Script dann |12 überliefert und nicht %7C12.
 
Status
Nicht offen für weitere Antworten.
Zurück