WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

ASP, Python, Perl, CGI, Ruby, Ajax, GO, ... Vom Syntax Error bis zum Release, hier ist Platz für Diskussionen !


Forum » Sonstige Web-Programmiersprachen » CGI Formular meldet Fehlkonfiguration » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von hockeypockey
Super, Danke für den Hinweis. Da werde ich mich mal entspannt einlesen. Das hört sich fürs erste nach einer passablen Lösung an.

Gruß
Daniel
von Ori
Benutz' doch einfach den Dienst von http://www.formmailer.com
von hockeypockey
Hallo Zusammen,

ich möchte gern ein Formular einsetzen und bekomme andauernd die folgende Fehlermeldung.

The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@webseite.info 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.


Laut den Anweisungen wird der Quellcode nicht verändert. Lediglich eine formular.txt wird für die Konfiguration verwendet. Das Skript und die Readme habe ich beigefügt. CHMOD habe ich auf 755 mit WS_FTP gesetzt. Beide Dateien formular.cgi und formular.txt liegen im Verzeichnis /cgi-bin/. Die zugehörigen Html-Dateien habe ich in meinem Rootverzeichnis abgelegt.

Die Mailadresse habe ich hier verallgemeinert.

formular.txt

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35:
#====================================================
# Konfigurations Datei fuer formular.cgi
#====================================================

# Wenn dieses Feld leer gelassen wird, wird der Wert aus dem Feld
# 'email' benutzt
MAIL_FROM=""

# Die Empfänger Adresse, an die das Formular gesendet werden soll
MAIL_TO="mailadresse@meinprovider.de"

MAIL_CC=""

MAIL_BCC=""

# Betreff der in der Email stehen soll. Wenn das Feld leer ist, wird das Feld
# 'betreff' benutzt.
MAIL_SUBJECT="TEST Kontakt Formular"

# hier die Feldernamen, die es im Formular gibt eintragen
FELDER="vorname, name, firma, strasse, plz, ort, telefon, fax, email, nachricht"

# Pflichtfelder die ausgefüllt werden müssen
PFLICHTFELDER="vorname, name, email, nachricht"

# Fehlerseite, wenn nicht alle Pflichtferlder ausgefüllt wurden
# Wenn Fehlerseite nicht definiert, wird eine Fehlerseite von
# formular.cgi erzeugt
ERROR_PAGE="error.htm"

# Seite die nach dem Versenden aufgerufen wird
REDIRECT="/formular_ok.htm";

# Pfad zu Sendmail
MAIL_PROGRAMM="/usr/sbin/sendmail"



formular.cgi

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
59: 
60: 
61: 
62: 
63: 
64: 
65: 
66: 
67: 
68: 
69: 
70: 
71: 
72: 
73: 
74: 
75: 
76: 
77: 
78: 
79: 
80: 
81: 
82: 
83: 
84: 
85: 
86: 
87: 
88: 
89: 
90: 
91: 
92: 
93: 
94: 
95: 
96: 
97: 
98: 
99: 
100: 
101: 
102: 
103: 
104: 
105: 
106: 
107: 
108: 
109: 
110: 
111: 
112: 
113: 
114: 
115: 
116: 
117: 
118: 
119: 
120: 
121: 
122: 
123: 
124: 
125: 
126: 
127: 
128: 
129: 
130: 
131: 
132: 
133: 
134: 
135: 
136: 
137: 
138: 
139: 
140: 
141: 
142: 
143: 
144: 
145: 
146: 
147: 
148: 
149: 
150: 
151: 
152: 
153: 
154: 
155: 
156: 
157: 
158: 
159: 
160: 
161: 
162: 
163: 
164: 
165: 
166: 
167: 
168: 
169: 
170: 
171: 
172: 
173: 
174: 
175: 
176: 
177: 
178: 
179: 
180: 
181: 
182: 
183: 
184: 
185: 
186: 
187: 
188: 
189: 
190: 
191: 
192: 
193: 
194: 
195: 
196:
#!/usr/bin/perl
#
# Copyright (c) 2002, Markus Roghani, <mar@perl-seite.de>
# All rights reserved.
#
# URL: http://www.perl-seite.de/
#
# formular.cgi darf von jedermann kostenlos benutzt und geändert werden, solange
# dieser Copyright-Verweis und die restlichen Kommentare erhalten bleiben. Mit
# dem Einsatz dieses Skripts akzeptieren Sie, daß Markus Roghani von jeglicher
# Haftung und Gewährleistung hinsichtlich des Einsatzes befreit ist.
#
# Der Verkauf dieses Skripts, auch in modifizierter Form, ist ohne vorherige
# Absprache ausdrücklich untersagt.
# Mit anderen Worten: Bitte fragen Sie mich, bevor Sie versuchen, mit meinem
# Skript Geld zu verdienen.
#
# Um dieses Skript über das Internet oder irgendein anderes Medium
# weiterzuverbreiten, benötigen Sie vorher meine Erlaubnis. In jeden Fall
# müssen der Copyright-Verweis und die restlichen Kommentare erhalten bleiben.
# 
#
# $Id: formular.cgi,v 1.1 2002/11/03 14:44:10 markus Exp $

