alligator Geschrieben 14. November 2001 Geschrieben 14. November 2001 HI zusammen. Also ich hab ein Script geschrieben, dass auf einen Htaccess-geschützen Bereich zugreifen soll, aber anstatt mir die geschütze Datei zurückzugeben, gibt er mir die Fehlermeldung zurück, dass es der falsche Benutzername/Passwort ist. Die stimmen aber. Woran kann das liegen? Hier der Quelltext. #!/usr/bin/perl -w use strict; use LWP::UserAgent; use HTTP::Request::Common qw(POST); my $lwp_user = new LWP::UserAgent; my $url = 'http://User:Passwort@www.domain.de/statistik/domain.de/index.html'; my $Anfrage = POST $url; my $Antwort = $lwp_user->request($Anfrage); my $html = $Antwort->content(); my $Zeit = localtime; open (DATEI,">log.txt"); print DATEI "$Zeit\n\n"; print DATEI $Antwort->content(); close (DATEI); print "Content-type: text/html\n\n"; print <<test; $html test Danke für eure Hilfe, cu alligator Zitieren
BigMac Geschrieben 14. November 2001 Geschrieben 14. November 2001 Die Übermittlung von Username und Passwort sollten korrekt sein... ich weiss auch sonst nicht, was falsch sein könnte... aber warum machst Du es nicht so? #!/usr/bin/perl -w use strict; use LWP::Simple; my $url = "http://User:Passwort@www.domain.de/statistik/domain.de/index.html"; my $html = get $url; my $Zeit = localtime; open (DATEI,">log.txt"); print DATEI "$Zeit\n\n"; print DATEI $url; close (DATEI); print "Content-type: text/html\n\n"; print <<test; $html test Zitieren
alligator Geschrieben 14. November 2001 Autor Geschrieben 14. November 2001 Erstmal thx für die Hilfe BigMac. Hmm was macht den das Modul LWP::Simple genau? Holt es den mit dem "get" den Inhalt von der Url oder wie ? Ich hab das nämlich getestet und ich bekomme rein garnichts zurück? cu alligator Zitieren
BigMac Geschrieben 14. November 2001 Geschrieben 14. November 2001 Ja genau.. in Verbindung mit dem Perl Modul LWP::Simple kannst Du via 'get' den Inhalt der Datei in eine Variable einlesen. LWP::Simple ist geeignet für schnelle Abfragen, z.B. für eine die Du machen willst. HTTP::Request (in Verbindung mit LWP::UserAgent) hingegen benutzt man wenn man mehr Kontrolle über den Header, der gesendet wird, haben will. (nachzulesen in dem Buch 'Programmieren mit Perl Modulen' von O'Reilly Seite 230 ) Versuchs halt erstmal mit einer "normalen" Seite die nicht hinter einem htaccess Schutz liegt.. wenn es dort geht, dann hängt es wohl mit dem htaccess Schutz zusammen. Gruß, Martin <FONT COLOR="#a62a2a" SIZE="1">[ 14. November 2001 12:02: Beitrag 1 mal editiert, zuletzt von BigMac ]</font> Zitieren
alligator Geschrieben 14. November 2001 Autor Geschrieben 14. November 2001 HI Bigmac. Also mit einer normaler Seite tut das Script, aber leide nicht mit so einem Htaccess-Schutz cu alligator Zitieren
BigMac Geschrieben 14. November 2001 Geschrieben 14. November 2001 Mmmh.. und wenn Du diese URL http://User:Passwort@www.domain.de/statistik/domain.de/index.html "normal" im Browser aufrufst, dann umgeht er schon den htaccess Schutz? Zitieren
alligator Geschrieben 14. November 2001 Autor Geschrieben 14. November 2001 Also er macht es zumindest mitm NN 4.7x & NN 6.0. Hab leider grad kein IE zur hand, aber ich denke dann sollte er es auch mit den anderen machen oder ? cu alligator Zitieren
BigMac Geschrieben 14. November 2001 Geschrieben 14. November 2001 Ja,.. denk ich mal auch... Mmh... aber dann ist es komisch, dass es via LWP Modul nicht geht, weil es ja auch nichts anderes macht als die Seite aufrufen. Zitieren
alligator Geschrieben 14. November 2001 Autor Geschrieben 14. November 2001 Hi nochmal, also beim Spotlight-Forum hab ich diese antwort bekommen, aber ich kann leider damit echt nix anfangen, vielleicht ja du BigMacc ? Ich post die Antwort mal hier: > my $url = 'http://User:Passwort@www.domain.de/statistik/domain.de/index.html'; das ist keine URL, wie Du RFC 1738 (http://www.ietf.org/rfc/rfc1738.txt) entnehmen kannst. Sowas durch's Netz zu jagen, bringt allenfalls ein paar Systeme zum Absturz, wofür Du dann übrigens zur Verantwortung zu ziehen bist. Eine URL ist z.B. http://www.domain.de/statistik/domain.de/index.html Welche Header Du dem Request hinzufügen musst, bzw. wie die Kommunikation bei Basic Authentication aussieht, kannst Du RFC 2617 (http://www.ietf.org/rfc/rfc2617.txt) entnehmen. Also wenn du daraus schlau wirst, dann klär mich bitte auf ;-) cu alligator Zitieren
BigMac Geschrieben 14. November 2001 Geschrieben 14. November 2001 Ja,.. er meint also, dass Du das ganze so in dem Format vergessen kannst wegen dem Passwort und dem Usernamen,... da das nicht der Norm entspricht. Joo, also muss Du, wie er sagte, die Daten im Header mit übertragen... moment... ich schau schlag da grad mal was nach... ich war eh vor kurzem hier an der Arbeit auch mit dem LWP beschäftigt Zitieren
BigMac Geschrieben 14. November 2001 Geschrieben 14. November 2001 Okay,... ich hab die Lösung... #!/usr/bin/perl -w use strict; use LWP::userAgent; my $url = "http://www.domain.de/statistik/domain.de/index.html"; my $benutzer = "Username"; my $passwort = "Passwort"; my $ua = LWP::UserAgent->new(); my $anfrage = HTTP::Request->new(GET => $url); $anfrage->authorization_basic($benutzer, $passwort); my $html = $ua->request($anfrage)->as_string; my $Zeit = localtime; open (DATEI,">log.txt"); print DATEI "$Zeit\n\n"; print DATEI $url; close (DATEI); print "Content-type: text/html\n\n"; print <<test; $html test So sollte es funktionieren... aber bei dem letzten Teil in dem ich das Ergebnis in $html reinschreibe bin ich mir nicht sicher... auf jedenfall kannst Du auf das Ergebnis mittels '$ua->request($anfrage)' zugreifen. <FONT COLOR="#a62a2a" SIZE="1">[ 14. November 2001 14:50: Beitrag 1 mal editiert, zuletzt von BigMac ]</font> Zitieren
alligator Geschrieben 14. November 2001 Autor Geschrieben 14. November 2001 WOW BigMAC! Es funktioniert. Supercool. Ich hab blos aus my $html = $ua->request($anfrage)->as_string; dass my $html = $ua->request($anfrage)->content(); gemacht. Vielen vielen Dank !!! cu alligator Zitieren
BigMac Geschrieben 14. November 2001 Geschrieben 14. November 2001 Cool Bitte, bitte... kein Problem Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.