Zum Inhalt springen

Perl/CGI auf Htaccess


Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...