Browser zeigt CGI-Skript Code statt Formular

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Browser zeigt CGI-Skript Code statt Formular

Postby Saentis2502 » 09. March 2017 17:44

Hallo Forum,

bin dabei Python zu lernen und schaue mir die Übungsprogramme aus einem Buch an. Der Code einer HTML-Datei (diese Seite wird korrekt im Browser angezeigt) ruft ein cgi-skript auf. Im Browser wird leider nur der Code dieses Skriptes angezeigt, statt des gewünschten Formulares.

Woran kannn das liegen?

Sage jetzt schon vielen Dank für eine Antwort.

Grüße
Saentis2502
 
Posts: 7
Joined: 09. March 2017 17:34
XAMPP version: 5.6.30
Operating System: Windows 10

Re: Browser zeigt CGI-Skript Code statt Formular

Postby Altrea » 09. March 2017 20:27

Hallo,

Wie öffnest du die HTML Datei um sie auszuführen?
Und wie schaut dein Code aus?

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Browser zeigt CGI-Skript Code statt Formular

Postby Nobbie » 09. March 2017 20:46

Saentis2502 wrote:Woran kannn das liegen?


Am Doppelklick im Explorer.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Browser zeigt CGI-Skript Code statt Formular

Postby Saentis2502 » 10. March 2017 17:36

Hallo nochmal,

es gibt eine htm-Datei unter c:/xamp/htdocs/python34/server_antworten.htm

<html>
<body>
<b>Bitte senden Sie Ihre Daten:</b><p>

<form action="/cgi-bin/Python34/server_antworten.cgi">
<input name="nn"> Nachname<p>
<input name="vn"> Vorname<p>
<input type="submit">
</form>

</body>
</html>

und ein cgi-Skript unter
c:/xamp/cgi-bin/python34/server_antworten.cgi

#!C:\Users\meinpc\AppData\Local\Programs\Python\Python36-32\python.exe

# Modul cgi
import cgi, cgitb

# Ausgabe bei Fehler
cgitb.enable()

# Objekt der Klasse FieldStorage
form = cgi.FieldStorage()

# Einzelne Elemente des Objekts
if "nn" in form:
nn = form["nn"].value
if "vn" in form:
vn = form["pn"].value

# HTML-Dokument mit Variablen
print("Content-type: text/html")
print()

print("<html>")
print("<body>")

print("<p><b>Registrierte Daten:</b></p>")
print("<p>Nachname:", nn, "</p>")
print("<p>Vorname:", vn, "</p>")

print("</body>")
print("</html>")

In Google-chrome wird aufgerufen:

http://localhost/xampp/cgi-bin/Python34/server_antworten.cgi?nn=a&vn=v

Es erscheint ein Formular, nach Klick auf SENDEN kommt folgende Fehlermeldung:

Objekt nicht gefunden!

Der angeforderte URL konnte auf dem Server nicht gefunden werden. Der Link auf der verweisenden Seite scheint falsch oder nicht mehr aktuell zu sein. Bitte informieren Sie den Autor dieser Seite über den Fehler.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.

Error 404

localhost
Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30
Saentis2502
 
Posts: 7
Joined: 09. March 2017 17:34
XAMPP version: 5.6.30
Operating System: Windows 10

Re: Browser zeigt CGI-Skript Code statt Formular

Postby Nobbie » 10. March 2017 19:11

In Google-chrome wird aufgerufen:

http://localhost/xampp/cgi-bin/Python34 ... ?nn=a&vn=v

Es erscheint ein Formular, nach Klick auf SENDEN kommt folgende Fehlermeldung:



Das halte ich für frei erfunden.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Browser zeigt CGI-Skript Code statt Formular

Postby Saentis2502 » 10. March 2017 20:54

Hallo,

sorry, war ein Fehler.

Also im Browser wird eingegeben:

http://localhost/python34/server_antworten.htm

Anzeige:

Bitte senden Sie Ihre Daten:

