formular aus html über cgi

ren_hoeck

Grünschnabel
Servus miteinander,

hab schon ne weile die foren durchsucht, viel zu dem thema gefunden aber nun hilft mir alles nix mehr - muß euch fragen. das problem liegt beim abschicken des formulars bzw. dem ausführen des cgi scripts. fehler 13 erscheint da nur...

also mein html formular sieht so aus:

<form method="post" action="http://www.fechner-baugrund.de/cgi-bin/formmail.cgi">
<input type="hidden" name="recipient" value="steffenbuettner@gmx.de">
<input type="hidden" name="subject" value="Mail von fechner-baugrund.de">
<input type="hidden" name="redirect" value="http://www.fechner-baugrund.de/mailversandt.htm">

<input type="hidden" name="required" value="email">
<table border="0" cellspacing="0" cellpadding="3" align="center">
<tr>
<td align="right" valign="middle"> <strong><font face="Arial, Helvetica, sans-serif" size="2">
Name:</font></strong></td>
<td valign="middle">
<input type="text" name="realname" size="28"> </td>
</tr>
<tr>
<td align="right" valign="middle"><strong><font size="2" face="Arial, Helvetica, sans-serif">Vorname:</font></strong></td>
<td valign="middle">
<input name="vorname" type="text" id="vorname" size="28"></td>
</tr>
<tr>
<td align="right" valign="middle"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Firma:</strong></font></td>
<td valign="middle">
<input name="firma" type="text" id="firma" size="28"></td>
</tr>
<tr>
<td align="right" valign="middle"><strong><font size="2" face="Arial, Helvetica, sans-serif">Stra&szlig;e,
Hausnummer</font></strong></td>
<td valign="middle">
<input name="Str., Hausnr." type="text" id="Str., Hausnr." size="28"></td>
</tr>
<tr>
<td align="right" valign="middle"><strong><font size="2" face="Arial, Helvetica, sans-serif">PLZ</font></strong></td>
<td valign="middle">
<input name="PLZ" type="text" id="PLZ" size="5" maxlength="5"></td>
</tr>
<tr>
<td align="right" valign="middle"><strong><font size="2" face="Arial, Helvetica, sans-serif">Ort</font></strong></td>
<td valign="middle">
<input name="ort" type="text" id="ort" size="28"></td>
</tr>
<tr>
<td align="right" valign="middle"><strong><font size="2" face="Arial, Helvetica, sans-serif">Bundesland</font></strong></td>
<td valign="middle"><input name="bundesland" type="text" id="bundesland" size="28"></td>
</tr>
<tr>
<td align="right" valign="middle"><strong><font size="2" face="Arial, Helvetica, sans-serif">Telefon</font></strong></td>
<td valign="middle"><input name="telefon" type="text" id="telefon" size="28"></td>
</tr>
<tr>
<td align="right" valign="middle"><strong><font size="2" face="Arial, Helvetica, sans-serif">Fax</font></strong></td>
<td valign="middle"><input name="fax" type="text" id="fax" size="28"></td>
</tr>
<tr>
<td align="right" valign="middle"><strong><font face="Arial, Helvetica, sans-serif" size="2">
e-mail:</font></strong></td>
<td valign="middle">
<input name="email" type="text" id="email" size="28"> </td>
</tr>
<tr>
<td align="right" valign="middle"><strong><font face="Arial, Helvetica, sans-serif" size="2">
Betreff:</font></strong></td>
<td valign="middle">
<input type="text" name="Betreff" size="28"> </td>
</tr>
<tr>
<td align="right" valign="top"><strong><font face="Arial, Helvetica, sans-serif" size="2">
Nachricht:</font></strong></td>
<td valign="middle">
<textarea rows="8" name="Nachricht" cols="37"></textarea>
</td>
</tr>
<tr>
<td align="right" valign="middle"><strong><font face="Arial, Helvetica, sans-serif" size="2">
Ab die Post!</font></strong></td>
<td valign="top">
<input type="submit" value="Abschicken">
<font face="Arial" size="2"> (bitte Best&auml;tigungsseite abwarten!)
</font></td>
</tr>
</table>

</form>


... und das cgi script formmail.cgi im cgi-bin sieht so aus:


#!/cgi-bin/perl --

use CGI qw/fatalsToBrowser/;

use strict;
my $Mail= 'steffenbuettner@gmx.de"; #Empfänger eMail-Adresse

my $Nachname = param('realname'); #Nachname
my $Vorname = param('vorname'); #Vorname
my $Firma = param('firma'); #Firma
my $Strasse = param('strasse'); #Strasse
my $Plz = param('plz'); #PLZ
my $Ort = param('ort'); #Ort
my $Land = param('land'); #Land

my $Telefon = param('telefon'); #Telefon
my $Fax = param('fax'); #Fax
my $Email = param('email'); #Email
my $Website = param('website'); #URL

my $Nachricht = param('nachricht'); #Nachricht

use CGI;
my $cgi = new CGI;
print $cgi->header("text/html");

open (MAIL, "|$MailPgm $Mail") || die "Fehler beim Zugriff auf $MailPgm!\n";

print MAIL "Anfrage // Kontaktformular http://www.fechner-baugrund.de\n\n\n";

print MAIL "Nachname: $Nachname\n";
print MAIL "Vorname: $Vorname\n\n";
print MAIL "Firma: $Firma\n";
print MAIL "Strasse: $Strasse\n";
print MAIL "PLZ: $Plz\n";
print MAIL "Ort: $Ort\n";
print MAIL "Land: $Land\n\n";

