Lynx: Wieso klappt URL-Encoding mit addslashes aber nicht mit urlencode?

testit

Well-Known Member
Hallo,

Code:
$url=[B]addslashes[/B]("http://www.domain.de/cgi-bin/script.cgi?query=suchwort&submit=Suche");
passthru("/usr/local/bin/lynx -connect_timeout=120 -source $url");

liefert bei mir aus einem PHP-Script ein einwandfreies Ergebnis der Suchanfrage!

Weiss jemand, warum bei Lynx ein URL-Encoding mittel urlencode oder rawurlencode NICHT zum gewünschten Ergebnis bei mir führt, also den QueryString nicht auflöst?

Nette Grüße
testit
 
Ich kann mir gut vorstellen, das du das URLENCODE nur auf den Teil hinter http:// anwenden darfst.
 
Deine Vorstellung trifft zu, daher hatte ich das mit urlencode auch genau so gemacht, wie Du es darstellst.

Ändert aber nichts an dem beschriebenen Problem!

Nette Grüße
testit
 
An sich musst du urlencode() nur auf das 'suchwort' anwenden, da =, ? und & zB nicht mitkodiert werden duerfen da der Server sonst den query string nicht findet, bzw die einzelnen Name-/Wert-Paare unterscheiden kann.
Weiterhin muesstest du dann noch Zeichen escapen die auf der Shell eine besondere Bedeutung haben koennten, also zB &. Ich kenn jetzt PHP nicht (wirklich) aber addslashes() scheint mehr fuer SQL queries gedacht zu sein, fuer die shell gibts wohl escapeshellcmd. Eigentlich waere es IMO besser hier die Shell zu umgehen und lynx direkt ueber execvp(3) zB aufzurufen.
 
Zurück
Oben