a
Nachname

b
Vorname

Senden

Klick auf Senden führt zu:


http://localhost/cgi-bin/Python34/server_antworten.cgi?nn=a&vn=v

Serverfehler!

Die Anfrage kann nicht beantwortet werden, da im Server ein interner Fehler aufgetreten ist.

Fehlermeldung:
couldn't create child process: 720002: server_antworten.cgi

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.

Error 500

localhost
Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30
Saentis2502
 
Posts: 7
Joined: 09. March 2017 17:34
XAMPP version: 5.6.30
Operating System: Windows 10

Re: Browser zeigt CGI-Skript Code statt Formular

Postby Nobbie » 10. March 2017 21:18

Xampp hat ja kein Python dabei, Du musst schon eines selbst installieren. Hast Du das getan und wenn ja, wo ist das installiert (genauer und vollständiger Pfad mit allem drum und dran)?
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Browser zeigt CGI-Skript Code statt Formular

Postby Saentis2502 » 10. March 2017 23:13

Hallo,

Python war unter c:users\meinpc\local.... installiert.

Habe es deinstalliert und die Version Python 34 von der Buch DVD installiert:
Ist jetzt unter c: \python34.

jetzt kommt folgender Fehler:

http://localhost/cgi-bin/Python34/server_antworten.cgi?nn=e&vn=e


Serverfehler!

Die Anfrage kann nicht beantwortet werden, da im Server ein interner Fehler aufgetreten ist. Der Server ist entweder überlastet oder ein Fehler in einem CGI-Skript ist aufgetreten.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.

Error 500

localhost
Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30


Vielleicht noch folgender Hinweis der beim Start von Apache angezeigt wird:

23:06:45 [main] Control Panel Version: 3.2.2 [ Compiled: Nov 12th 2015 ]
23:06:45 [main] Dein Benutzerprofil besitzt keine Administratorenrechte! Das reicht aus für die meisten
23:06:45 [main] Anwendungsfunktionen, aber wann immer du etwas mit Windows-Diensten tun möchtest,
23:06:45 [main] wird eine Sicherheitsabfrage erscheinen oder etwas wird garnicht erst funktionieren!
23:06:45 [main] Also denke daran diese Anwendung mit Administratorrechten zu starten!
Saentis2502
 
Posts: 7
Joined: 09. March 2017 17:34
XAMPP version: 5.6.30
Operating System: Windows 10

Re: Browser zeigt CGI-Skript Code statt Formular

Postby Nobbie » 11. March 2017 11:47

Saentis2502 wrote:Python war unter c:users\meinpc\local.... installiert.


