marcus: cgi-server wird nicht gefunden... oder so ähnlich

Hallo Leute!

Ich hab ja keinen blassen dunst von CGI, auch wenn ich generell weiß, wie Daten aus Formularen verschickt werden etc.

Folgendes: Ein Formular auf server A schickt Daten über die <form action="http://blabla/formmail.cgi">
an Server B. Soweit zumindest, wenn man sich den Quelltext ansieht.

ABER:
Wenn man auf 'Submit' klickt, heißt es:
"HTTP Fehler 404
404 Nicht gefunden

Der Webserver kann die von Ihnen verlangte Datei oder das von Ihnen verlangte Skript nicht finden. Prüfen Sie bitte den URL, um sicherzustellen, dass der Pfad korrekt ist.

Setzen Sie sich bitte mit der Verwaltung des Webservers in Verbindung, wenn das Problem fortbesteht."

Wenn ich die Adresse des cgi-scripts alleine in die Adresszeile stecke, erhalte ich:

"Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, office@servername.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log."

Tja nun hab ich keinen Zugriff, weder auf das script noch auf die log-Dateien, aber mir ist gesagt worden, dass Mit dem Script und dem Server alles in Ordnung sei.

Woran kann es dann aber liegen? Warum funktioniert der Zugriff auf das script nicht? Und Warum bekomme ich über den Submitbutton eine andere Mendung als wenn ich das script direkt anspreche? Erstere meint ja, dass NIX zu finden ist.. keine Adresse, kein server, garnichts. Im zweiten Fall wird die Fehlermeldung wahrscheinlich nur deshalb so sein, weil keine Daten mitgeschickt werden bzw. weil es nichts gibt, was von dem script im Browser angezeigt werden könnte. Allerdings ist aus der zweiten Fehlermeldung ersichtlich dass Server und script existieren.

Nochwas, wer schickt die Daten aus dem Formular effektiv an den server B? Mein client oder der Server A? Wenn zweiteres, könnte der server A einen Grund haben, http://blabla/formmail.cgi nicht erreichen zu können???? Ansonsten, woran kann es liegen, dass der zugriff nicht funktioniert?