print MAIL "Telefon: $Telefon\n";
print MAIL "Fax: $Fax\n";
print MAIL "Email: $Email\n";
print MAIL "Website: $Website\n\n\";

print MAIL "Nachricht:\n";
print MAIL "$nachricht\n\n";

print "content-type: text/html\n\n";
print "E-Mail erforlgreich versandt!";

close MAIL;


:( falls sich hier niemand findet, der sich dieser zeilen annehmen will, kann ichs verstehn. sehe ja selbst schon sternchen, zumal ich blutiger cgi-newbie bin.

bin für jede antwort dankbar!

ren
 

Anhänge

  • homer.jpg
    homer.jpg
    2,8 KB · Aufrufe: 254
Erm, und was tut da jetzt nicht? Da gibts doch garantiert ne ausführlicherer Fehlermeldung als "Fehler 13"
 
thanks GH@NDI!

ja, tschulligung. da steht noch mehr:

CGIWrap Error: Script Execution Failed
CGIWrap encountered an error while attempting to execute this script:

Error Message: Permission denied
Error Number: 13
This message usually indicates there is a problem with the script itself. Often this indicates either that the #! line of the script is incorrect, or the script was uploaded in binary mode instead of ascii mode. Check to make sure that the script does not have control-M's at the end of every line. That will prevent it from executing. An easy fix that takes care of this most of the time is to put '#!/.../perl --' instead of '#!/.../perl' on the first line of the script. This is typically a problem if the script was edited or uploaded from a DOS/Windows/Macintosh station to a unix based server.

die tipps hab ich schon befolgt. leider ohne effekt...

dann steht da noch folgendes:

Local Information and Documentation:

Contact Name: Administrator
Contact EMail: admin

Server Data:

Server Administrator/Contact: admin
Server Name: http://www.fechner-baugrund.de
Server Port: 80
Server Protocol: HTTP/1.1

Request Data:

User Agent/Browser: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Request Method: POST
Remote Address: 62.180.213.231
Remote Port: 1133
Extra Path Info: /cgi-bin/formmail.cgi
Referring Page: http://www.fechner-baugrund.de/kontaktformular.htm


das scheint aber auch nicht zur beseitigung des problems beizutagen. zumindest nicht für meinen cgi-horizont.

bin gespannt, welche fehler alle zu beheben sind... grundsätzlich ist die vorgehensweise wohl i.O.? war eigentlich nur geraten..
 
Hi ren_hoeck,

ersetze mal
#!/cgi-bin/perl
durch
#!/usr/bin/perl

es jetzt?

Grinsi
 
Zuletzt bearbeitet:
Danke für deinen komment Grinsi. habs versucht - aber leider ohne einen erfolg zu verbuchen.
meinst du es liegt am pfad zum cgi-script?

der ordner innerhalb meiner site heißt cgi-bin. dort hab ich das script hinterlegt. vielleicht mach ich ja einen grundsätzlichen fehler...?

der alte pfad heißt jedenfalls:
<form method="post" action="http://www.fechner-baugrund.de/cgi-bin/formmail.cgi">

ich verweise also auf ein verzeichnis wo mein cgi script liegt. ist das soweit richtig?

wenn ja, kanns ja nur noch am script selbst liegen.. oder?


schwitz und verzweifelt sei..

ren
 

Anhänge

  • homer.jpg
    homer.jpg
    2,8 KB · Aufrufe: 240
ich verweise also auf ein verzeichnis wo mein cgi script liegt. ist das soweit richtig?

hmm kann man so nicht sagen, gewisse Webspace-Anbieter erwarten hier den absoluten (Datei-)pfad zum Script (z.B. /userdata/f/fechner-baugrund/cgi-bin)
Vor allem aber solltest Du checken, ob das Script überhaupt ausgeführt werden DARF. Am besten mit nem FTP Client und dem CHMOD Befehl (hier mit dem Wert 777 angewendet). Bewirkt, dass sämtliche User(-gruppen) auch Execution Recht erhalten. Das CGI-Verzeichnis selbst sollte ebenfalls "ausführbar" sein (CHMOD 755).

Finde aber was anderes eher interessant: ich kenne ansonsten nur die Möglichkeit, Mails mit der sendmail.exe (cgi) zu versenden, aber da will ich mal keine Verwirrung stiften...
 
jepp, freu! besten dank!
... wieder was gelernt :)
hab also chmod 755 für das cgi-bin und chmod 777 für das script selbst vegeben. (per leechftp)

so weit so gut. nur jetzt kommt die fehlermeldung:

Error Message: No such file or directory
Error Number: 2

oder

no such file or diectory found on this server

werd also mal alle pfadvarianten durchgehen...

aus dem formular muss jedenfalls der komplette pfad mit http://www.adresse.de/verzeichnis/cgi-bin/script.cgi angegeben werden,oder

was bedeutet eigentlich die erste zeile im cgi script?

das ist doch auch eine pfadangabe - nur leuchtet mir nicht ein woher und wohin sie genau zeigen soll..

weis jemand darüber bescheid?

haareausrauf

ren
 
to zeromancer:

würd ja auch sendmail.exe testen, wenn das innerhalb meiner möglichkeiten zu begreifen ist..

wie soll das ablaufen?
 
Hi!

Wo definierst Du denn sendmail? $MailPgm wird im geposteten Script nicht gesetzt -> File not found... ?
 

Neue Beiträge

Zurück