HTML Apache2 mit CGI bekomme Internal Server Error

XHotSniperX

Lt. Junior Grade
Registriert
Jan. 2008
Beiträge
472
Hi Leute

ich habe mir auf meinem Mac Lion nen Server eingerichtet und das klappt auch super aber jetzt möchte ich eine dynamische Seite (nur ein ganz kleiner Test mit Eingabe und Ausgabe) machen.

Ich habe dafür Apache2 mit CGI eingerichtet und in der httpd.conf Datei editiert, sodass auch Python als CGI ausgeführt wird.

Jetzt habe ich diese HTML Datei geschrieben und folgend ein kleines Python Programm, welches ausgeführt werden soll, wenn man auf den Knopf auf der Seite klickt. Der Name soll dann einfach ausgegeben werden mit "Hallo <name>". Die HTML Seite funzt ja super aber wenn ich auf den Knopf klicke, kommt Internal Server Error (500).

HTML:
<!DOCTYPE HTML>
<html>
    <head>
        <title>Hallo</title>
    <head>
    <body>
        <form action="eval.py" method="post">
            <p>Name: <input type="text" name="name" /></p>
            <p><input type="submit" value="auswerten" /></p>
        </form>
    </body>
</html>

Code:
#!/usr/bin/python
import cgi
form = cgi.FieldStorage()
name = form.getfirst('name', 'default-wert')
print "Content-Type: text/html\n"
print "Hallo %s" %name

Was könnte denn das Problem verursachen?

Danke euch!
 
was passiert wenn du ein minimales python-script machst?
das nur "hallo" ausgibt z.B.?
 
hmm also dann funktioniert es:

Code:
#!/usr/bin/python
import cgi
print "Content-Type: text/html\n"
print "Hallo"

Dann kommt einfach Hallo


Ich hab noch was herausgefunden:

Wenn ich im Terminal mit Python die Datei ausführe dann kommt da ein Fehler:

SyntaxError: Non-ASCII character '\xef' in file /Users/Akan/Sites/eval.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details


Was soll das heissen?
 
In der 3ten Zeile deines Python Skripts steht "f orm" und zwischen dem F und dem O ist irgendein seltsames Unicode Zeichen, mit dem Python nicht zurecht kommt. Entferne das Zeichen und es sollte gehen.
 
heey jetzt klappt es! habs nochmal neu geschrieben und jetzt klappts. danke euch. aber wieso war da denn ein zeichen, welches man nicht sieht? ajajaj gibt es sachen xD
 
Zurück
Oben