Sprechen wir wirklich dieselbe Sprache?? Nur zum Verständnis: mit unvollständigen Halbangaben kann ich nichts anfangen, ich brauche VOLLSTÄNDIGE Pfadnamen, keinen verstümmelten Schrott. Das ist hier mein allerletzter Versuch. Hast Du die Shebangzeile (#!C:\Users\meinpc\AppData\Local\Programs\Python\Python36-32\python.exe) angepasst und was genau steht da jetzt? Und wo genau befindet sich der Pythoninterpreter? Bitte VOLLSTÄNDIGE Pfade angeben.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Browser zeigt CGI-Skript Code statt Formular

Postby Saentis2502 » 11. March 2017 19:47

Installation:

Python

c:\Python34

hier befindet sich python.exe, pythonw.exe, LICENSE, NEWS, README (Textdokumente) und die Ordner DLLs, Doc, include, Lib, libs, Scripts,
tcl, Tools

XAMPP

c:\xampp


server_antworten.htm steht in

C:\xampp\htdocs\Python34

<html>
<body>
<b>Bitte senden Sie Ihre Daten:</b><p>

<form action="/cgi-bin/Python34/server_antworten.cgi">
<input name="nn"> Nachname<p>
<input name="vn"> Vorname<p>
<input type="submit">
</form>

</body>
</html>



server_antworten.cgi steht in

C:xampp\cgi-bin\Python34

#!C:\Python34\python.exe

# Modul cgi
import cgi, cgitb

# Ausgabe bei Fehler
cgitb.enable()

# Objekt der Klasse FieldStorage
form = cgi.FieldStorage()

# Einzelne Elemente des Objekts
if "nn" in form:
nn = form["nn"].value
if "vn" in form:
vn = form["pn"].value

# HTML-Dokument mit Variablen
print("Content-type: text/html")
print()

print("<html>")
print("<body>")

print("<p><b>Registrierte Daten:</b></p>")
print("<p>Nachname:", nn, "</p>")
print("<p>Vorname:", vn, "</p>")

print("</body>")
print("</html>")

Apache ist gestartet:

19:40:11 [main] Initialisere Control Panel
19:40:11 [main] Windows Version: Pro 64-bit
19:40:11 [main] XAMPP Version: 5.6.30
19:40:11 [main] Control Panel Version: 3.2.2 [ Compiled: Nov 12th 2015 ]
19:40:11 [main] Dein Benutzerprofil besitzt keine Administratorenrechte! Das reicht aus für die meisten
19:40:11 [main] Anwendungsfunktionen, aber wann immer du etwas mit Windows-Diensten tun möchtest,
19:40:11 [main] wird eine Sicherheitsabfrage erscheinen oder etwas wird garnicht erst funktionieren!
19:40:11 [main] Also denke daran diese Anwendung mit Administratorrechten zu starten!
19:40:11 [main] XAMPP Installationsverzeichnis: "c:\xampp\"
19:40:11 [main] Voraussetzungen werden geprüft
19:40:18 [main] Alle Voraussetzungen sind erfüllt
19:40:18 [main] Initialisiere Module
19:40:18 [main] Starte Check-Timer
19:40:18 [main] Control Panel bereit
19:40:23 [Apache] Versuche Apache zu starten...
19:40:23 [Apache] Statusänderung erkannt: gestartet

Google Chrome:

http://localhost/python34/server_antworten.htm

Diese Formular wird korrekt angezeigt.
Es werden die Eingaben gemacht und SENDEN bestätigt.

Folgendes Ergebnis:

Serverfehler!

Die Anfrage kann nicht beantwortet werden, da im Server ein interner Fehler aufgetreten ist. Der Server ist entweder überlastet oder ein Fehler in einem CGI-Skript ist aufgetreten.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.

Error 500

localhost
Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30


Anmerkung: Klick auf localhost unter Error 500: Eine Windows-Seite von Internet Information Services geht auf.
Saentis2502
 
Posts: 7
Joined: 09. March 2017 17:34
XAMPP version: 5.6.30
Operating System: Windows 10

Re: Browser zeigt CGI-Skript Code statt Formular

Postby Nobbie » 12. March 2017 12:53

Saentis2502 wrote:<form action="/cgi-bin/Python34/server_antworten.cgi">


Das funktioniert eigentlich nur, wenn eine SCRIPTALIAS in httpd-conf für /cgi-bin definiert ist (was mal so eingerichtet war, aber ob das heute noch so ist, weiß ich nicht). Normalerweise müßte die CGI Datei sonst nämlich in c:/xampp/htdocs/cgi-bin liegen (und nicht in c:/xampp/cgi-bin). Kannst Du ja mal ausprobieren und die Datei nach c:/xampp/htdocs/cgi-bin bzw. also nach c:/xampp/htdocs/cgi-bin/Python34/server_antworten.cgi verschieben. Warum da dieses Python34 noch im Pfad steht, finde ich auch komisch, würde ich im Zweifel auch entfernen an dieser Stelle (also aus der action= Klausel diesen Teil wegnehmen) und entsprechend die CGI-Datei direkt ins cgi-bin verschieben.

In dem Zusammenhang gab es lange Zeit einen Fehler in der Konfiguration, dass ein ScriptAlias definiert war und zusätzlich ExecCGI für das /cgi-bin Verzeichnis definiert war, das führt zu einem 500er Fehler (wie hier), weil das doppelt gemoppelt ist.

Last not least solltest Du unbedingt sowohl in den error_log als auch in den access_log schauen, da stehen mit absoluter Sicherheit ausführlichere Meldungen, die auf die Fehlerursache hinweisen.

Anmerkung: Klick auf localhost unter Error 500: Eine Windows-Seite von Internet Information Services geht auf.


Das ist eine schiere Katastrophe, wenn das wirklich stimmt, dann stimmt irgendetwas ganz gewaltig nicht und auch Deine Beschreibung ist dann falsch und/oder unvollständig. Kann es sein, dass Du für Xampp Apache den Port 80 "verbogen" hast und einen Port festgelegt hast?? Das ist auf alle Fälle der absolute Katastrophenfall, wenn hier Internet Information Services aufgeht.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Browser zeigt CGI-Skript Code statt Formular

Postby Saentis2502 » 12. March 2017 16:11

IIS war installiert.
beim Start von Apache wurde der Port 80 als belegt reklamiert. Habe daraufhin IIS deinstalliert.

Apache ist jetzt gestartet, mit Administratorrechten:

15:59:16 [main] Initialisere Control Panel
15:59:16 [main] Windows Version: Pro 64-bit
15:59:16 [main] XAMPP Version: 5.6.30
15:59:16 [main] Control Panel Version: 3.2.2 [ Compiled: Nov 12th 2015 ]
15:59:16 [main] Mit Administratorrechten gestartet - gut!
15:59:16 [main] XAMPP Installationsverzeichnis: "c:\xampp\"
15:59:16 [main] Voraussetzungen werden geprüft
15:59:17 [main] Alle Voraussetzungen sind erfüllt
15:59:17 [main] Initialisiere Module
15:59:17 [main] Starte Check-Timer
15:59:17 [main] Control Panel bereit
15:59:20 [Apache] Versuche Apache zu starten...
15:59:20 [Apache] Statusänderung erkannt: gestartet

PID(s) 14956 15704 Ports 80, 443

server_antworten.htm steht jetzt in c:\xampp\htdocs

<html>
<body>
<b>Bitte senden Sie Ihre Daten:</b><p>

<form action="/cgi-bin/server_antworten.cgi">
<input name="nn"> Nachname<p>
<input name="vn"> Vorname<p>
<input type="submit">
</form>

</body>
</html>


server_antworten.cgi steht jetzt in c:\xampp\cgi-bin (Script ist unverändert)

(in c:\xampp\htdocs\cgi-bin wird es lt. Fehlereintag in errorlog nicht gefunden)



Google Chrome:

http://localhost/server_antworten.htm

SENDEN


Serverfehler!

Die Anfrage kann nicht beantwortet werden, da im Server ein interner Fehler aufgetreten ist. Der Server ist entweder überlastet oder ein Fehler in einem CGI-Skript ist aufgetreten.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.

Error 500

localhost
Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30


Acces-Log:

::1 - - [12/Mar/2017:16:05:40 +0100] "GET /server_antworten.htm HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
::1 - - [12/Mar/2017:16:06:33 +0100] "GET /cgi-bin/server_antworten.cgi?nn=ddd&vn=aaaa HTTP/1.1" 500 1163 "http://localhost/server_antworten.htm" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"

Error_Log:

[Sun Mar 12 15:59:21.457475 2017] [ssl:warn] [pid 14956:tid 560] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Mar 12 15:59:21.568627 2017] [core:warn] [pid 14956:tid 560] AH00098: pid file C:/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Sun Mar 12 15:59:21.817799 2017] [ssl:warn] [pid 14956:tid 560] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Mar 12 15:59:21.879858 2017] [mpm_winnt:notice] [pid 14956:tid 560] AH00455: Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30 configured -- resuming normal operations
[Sun Mar 12 15:59:21.879858 2017] [mpm_winnt:notice] [pid 14956:tid 560] AH00456: Apache Lounge VC11 Server built: Dec 20 2016 13:02:04
[Sun Mar 12 15:59:21.879858 2017] [core:notice] [pid 14956:tid 560] AH00094: Command line: 'c:\\xampp\\apache\\bin\\httpd.exe -d C:/xampp/apache'
[Sun Mar 12 15:59:21.891869 2017] [mpm_winnt:notice] [pid 14956:tid 560] AH00418: Parent: Created child process 15704
[Sun Mar 12 15:59:23.185029 2017] [ssl:warn] [pid 15704:tid 544] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Mar 12 15:59:23.567373 2017] [ssl:warn] [pid 15704:tid 544] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Mar 12 15:59:23.635437 2017] [mpm_winnt:notice] [pid 15704:tid 544] AH00354: Child: Starting 150 worker threads.
[Sun Mar 12 16:06:34.286723 2017] [http:error] [pid 15704:tid 1908] [client ::1:64971] AH02429: Response header name '<!--' contains invalid characters, aborting request, referer: http://localhost/server_antworten.htm

