Zugriff auf Daten-File auf anderem Server
Kalle
- cgi
Ich will von der Website www.xyz.de über ein CGI/Perlscript auf eine Text-Datei auf der Websuite www.bsp.de zugreifen.
Das Textfile liegt dort im Ordner cgi-bin/data/markt.txt.
Das öffnen der Datei im Script auf Server www.xyz.de über http://www.bsp.de/cgi-bin/data/markt.txt funktioniert nicht. Die Datei wird wohl nicht gefunden oder es liegt an dden Zugriffsrechten.
Was muss ich tun, damit ich an die Daten kommen???
Bitte ganz dringend helfen!!!!
Kalle
Ciao Kalle
Wie holst du dir denn die Daten? Versuchs evtl. mal mit dem Modul LWP::Simple.
Infos zum Gebrauch unter: http://www.perldoc.com/perl5.6.1/lib/lwpcook.html#GET
Gruss, sprain
Ciao Kalle
Wie holst du dir denn die Daten? Versuchs evtl. mal mit dem Modul LWP::Simple.
Ich mach das so:
$filename = "http://www.alpinmarkt.de/cgi-bin/data/markt.txt";
&datei_auf("FILE1","",$filename);
while ($line = &datei_lesen("FILE1")) {
chop($line);
print "$line<BR>\n";
}
close(FILE1);
sub datei_auf {
local ($filevar, $filemode, $filename) = @_;
open ($filevar,$filemode . $filename) ||
die ("$filename konnte nicht geöffnet werden");
}
sub datei_lesen {
local ($filevar) = @_;
<$filevar>;
}
hi!
Ich mach das so:
$filename = "http://www.alpinmarkt.de/cgi-bin/data/markt.txt";
&datei_auf("FILE1","",$filename);
while ($line = &datei_lesen("FILE1")) {
chop($line);
print "$line<BR>\n";
}
close(FILE1);
open() und close() dienen dazu, Dateien zu öffnen/schließen, die auf
einem im System vorhandenen Dateisystem liegen. Sie dienen nicht
dazu, HTTP-Requests abzusetzen. Du kannst damit also keine Dateien
von irgendeinem HTTP-Server im Netz öffnen und auslesen.
sub datei_auf {
local ($filevar, $filemode, $filename) = @_;
open ($filevar,$filemode . $filename) ||
die ("$filename konnte nicht geöffnet werden");
}
sub datei_lesen {
local ($filevar) = @_;
<$filevar>;
}
Wo hast du denn die komischen Funktionen her?
bye, Frank!
Hallo
Ich will von der Website www.xyz.de über ein CGI/Perlscript auf eine Text-Datei auf der Websuite www.bsp.de zugreifen.
Und Du bist sicher, daß Du die Erlaubnis des Betreibers von www.bsp.de hast?
Das Textfile liegt dort im Ordner cgi-bin/data/markt.txt.
Somit hast du zumindest schon mal ein Problem. Der Webserver wird versuchen markt.txt bei einem HTTP-Zugriff als CGI-Programm auszuführen. Da aber markt.txt sicherlich kein CGI-Programm ist, muss dieses fehlschlagen.
Das öffnen der Datei im Script auf Server www.xyz.de über http://www.bsp.de/cgi-bin/data/markt.txt funktioniert nicht. Die Datei wird wohl nicht gefunden oder es liegt an dden Zugriffsrechten.
Gefunden wird die Datei schon. Sie ist aber sicherlich nicht ausführbar, was zu einem "Forbidden" führt. Der Webserver kennt auch sicherlich keinen Interpreter, durch den er .txt-Dateien schicken sollte, falls sie doch ausführbar wären. Eine Möglichkeit bestünde imho darin, die Datei markt.txt ausführbar zu machen (chmod 755) und in die Shebang #!/usr/bin/php.exe zu schreiben, falls die php.exe dort liegen sollte.
Dann könnte PHP die Datei als CGI ausliefern.
Was muss ich tun, damit ich an die Daten kommen???
Den "Besitzer" der Datei fragen, ob er ein kleines Programm installiert, über welches Du indirekt Zugriff auf die Datei bekommst:
========snip==========
#!/usr/bin/perl -w
use strict;
use CGI qw/:standard/; # fuer nur einen Parameter etwas overdone ;)
(my $file = param('file')) =~ tr/a-zA-Z.0-9//cd;
open F, '/usr/local/etc/httpd/htdocs/myweb/cgi-bin/data/'.$file or die $!;
print <F>;
close F;
__END___
=========snap=========
Das kannst Du dann ganz leicht über:
=========snip=========
#!/usr/bin/perl -w
use LWP::Simple;
getprint 'http://www.bsp.de/cgi-bin/get_file.cgi?file=markt.txt';
=========snap=========
von Deinem Server aus aufrufen.
Bitte ganz dringend helfen!!!!
Am besten helfen kann Dir imho der "Webmaster" von www.bsp.de. Vielleicht bittest Du _ihn_ mal um Hilfe. :)
Gruß Alex
--
http://www.google.de/search?hl=de&safe=off&q=Rechtschreibung+Standart