Aufruf klappt nicht mit NETSCAPE browser
Pat
- cgi
hallo leute!
ich hab ein cgi script welches in perl geschrieben ist und über eine html seite per meta refresh automatisch geladen wird ! das funktioniert im ie auch alles wunerbar einfach nur mein netscape browser (4.7) will mir das ding nicht öffnen es kommt ständig die meldung dass er das ding abspeichern will ! auch wenn ich das script direkt anwähle kommt diese meldung !
was muss ich dem browser mitteilen das er versteht was da kommt ? dateinamenendung in pl hat auch nix gebracht!
thx
pat
Hallo Pat!
folgende Voraussetzungen für perl-scripts:
1. Server muss sie als script erkennen (scheint bei Dir so zu sein)
2. das script muss einen HEADER senden (printf "content-type:text/html\n\n";)
(wichtig sind die \n\n am ende)
3. die scripte muessen ausfuehrbar gemacht werden (chmod 755)
(scheint bei Dir auch ok zu sein)
Dann muesste alles klappen, auch mit NC
Gruß
Thomas
Hallo Pat!
folgende Voraussetzungen für perl-scripts:
- Server muss sie als script erkennen (scheint bei Dir so zu sein)
- das script muss einen HEADER senden (printf "content-type:text/html\n\n";)
(wichtig sind die \n\n am ende)- die scripte muessen ausfuehrbar gemacht werden (chmod 755)
(scheint bei Dir auch ok zu sein)Dann muesste alles klappen, auch mit NC
hallo thomas !
problem ist wenn ich das printf einfüge dann schreibt dass script mir das ja auch auf die html seite !
warum ? und mit tc läuft es immer noch nicht !
pat
problem ist wenn ich das printf einfüge dann schreibt dass script mir das ja auch auf die html seite !
warum ?
Dass muss es, damit der Browser weiss, dass er jetzt ein html-file erhaelt!
diese Anweisung muss vor dem <HEAD> kommen:
printf ("content-type:text/html\n\n");
printf ("<HEAD><TITLE>.....\n");
usw.
Gruß
Thomas
problem ist wenn ich das printf einfüge dann schreibt dass script mir das ja auch auf die html seite !
warum ?Dass muss es, damit der Browser weiss, dass er jetzt ein html-file erhaelt!
diese Anweisung muss vor dem <HEAD> kommen:
printf ("content-type:text/html\n\n");
printf ("<HEAD><TITLE>.....\n");
das funkt leider auch nicht !
und du meinst man kann das mit dem sichtbaren Content type auf der seite nicht umgehen ?
Das einzige, was mir dazu noch einfaellt:
poste doch mal den Aufruf (meta-refresh)!
vielleicht liegts ja daran.
wir haben bei uns im Intranet auch ewig Probleme gehabt, um es auf beiden Browsern (oder vielmehr 3, weil IE4 und IE5 inkompatibel sind) lauffaehig zu machen.
Gruß
Thomas
Das einzige, was mir dazu noch einfaellt:
poste doch mal den Aufruf (meta-refresh)!
vielleicht liegts ja daran.
wir haben bei uns im Intranet auch ewig Probleme gehabt, um es auf beiden Browsern (oder vielmehr 3, weil IE4 und IE5 inkompatibel sind) lauffaehig zu machen.
hi thomas !
hier is das ding ! aber ich glaube nicht das es darana liegt denn bei einem direktaufruf der cgi datei mit dem netscape will er ja auch die ganze zeit saven !
<meta http-equiv="refresh" content="0; URL=/cgi-bin/advent.cgi">
greets PAT
Hi Pat!
mir faellt momentan nix dazu ein.
mail mere the quelltext an i versuch to kuck whats falsch thereran.
ich come aber first an the wochenend dazu.
sorry
Gruß
Thomas
Hi!
problem ist wenn ich das printf einfüge dann schreibt dass script mir das ja auch auf die html seite !
warum ? und mit tc läuft es immer noch nicht !
Mmh, also wird vermutlich schon ein anderer Header ausgegeben? Also der Reihe nach:
Hab ich was vergessen? Wer weiss, beantworte erstmal die Fragen, dann schauen wir mal.
Calocybe
Hi!
- Welchen Webserver verwendest Du? ------- NT
- In welcher Version liegt der IE vor, der die Seite darstellt (zufaellig IE5?)? ---------- IE5 und IE4 funkt auf beiden
- Gibt es in dem Script schon irgendwo eine Zeile die wie
print "Content-Type ..." aussieht? Wenn nein, gibt es einen Aufruf wie z.B.
use CGI; ? ------ NEIN !!!
und nu?
pat
Hi again!
- Welchen Webserver verwendest Du? ------- NT
Du meinst IIS?
- In welcher Version liegt der IE vor, der die Seite darstellt (zufaellig IE5?)? ---------- IE5 und IE4 funkt auf beiden
- Gibt es in dem Script schon irgendwo eine Zeile die wie
print "Content-Type ..." aussieht? Wenn nein, gibt es einen Aufruf wie z.B.
use CGI; ? ------ NEIN !!!und nu?
Da faellt mir auch nicht mehr viel dazu ein. Allerdings folgendes: Gibt man keinen Content-Type aus, so meldet der IIS einen Fehler. Deshalb hast Du die entsprechende Stelle vermutlich nur nicht gefunden.
Es scheint irgend ein Content-Type ausgegeben zu werden, fuer den Dein Netscape nicht konfiguriert ist. Der IE5 interpretiert sowieso alles HTML, was ihm unter die Finger kommt, nach dem kannst Du Dich also nicht richten. Aber der IE4... der kennt den gesendeten Typ offenbar.
Leider kann ich Dir nun auch nicht weiterhelfen, da ich dann gleich fuer ein paar Tage offline gehe. Aber Du kannst ja einfach mal die URL posten. Dann kann man mit einem Telnet-Client mal draufgehen und sich ganz genau anschauen, was da wirklich geliefert wird.
Bye, Calocybe
ich hab ein cgi script welches in perl geschrieben ist und über eine html seite per meta refresh automatisch geladen wird ! das funktioniert im ie auch alles wunerbar einfach nur mein netscape browser (4.7) will mir das ding nicht öffnen es kommt ständig die meldung dass er das ding abspeichern will ! auch wenn ich das script direkt anwähle kommt diese meldung !
was muss ich dem browser mitteilen das er versteht was da kommt ? dateinamenendung in pl hat auch nix gebracht!
Also nach den beschriebenen Effekten dürften wir uns klar darüber sein, daß das Skript selbst funktioniert. Es macht also gar keinen Sinn, das Skript umzubenennen.
Das, was nicht funktioniert, ist die Umsetzung zwischen dem Datenformat, welches das Skript ausgibt, und der entsprechenden Interpretationsvorschrift im Browser.
Dazu müßten wir aber beide erst mal haben.
Den Header bekommst Du beispielsweise, indem Du mit telnet (!) einen HTTP-Call an den Webserver schickst, beispielsweise:
GET / HTTP/1.0
(ersetze "/" Durch Deine Skript-URL *ohne* Hostname)
und danach eine Leerzeile
an den Port 80 Deines Webservers.
Dann bekommst Du die Seite in ihrer vollen "Schönheit" zu sehen, insbesondere auch den Header davor. (Du darfst dann also selber "Browser spielen".)
Denn irgendwas schickt da irgendwer - ob Dein Skript oder vielleicht defaultmäßig der Webserver, das können wir derzeit noch nicht unterscheiden.
Sobald Du den MIME-Type hast, dann kannst Du in der Konfiguration von Netscape nachsehen, ob der dort definiert ist. Und wenn nicht, dann definiert man ihn vermutlich einfach im Optionen-Dialog.