use strict;
use CGI::Carp qw(fatalsToBrowser);
use CGI qw/:standard/;
use Fcntl;

my $cgi = new CGI;

#===============================================
# Einlesen der Formular Config Datei
#===============================================

my $formular_conf = $cgi->param("config");

my %globPreference;

sysopen (CONF_FILE, "$formular_conf", O_RDONLY) or die "Kann $formular_conf nicht oeffnen: $!\n";
while (<CONF_FILE>)
{
	chomp;                  # keine Newline
        s/#.*//;                # keine Kommentare
        s/^\s+//;               # keine fuehrende Whitespaces
        s/\s+$//;               # keine angehaengten Whitespaces
        next unless length;     # noch was da ?
        if (/(\S+) ?= ?"(.*?)"/g)
        {
       		my $left_val = $1;
                my $right_val = $2;
        }
        if ($1 && length ($1) > 0)
        {
        	$globPreference{$1} = $2;
        }
}
close(CONF_FILE);


my $mail_from = get_var("MAIL_FROM");
my $mail_to  = get_var("MAIL_TO");
my $mail_cc  = get_var("MAIL_CC");
my $mail_bcc = get_var("MAIL_BCC");
my $subject = get_var("MAIL_SUBJECT");
my $felder = get_var("FELDER");
my $pflichtfelder = get_var("PFLICHTFELDER");
my $sendmail = get_var("MAIL_PROGRAMM");
my $redirect = get_var("REDIRECT");
my $error_page = get_var("ERROR_PAGE");

$felder =~ s/ //g;       # whitespaces entfernen
my @felder = split(/,/, $felder);

$pflichtfelder =~ s/ //g;	# whitespaces entfernen
my @pflichtfelder = split(/,/, $pflichtfelder);


#===========================================
# Einlesen der Formulardaten
#===========================================

my %values;

foreach(@felder)
{
	$values{$_} = $cgi->param($_);
}

#=================================================
# Pruefen ob alle Pflichtfelder ausgefuellt wurden
#=================================================

foreach (@pflichtfelder)
{
	error("$_") if (! $values{$_});
}

#=================================================
# Formular mit Sendmail versenden
#=================================================


die("Fehler: Es wurde kein MAIL_TO in $formular_conf definiert") if (!$mail_to);
die("Fehler: Es wurde kein MAIL_PROGRAMM in $formular_conf definiert") if (!$sendmail);

my $rcpts = "To: $mail_to";
$rcpts .= "\nCc: $mail_cc" if ($mail_cc);
$rcpts .= "\nBcc: $mail_bcc" if ($mail_bcc); 

my $msg;
foreach(@felder)
{
	$msg .= "[$_]: $values{$_}\n";
}	

if ($mail_from)
{
	$values{email} = $mail_from;
}
if ($subject)
{
	$values{betreff} = $subject;
}

my $sendmailcmd = "|$sendmail -t -f\"$values{email}\"";

open(SENDMAIL, $sendmailcmd) or die "Kann Sendmail nicht aufrufen: $!\n";
print SENDMAIL <<END;
From: $values{email}
$rcpts
X-Mailer: FormMailer perl-seite.de
Subject: $values{betreff}

Formular Daten:

$msg


---------------------------------------------------
Formular wurde von der Seite
$ENV{'HTTP_REFERER'}
aufgerufen mit der IP $ENV{'REMOTE_ADDR'}
---------------------------------------------------
END

close(SENDMAIL);


#========================================
# REDIRECT Seite aufrufen
#========================================

print "Location: $redirect\n\n"; 

# Ende




#========================================
# Subroutinen
#========================================

sub get_var
{
        my $varName = shift;
        return ($globPreference{$varName});
}

sub error
{
	my $missing = shift;	
	
	if ($error_page)
	{	
		print "Location: $error_page\n\n";
	}
	else
	{
		print "Content-type: text/html\n\n";
		print <<EOT;
<html>
<head><title>Bitte Pflichtfelder ausfüllen</title></head>
<body>
<b>Bitte füllen Sie das Pflichtfeld $missing aus.</b>


Back Button des Browsers drücken, um zum Formular zurück zu gelangen.
</body>
</html>

EOT
	}
	exit(1);
} 


und zu guter letzt, ein kurzer Ausschnitt aus der formular.html, die bei mir angebot.htm heisst.

1: 
2:
<form action="/cgi-bin/formular.cgi" method="post" name="Formular"><input
 type="hidden" name="config" value="/cgi-bin/formular.txt">   


Ich hatte zuerst versucht, die Pfade auf www/htdocs/username/cgi-bin zu ändern, aber dann bekomme ich nur die Meldung, dass die Datei nicht auffindbar ist..

Ich hoffe, dass Posting ist nicht zu überladen und jemand von Euch kann mir einen Tipp geben. Danke im Voraus.

Gruss
Daniel

Nach oben