4.7k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von nafasi3 Einsteiger_in (53 Punkte)
Not Found
The requested URL /seiten/formmail-php4 was not found on this server.

Hallo, wenn man mein Kontaktformular ausfüllt, dann kommt diese Meldung. Was stimmt hier nicht?

14 Antworten

0 Punkte
Beantwortet von
Es gibt keine Datei, die so heißt.
0 Punkte
Beantwortet von
gast42: Gut, dass du das sagst!

Wenn du das Kontakformular hier reinhaust, kann man die vielleicht helfen.
0 Punkte
Beantwortet von nafasi3 Einsteiger_in (53 Punkte)
Hallo,

hier ist der Link zu meinem Kontaktformular

http://www.angekommen-in-side.de/seiten/kontakt.html

Müssen die

notok.htt
ok.htt
mail.htt
formmail.php4
kontakt.html

eine bestimmte Reihenfolge auf dem Server haben? Oder ist es grundsätzlich so in Ordnung wenn ich das so auf den Server lade?

Ihr merkt an meiner Frage - es ist Neuland.
0 Punkte
Beantwortet von deluxestyle Mitglied (901 Punkte)
lieft vielleicht daran, dass dein formular auf die formail-php4 zeigt, aber auf die formail.php4 zeigen sollte
0 Punkte
Beantwortet von dapascha Mitglied (541 Punkte)
Hallo nafasi3,

du hast zwei Fehler:

1. im <form>-Tag muss der Parameter action geändert werden. Es zeigt auf die Datei "formail-php4", die Datei heißt aber "formail.php4".

2. dein Web-Server unterstützt die php4-Endung nicht. Das merkst du in dem du die Datei "formail-php4" im Browser öffnest.
Merke: PHP-Code darf niemals im Browser zu sehen sein.

Zusammenfassung:
1. Benenne die Datei "formail.php4" zu "formail.php" um.
2. Ändere die Action auf "formail.php".

Gruß DaPascha
0 Punkte
Beantwortet von nafasi3 Einsteiger_in (53 Punkte)
Vielen Dank für die Rückantwort.
Habe die Datei umbenannt und formmail.php geändert.

Nun kommt als Rückmeldung nach dem Senden:

Method Not Allowed
The requested method POST is not allowed for the URL /seiten/formmail.php.

Habe es schon mit GET und Standard versucht - geht nicht.

Was ist jetzt zu tun?
0 Punkte
Beantwortet von
in der Serverkonfiguration (httpd.conf) schauen, für welche Dateitypen GET und POST erlaubt sind und dafür sorgen, dass Dateien mit der Endung PHP dazugehören (manchmal reichte's aber auch, den korrekten Mimetype für PHP in die htaccess zus chreiben)
0 Punkte
Beantwortet von nafasi3 Einsteiger_in (53 Punkte)
Danke, dass ihr mich unterstützt.

Es hat sich etwas bewegt.

Nur jetzt kommt trotz ausgefüllter Pflichtfelder (2 Stück) "Pflichtfelder ausfüllen".

http://www.angekommen-in-side.de/seiten/kontakt.html

<?php
$fmtnotok= implode("", file("notok.htt"));
$fmtResponse= implode("", file("ok.htt"));
$fmtMail= implode("", file("mail.htt"));
if (empty($HTTP_POST_VARS["name"])) {
echo $fmtnotok;
} else {
if (empty($HTTP_POST_VARS["email"])) {
echo $fmtnotok;
} else {
foreach($HTTP_POST_VARS as $key=> $val) {
$fmtResponse= str_replace("<$key>", $val, $fmtResponse);
$fmtMail= str_replace("<$key>", $val, $fmtMail);
}
if ($HTTP_POST_VARS["access"] == "prinzing") {
mail($HTTP_POST_VARS["recipient"], $HTTP_POST_VARS["subject"], $fmtMail);
}
echo $fmtResponse;
}
}
?>
0 Punkte
Beantwortet von dapascha Mitglied (541 Punkte)
Hi,

du hattest einen logischen Fehler in deinen if-Anweisungen, probiere es so:

<?php
$fmtnotok= implode("", file("notok.htt"));
$fmtResponse= implode("", file("ok.htt"));
$fmtMail= implode("", file("mail.htt"));

if (empty($HTTP_POST_VARS["name"])) {
echo $fmtnotok;
}
else if (empty($HTTP_POST_VARS["email"])) {
echo $fmtnotok;
}
else {
foreach($HTTP_POST_VARS as $key=> $val)
{
$fmtResponse= str_replace("<$key>", $val, $fmtResponse);
$fmtMail= str_replace("<$key>", $val, $fmtMail);
}
if ($HTTP_POST_VARS["access"] == "prinzing") {
mail($HTTP_POST_VARS["recipient"], $HTTP_POST_VARS["subject"], $fmtMail);
}
echo $fmtResponse;
}
?>
0 Punkte
Beantwortet von dapascha Mitglied (541 Punkte)
Nachtrag: Ich entschuldige meine Voreile. Die Logig deines Skripts ist in Ordnung. Die Ursache des Problems ist die $HTTP_POST_VARS-Variable, diese wurde sein PHP5 abgeschafft, und durch die Variable $_POST ersetzt.
Aus diesem Grund werden die Felder als leer gegenzeichnet.

Gruß DaPascha
...