Script wird downgeloaded statt ausgeführt?
Johnny
- perl
0 Cheatah0 Michael Schröpl
Hallo zusammen,
ich beobachte gerade grübelnd folgendes Phänomen:
Ich habe ein Perl-Script, welches alle zwei Minuten meinen Posteingang kontrolliert und daraufhin Aktionen ausführt. Um das zu realisieren baut das Script eine HTML-Seite auf, die ein Java-Script enthält, welches 120 Sekunden herunterzählt und dann wieder auf das Script "getmails.cgi" verweist (mittels -> top.location.href = "getmails.cgi"). So ruft sich das Script in 120 Sekunden Abstand (nachdem es komplett ausgeführt wurde - es gibt keine Überschneidungen) immer wieder selbst auf und...
...das klappt soweit auch gut - nur manchmal wird nicht das Script ausgeführt, sondern der Internet-Explorer (Ver.6) versucht, das Script herunterzuladen ("Download folgender Datei "getmails.cgi" - Soll diese Datei geöffnet oder auf dem Computer gespeichert werden?"). Wenn ich öffnen angebe, dann öffnet mir mein Editor den Quelltext des Scripts... Applaus... :(
Ich habe alternativ versucht, eine HTML-Seite aufzurufen, die das Script mittels img-Tag aufruft, aber das hat nichts verändert.
Ich habe nicht erkennen können, wieso und wann das Script nicht ausgeführt, sondern downgeloaded wird - so ungefähr jeden 15.ten Schleifendurchlauf erscheint dieses Fenster. Nu bin ich ratlos...
Falls mir jemand dieses Phänomen erklären kann - GREAT! Falls mir jemand eine Alternative nennen kann, wie ich ein Script alle zwei Minuten aufrufen kann (habe keine Cron-Jobs zur Verfügung und es werden Browser-Ausgaben gemacht) - noch besser!
Freue mich auf Eure Hilfestellung - Grazie!
JOhnnY
Hi,
...das klappt soweit auch gut - nur manchmal wird nicht das Script ausgeführt, sondern der Internet-Explorer (Ver.6) versucht, das Script herunterzuladen ("Download folgender Datei "getmails.cgi" - Soll diese Datei geöffnet oder auf dem Computer gespeichert werden?"). Wenn ich öffnen angebe, dann öffnet mir mein Editor den Quelltext des Scripts... Applaus... :(
jessas! Was für ein Server steckt dahinter? Du solltest ihn dringend mit einem Standard-Hackertool von Obi[1] bearbeiten...
Cheatah
[1] Einer Axt also.
Hi,
jessas! Was für ein Server steckt dahinter? Du solltest ihn dringend mit einem Standard-Hackertool von Obi[1] bearbeiten...
Cheatah
[1] Einer Axt also.
So schlimm? Das hätte ich nicht gedacht... Bin bei Puretec, wollte aber sowieso mal wechseln...
Hi,
jessas! Was für ein Server steckt dahinter? Du solltest ihn dringend mit einem Standard-Hackertool von Obi[1] bearbeiten...
[1] Einer Axt also.So schlimm?
ja.
Das hätte ich nicht gedacht... Bin bei Puretec, wollte aber sowieso mal wechseln...
Es _kann_ nur vom Server kommen, dass Du den Quellcode des CGI-Scripts erhälst. Wenn dies auch nur ein einziges Mal passiert, hat der Server ein Sicherheitsleck, welches schon beinahe in die Größenordnung von Microsoft-Programmen kommt. Sollte dies im Live-Betrieb passieren, ist eine Klage gegen Puretec zu überlegen.
Zumindest solltest Du sie auf diesen gravierenden Mangel hinweisen - und erfragen, ob _Du_ etwas falsch gemacht haben könntest (etwa bei der verzeichnislokalen Konfiguration, oder die Puretec-Doku nicht beachtet). Wechseln würde ich aber auf jeden Fall, wenn es Umstände gibt, die ein solches Szenario ermöglichen.
Cheatah
Hi Cheatah,
Es _kann_ nur vom Server kommen, dass Du den Quellcode des CGI-Scripts erhälst. Wenn dies auch nur ein einziges Mal passiert, hat der Server ein Sicherheitsleck, welches schon beinahe in die Größenordnung von Microsoft-Programmen kommt. Sollte dies im Live-Betrieb passieren, ist eine Klage gegen Puretec zu überlegen.
--- yepp, so richtig witzig find ich das Verhalten auch nicht. Ist mir beim Testen der anderen Script online allerdings noch nie aufgefallen...
Zumindest solltest Du sie auf diesen gravierenden Mangel hinweisen - und erfragen, ob _Du_ etwas falsch gemacht haben könntest (etwa bei der verzeichnislokalen Konfiguration, oder die Puretec-Doku nicht beachtet). Wechseln würde ich aber auf jeden Fall, wenn es Umstände gibt, die ein solches Szenario ermöglichen.
--- ja, der legendäre Puretec-Support ist einer der Gründe, warum ich woanders hin will. Die Frage kann ich auch auf einen Zettel schreiben, in eine Flasche stecken, in die Elbe werfen und warten, bis sie in Karlsruhe ankommt... Das höchste der Gefühle ist nach drei-sieben Tagen eine lapidare Email "Selbstgeschriebene Scripte können wir nicht supporten" - Ok, Puretec ist halt zu groß für wirklichen "Kunde-ist-König"-Service... :((
Äh, ok - gut! Das bestätigt mich in meinem Vorhaben, den Provider zu wechseln, wobei mein Problem davon ungerührt bestehen bleibt. Gibt es denn eine elegantere Möglichkeit, ein Script alle 120 Sekunden aufzurufen?
Gracias,
JOhnnY
Hi,
Ist mir beim Testen der anderen Script online allerdings noch nie aufgefallen...
wäre es möglich, dass das Script völlig korrekt abgearbeitet wird, als Daten jedoch seinen eigenen Code (den Inhalt der eigenen Datei) zurückliefert?
--- ja, der legendäre Puretec-Support ist einer der Gründe, warum ich woanders hin will. Die Frage kann ich auch auf einen Zettel schreiben, in eine Flasche stecken, in die Elbe werfen und warten, bis sie in Karlsruhe ankommt...
Du kannst mir den Zettel auch per eMail schicken (falls Du ihn in die Leitung kriegst), und ich bringe ihn dann vorbei ;-)
Das höchste der Gefühle ist nach drei-sieben Tagen eine lapidare Email "Selbstgeschriebene Scripte können wir nicht supporten" - Ok, Puretec ist halt zu groß für wirklichen "Kunde-ist-König"-Service... :((
Damit hast Du bei Massenprovidern immer zu rechnen.
Äh, ok - gut! Das bestätigt mich in meinem Vorhaben, den Provider zu wechseln, wobei mein Problem davon ungerührt bestehen bleibt. Gibt es denn eine elegantere Möglichkeit, ein Script alle 120 Sekunden aufzurufen?
man cron
man crontab
Cheatah
Hi Johnny,
Gibt es denn eine elegantere Möglichkeit, ein Script alle 120 Sekunden aufzurufen?
ist das wirklich das, was Du willst? Du hast noch immer nicht Deine eigentliche Aufgabenstellung verraten - nur die Art Deines Lösungsversuches.
Viele Grüße
Michael
Hi Johnny,
Ich habe ein Perl-Script, welches alle zwei Minuten meinen Posteingang kontrolliert und daraufhin Aktionen ausführt.
Deine Realisierungstechnik via HTTP ist natürlich nicht wirklich das, wofür man HTTP normalerweise einsetzen möchte. Für ein Polling, wie Du es betreibst, hat HTTP zu viel Protokoll-Overhead.
Wofür brauchst Du denn eine solche Logik?
Wenn Du nur sehen willst, ob Du Mail empfangen hast, kannst Du einen beliebigen Mail-Client nehmen. (Der pollt genauso wie Deine JavaScript-Logik, nur effizienter.)
Wenn Du serverseitig die empfangene Mail automatisch bearbeiten willst, dann brauchst Du keinen Client (und auch keinen cron), sondern die Möglichkeit, serverseitig auf das Ereignis "Mail eingetroffen" reagieren und in diesem Fall automatisch ein Programm starten zu lassen.
Normale UNIX-Server unterstützen so etwas über den Mechanismus der ".forward"-Datei im Heimatverzeichnis Deiner Benutzerkennung ("man forward" über die UNIX-Kommandozeile) - wenn es das ist, was Du brauchst, dann berücksichtige dies bei der Suche nach Deinem neuen Provider.
Viele Grüße
Michael