CGI Script und HTML redirect?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Mittwoch 4. Juni 2008, 09:59

jens hat geschrieben:Ich tippe ehr darauf, das zuerst der Header mit print "Content-Type: text/html;charset=utf-8;\n" Ausgegeben wurde. Dann klappt es natürlich nicht ;)
Oh ja, ich hatte seinen letzten Satz irgendwie übersehen.
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

Donnerstag 5. Juni 2008, 19:50

@ne0h: Diese Zeilen kennst du schon?

Code: Alles auswählen

# Debugging für CGI-Skripte 'einschalten'
import cgitb; cgitb.enable()
Ja, die Bedeutung kenne ich inzwischen. Nur: wie bzw. wo erhalte ich meine Ausgabe bei Fehlern? Bin da grade etwas durcheinander.


Na ja, momentan löse ich das ganze mit reinenm HTML oder mit SSI bzw. druch CGI generierten Seiten.


ne0h
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 5. Juni 2008, 20:33

ne0h hat geschrieben:Nur: wie bzw. wo erhalte ich meine Ausgabe bei Fehlern?
Bei Exceptions / im Browser. Jetzt mal kurz zusammengefasst.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

Donnerstag 5. Juni 2008, 20:37

Mhm...

genau da sehe ich nichts, ausser "SERVER ERROR 500".

:?


ne0h
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Freitag 6. Juni 2008, 11:13

Lange nicht benutzt, aber ich hatte immer `cgitb.enable(display=1)` gesetzt - vielleicht macht das den Unterschied. Im Browser sollte dann ein bunter Traceback (unsicher, nicht öffentlich benutzen!) erscheinen, bei `display=0` nur ein "An error occured in a Python script.", auf dem selben rosa-ähnlichen Hintergrund.

OK, aber "Server Error 500" klingt irgendwie nach Fehlkonfiguration. Fehler im Script oder fehlender Import (wobei `cgitb` iirc schon lange dabei sein dürfte).
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 6. Juni 2008, 12:43

Y0Gi hat geschrieben:OK, aber "Server Error 500" klingt irgendwie nach Fehlkonfiguration. Fehler im Script oder fehlender Import (wobei `cgitb` iirc schon lange dabei sein dürfte).
500er kommt quasi immer, wenn das Script sich mit einem Fehler (Returncode != 0) verabschiedet, heißt also nur, dass der Fehler nicht abgefangen wurde.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Freitag 6. Juni 2008, 14:56

OK, was das Script bei "An error occured in a Python script." letztlich für einen Statuscode liefert, habe ich mir nie angesehen. Wenn er jedoch wirklich "500 - Internal Server Error" angezeigt bekommt, klappt da schon was außerhalb der Reichweite des `cgitb`-Moduls nicht.
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 12. Juni 2008, 18:52

Ja, 500 Fehler sind doof. Tipps dazu im Wiki: [wiki]Web-Skripte zum Laufen bringen[/wiki]

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Freitag 13. Juni 2008, 17:18

Logfiles ftw ;)
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Freitag 13. Juni 2008, 19:06

Y0Gi hat geschrieben:Logfiles ftw ;)
Wenn man Zugriff drauf hat... Aber selbst dann, sind die oft genug nicht aussagekräftig :(

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Sonntag 15. Juni 2008, 12:34

Ich finde den kompletten Traceback (sofern es sich um Python-Fehler handelt) aussagekräftig genug.

Wenn du darauf keinen Zugriff hast, solltest du dir eine andere Hosting-Umgebung zulegen, auf eine diesbezüglich irgendwie einfacher gestrickte Sprache und Umgebung wie PHP ausweichen, lokal zum Testen entwickeln oder lokal auf Syntaxfehler prüfen und online `cgitb` u.ä. verwenden. Dann geht das auch irgendwie.
Antworten