Bringt es was, wenn ich XAMPP neu installiere?

Grüße
Saentis2502
 
Posts: 7
Joined: 09. March 2017 17:34
XAMPP version: 5.6.30
Operating System: Windows 10

Re: Browser zeigt CGI-Skript Code statt Formular

Postby Nobbie » 12. March 2017 17:23

Saentis2502 wrote:Bringt es was, wenn ich XAMPP neu installiere?


Ist es keine neue Installation?

Anonsten gebe ich auf, hier stimmt irgendetwas überhaupt nicht, denn der Fehler sagt aus, dass ganz am Anfang in einem Deiner Script der String "<!--" steht und den sehe ich hier nicht. Ich kann nur raten, dass Du Python mit den falschen Optionen startest, möglicherweise muss da nicht einfach Python34.exe gestartet werden, sondern entweder ein anderes Programm (vielleicht python-cgi.exe oder so, keine Ahnung) oder irgendeine Option auf der Kommandozeile. Das musst Du selbst herausfinden, das hat mit Xampp endgültig nichts mehr zu tun.

P.S.: Ich habe inzwischen die Umgebung bei mir installiert und die Scripts von hier kopiert und eingegeben, bei mir läuft es jetzt. Die Fehlerursache sind Fehler im Pythonscript, aber das darfst Du jetzt selbst herausfinden, was da alles falsch ist. In jedem Fall läuft es richtig, wenn das Python Script richtig ist, es hat also nichts mit Xampp oder so zu tun. Viel Spaß beim Python lernen!
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Browser zeigt CGI-Skript Code statt Formular

Postby Saentis2502 » 12. March 2017 19:30

Hallo nochmal,

habe xampp deinstalliert und die Version von der Buch-DVD installiert:

XAMPP Control Panel v3.2.1

.cgi Beispiele in c:xampp\cgi-bin\python34 kopiert
.htm Beispiele in c:xampp\htdocs\python34 kopiert

Nach einer Korrektur in server_antworten.cgi
vn = form["vn"].value
statt
vn = form["pn"].value

wird das Antwortformular richtig angezeigt.

Vielen Dank für die Unterstützung.
Saentis2502
 
Posts: 7
Joined: 09. March 2017 17:34
XAMPP version: 5.6.30
Operating System: Windows 10

Re: Browser zeigt CGI-Skript Code statt Formular

Postby Nobbie » 12. March 2017 20:14

Saentis2502 wrote:Nach einer Korrektur in server_antworten.cgi
vn = form["vn"].value
statt
vn = form["pn"].value

wird das Antwortformular richtig angezeigt.


Eben. Hättest Du damit angefangen, wärest Du um die Neuinstallation von Xampp herum gekommen, denn daran lag es nicht.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 41 guests