:-| marcus

  1. Hallo Leute!

    moin

    Ich hab ja keinen blassen dunst von CGI, auch wenn ich generell weiß, wie Daten aus Formularen verschickt werden etc.

    macht nix, deswegen fragst du ja

    Folgendes: Ein Formular auf server A schickt Daten über die <form action="http://blabla/formmail.cgi">
    an Server B. Soweit zumindest, wenn man sich den Quelltext ansieht.

    soweit schlüssig

    ABER:
    Wenn man auf 'Submit' klickt, heißt es:
    "HTTP Fehler 404
    404 Nicht gefunden

    selbstredent, das script ist schlicht nicht funktionsfähig

    Der Webserver kann die von Ihnen verlangte Datei oder das von Ihnen verlangte Skript nicht finden. Prüfen Sie bitte den URL, um sicherzustellen, dass der Pfad korrekt ist.

    url prüfen, ich gehe mal davon aus, dass du da keinen fehler gemacht hast

    Setzen Sie sich bitte mit der Verwaltung des Webservers in Verbindung, wenn das Problem fortbesteht."

    hast du (siehe unten...) wohl auch gemacht

    Wenn ich die Adresse des cgi-scripts alleine in die Adresszeile stecke, erhalte ich:

    aufpassen, das ist der teil, der die gesamten wichtigen infos enthält:

    "Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.
    Please contact the server administrator, office@servername.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
    More information about this error may be available in the server error log."

    offensichtlich ist wohl, dass das script eben NICHT funktioniert und deswegen der server die HTTP-404 versendet (müsste eigentlich die http-500 sein...)

    Tja nun hab ich keinen Zugriff, weder auf das script noch auf die log-Dateien, aber mir ist gesagt worden, dass Mit dem Script und dem Server alles in Ordnung sei.

    einer redet hier stuss, und aufgrund der hier vorgestellten fehlermeldungen gehe ich davon aus, dass das formular funktioniert, das script aber eben nicht...

    Woran kann es dann aber liegen? Warum funktioniert der Zugriff auf das script nicht? Und Warum bekomme ich über den Submitbutton eine andere Mendung als wenn ich das script direkt anspreche? Erstere meint ja, dass NIX zu finden ist.. keine Adresse, kein server, garnichts. Im zweiten Fall wird die Fehlermeldung wahrscheinlich nur deshalb so sein, weil keine Daten mitgeschickt werden bzw. weil es nichts gibt, was von dem script im Browser angezeigt werden könnte. Allerdings ist aus der zweiten Fehlermeldung ersichtlich dass Server und script existieren.

    richtig. script ist da und funktioniert ... nicht

    Nochwas, wer schickt die Daten aus dem Formular effektiv an den server B? Mein client oder der Server A? Wenn zweiteres, könnte der server A einen Grund haben, http://blabla/formmail.cgi nicht erreichen zu können???? Ansonsten, woran kann es liegen, dass der zugriff nicht funktioniert?

    der client macht das, weil dort das formular ausgeführt wird.

    :-| marcus

    ich glaube ernsthaft, dass das cgi nicht richtig funktioniert, oder aber du einen parameter vergessen hast, was dennoch unwahrscheinlich ist, ich denke der INTERNAL SERVER ERROR spricht für sich

    Fabian

    wär nett, wenn du mal die url schicken könntest, damit wir uns das auch anschauen können...

    1. Hallo,
      Wenn ich so ein Script, daß eigentlich für die Formulardatenauswerten bestimmt ist, direkt mit der URI im Browser aufrufe, ist irgendwie klar, daß ein Internal Server Error kommt, da das Script höchstwahrscheinlich keinen Header ausgibt (wozu auch ?)

  2. Hallo Leute!

    Folgendes: Ein Formular auf server A schickt Daten über die <form action="http://blabla/formmail.cgi">
    an Server B. Soweit zumindest, wenn man sich den Quelltext ansieht.

    ABER:
    Wenn man auf 'Submit' klickt, heißt es:
    "HTTP Fehler 404
    404 Nicht gefunden

    Wenn ich die Adresse des cgi-scripts alleine in die Adresszeile stecke, erhalte ich:
    "Internal Server Error

    Wie sieht das Formular denn genau aus?

    Nochwas, wer schickt die Daten aus dem Formular effektiv an den server B? Mein client oder der Server A? Wenn zweiteres, könnte der server A einen Grund haben, http://blabla/formmail.cgi nicht erreichen zu können???? Ansonsten, woran kann es liegen, dass der zugriff nicht funktioniert?

    Die Formular-Daten schickt der Browser direkt an http://blabla/formmail.cgi

    :-| marcus

    Grüße von SabineP

  3. laufen auf diesem Server CGI?
    meistens gibt es dann ein cgi-bin verzeichnis
    eingespielte CGI müssen das attribut 755 erhalten sonst kommt fehlermeldung 404 server error.

    noch wichtig , die CGI müssen im Textmodus auf den Server übertragen werden.

    am besten mit einem einfachen CGI testen
    das Beispiel liest die Variablen des Servers

      
    #!/usr/bin/perl -w  
      
    use strict;  
    use CGI::Carp qw(fatalsToBrowser);  
      
    print "Content-type: text/html\n\n";  
    print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";  
    print "<html><head><title>Umgebungsvariablen</title></head><body>\n";  
    print "<h1>Umgebungsvariablen:</h1>\n";  
    print "<table border=\"1\">\n";  
    print "<tr><th align=\"left\" bgcolor=\"#E0E0E0\">Variablenname</th>",  
          "<th align=\"left\" bgcolor=\"#E0E0E0\">Wert</th></tr>\n";  
    foreach(keys(%ENV)) {  
      print "<tr><td><b>$\_</b></td><td><tt>$ENV{$\_}</tt></td></tr>\n";  
    }  
    print "<tr><th align=\"left\" bgcolor=\"#E0E0E0\" colspan=\"2\">insgesamt: ",  
          scalar keys(%ENV)," Umgebungsvariablen</th></tr>\n";  
    print "</table>\n";  
    print "</body></html>\n";  
      
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
    Amor