LWP::UserAgent get() urlencoding?
|
Seitenanfang |
Hallo, ich habe eine Zeile die wie folgt aussieht: $req = $ua->get($host."/index.php?name=<?php echo 'Fab'; ?>");funktioniert,aber... der teil "<?php echo 'Fab'; ?>" wird encodiert zu "%3C?php%20echo%20'Fab';%20?%3E" (in der log datei) gibt es irgendeine möglichkeit das automatische encodieren auszuschalten bzw zu stoppen? mit "IO::Socket" und der dementsprechenden Anfrage wird der Teil nicht encodiert! mfg
Datum: 15.05.2008-15:00

|
re: LWP::UserAgent get() urlencoding?
|
Seitenanfang |
| Hallo! Mit LWP::UserAgent->get() holst du die Seite mit dem http-Protokoll. In diesem dürfen die encodierten Zeichen in eine Adresse nicht vorkommen, deshalb müssen diese kodiert werden. Die einzigste Möglichkeit, die ich da sehe, ist die Adresse nachträglich im Skript zurückzuwandeln. Dafür gibt es sicherlich schon vorgefertigte Lösungen auf CPAN. Aber zu etwas anderem: Du überträgst hier offensichtlich php-code über die Argumente. Ich hoffe doch, dass du das nur lokal zu Testzwecken machst, und dieses Skript nie auf einem öffentlich zugänglichen Webserver landet. Sonst ist deine Seite schneller gehackt, als du sie komplett hochladen kannst. Grüße, Skrilax
Datum: 15.05.2008-21:18

|
re: LWP::UserAgent get() urlencoding?
|
Seitenanfang |
| ja natürlich...nicht unbedingt günstig php code über ein parameter auszuführen ^__^ aber sonst gibt es wohl keine lösung :(?
Datum: 15.05.2008-22:26

|
re: LWP::UserAgent get() urlencoding?
|
Seitenanfang |
| Wieso stören dich eigentlich die kodierungen in den logs? Wenn du dir diese Frage beantwortet hast, erübrigt sich vlt. schon alles weitere. ;-) Andernfalls: Stört es dich, weil du die Logs nachträglich irgendwo auf einer Webseite o.a. darstellen willst? In diesem Fall kannst du die Kodierungen ja auch vor der Ausgabe noch per RA bzw. CPAN-Modul rückwandeln. Die brutale Variante wäre auch, die Kodierung vor dem Abspeichern über einen LogHandler im Apachen mit mod_perl entsprechend zu ändern. Dazu brauchst du allerdings Zugriff auf die Konfiguration des Webservers.
Datum: 16.05.2008-10:27

|
re: LWP::UserAgent get() urlencoding?
|
Seitenanfang |
| also hauptsächlich möchte ich selbst die kodierung definieren...ich möchte nicht dass,das programm dies von selbst macht... könntest du mir eine seite zu dem genannten CPAN nennen? mfg.
Datum: 16.05.2008-10:28

|
re: LWP::UserAgent get() urlencoding?
|
Seitenanfang |
| Selbst definieren? Diese Kodierung ist im http-Protokoll festgelegt! Das einzigste, was du mit einer eigenen Kodierung erreichst, ist das der Webserver völlig deformierte Argumente an das Skript weiterreicht. Und ich frage noch mal: Warum stört dich überhaupt diese Kodierung in den Logs? CPAN ist die offizielle Sammelstelle aller Perl-Module. Noch nie gehört? http://cpan.org/
Datum: 16.05.2008-12:04

|
re: LWP::UserAgent get() urlencoding?
|
Seitenanfang |
Die Kodierung stört mich,da ich ein PHP argument übergeben möchte. (welches direkt vom Script bearbeitet werden kann) zudem sollte diese Freiheit dem Nutzer auch gelassen werden,finde ich!Mfg.
Datum: 17.05.2008-15:10

|
re: LWP::UserAgent get() urlencoding?
|
Seitenanfang |
| Ok, ich versuche mal, deine Situation zusammenzufassen: Du hast ein Skript, das in den Parametern Sonderzeichen entgegennehmen will (php-code), die automatisch vom Browser bzw von LWP::UserAgent->get() kodiert werden. Du fürchtest nun, das das Skript die Parameter auf diese Weise verstümmelt empfängt und somit nichts mehr damit anzufangen weiß. Soweit Richtig? Ich nehme doch mal an, das du die url-Parameter mit dem CGI-Modul oder einem Äquivalent einliest. Dieses Modul wandelt sämtliche Kodierung zurück, bevor die Parameter an das Skript übergeben werden. Somit findet sich diese Kodierung tatsächlich nur in den Logs, das Skript sollte davon nie etwas mitbekommen. Oder wo genau liegt nun das Problem? Ich habe bisher noch nicht verstanden, wo dir diese Kodierung nun genau ein Bein stellt.
Datum: 17.05.2008-19:54

|
re: LWP::UserAgent get() urlencoding?
|
Seitenanfang |
| "Du hast ein Skript, das in den Parametern Sonderzeichen entgegennehmen will (php-code), die automatisch vom Browser bzw von LWP::UserAgent->get() kodiert werden. Du fürchtest nun, das das Skript die Parameter auf diese Weise verstümmelt empfängt und somit nichts mehr damit anzufangen weiß. Soweit Richtig?" richtig,2ter teil,ist doch auch egal oder nicht? ich möchte es nun mal so....aber es gibt wohl keine möglichkeit dies zu realisieren :(
Datum: 18.05.2008-14:50

|