Script läuft nicht
Tom
- cgi
Hallo!
Ich bin schon etwas verzweifelt, ich dieses Script einfach nicht zum laufen kriege.
Wundersamerweise läuft es aber lokal einwandfrei, es verbindet sich ins I-net und ruft die Daten ab.
Im Netz krieg ich aber nur "500 Internal Server Error" (obwohl Carp qw(fatalsToBrowser); gesetzt ist; LWP::Simple ist laut Provider auch installiert)
Kurzbeschreibung: Das script liest eine Datei (mit Aktienkennnummern) aus, und fragt dann die Aktienkurse im Internet ab. Während dem Vorgang wird der user über den Verlauf informiert. Am Ende werden die Werte in eine Datei geschrieben.
*Ihr seid meine letzte Hoffnung*
#!/usr/local/bin/perl
use CGI::Carp qw(fatalsToBrowser);
use LWP::Simple;
open STATS, "<refresh.txt";
@refresh = <STATS>;
close STATS;
chomp @refresh;
my %nva;
$| = 1;
print "Content-type: text/html\n\n",'<html><div style="text-align:center;font-size:16pt;font-weight:bold">';
foreach (@refresh) {
(my $wkn, my $ort) = split /|/;
print "Suche $wkn ...<br>\n";
my $res = "http://blb.teledata.de:9150/blb/abfrage/ergebnis.html?searchfor=$wkn&searchforb=$ort&searchforicat=Alle+Kategorien";
my @cont = split(/</TD>/,get($res));
$cont[8] =~ /([0-9.]+)<br>/;
$nva{$wkn} = $1;
print "...Vorgang erfolgreich! Neuer Wert: $nva{$wkn} <br>\n";
}
print 'Eintragen der neuen Werte..<br>';
open DATA, "<datasheet.txt";
@data = <DATA>;
close DATA;
$c = 0;
foreach (@data) {
my @temp = split/|/;
STSAZ: foreach (keys %nva) {
if ($_ == $temp[1]) {
$temp[4] = $nva{$_};
$data[$c] = join('|',@temp);
delete $nva{$_};
last STSAZ}
}
$c++}
open DATS, ">datasheet.txt";
print DATS @data;
close DATS;
print '<font size="+1">Alles erledigt!<br><a href="stats.cgi">Zurück</a></font></div></html>';
Hi,
Überprüf mal folgende Punkte:
Hast du die Dateiberechtigungen richtig gesetzt? (Chmod 755)
Hast du das Script im ASCII-Modus übertragen?
Stimmt der Pfad zu Perl?
Hast du auf diesem Server schon andere Scripte zum Laufen gebracht oder ist das das Erste?
Grüße,
Crunch
Hallo
in der Tat war chmod nicht richtig gesetzt (ich hab gleich einige Scripts upgeloadet, und alle auf 755 gesetzt, bis auf das eine *aarragghh*)
Die schlechte Nachricht ist, dass es trotzdem nicht geht :-((
Ich bekomme zwar jetzt den Anfang (Suche ...), er findet jedoch den Wert nicht, und es kommt zum Timeout.
Kann das irgendwie am Server liegen, das LWP::Simple nicht gscheit geht?
Hi,
Kann das irgendwie am Server liegen, das LWP::Simple nicht gscheit geht?
Wenn es der Provider installiert hat, sollte es eigentlich funktionieren. Bei "use LWP::Simple" bekommst du ja anscheinend auch keine Fehlermeldung.
Probier mal, ob du mit einem kleinen Testscript, ob du mit LWP::Simple Dateien übertragen kannst.
z.B.:
#!/usr/bin/perl
use LWP::Simple;
$file = get("http://www.deinedomain.de/index.html");
Wenn das funktioniert, müsste der Fehler in deinem ersten Script liegen.
Grüße,
Crunch
Hallo
Schön langsam hab ich das gefühl, das der Server einfach zu lahm ist, und keine Verbindung aufbauen kann. :-((
Danke trotzdem