Kontaktformular geht nicht

Alles, was PHP betrifft, kann hier besprochen werden.

Kontaktformular geht nicht

Postby K.C. » 09. November 2006 17:33

Hallo,

ich hab' ein kleines Problem :( :

Ich bin Anfänger in PHP und hab' ein Kontaktformular heruntergeladen.
Doch es funktioniert irgendwie nicht...
Es kommt immer, wenn ich eine Nachricht absenden will, die 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
11/09/06 17:26:28
Apache/2.2.3 (Win32) DAV/2 mod_ssl/2.2.3 OpenSSL/0.9.8d mod_autoindex_color PHP/5.1.6



Mein Quelltext sieht so aus:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Kontaktformular</title>

<meta name="title" content="Kontaktformular -- www.king-c.de>
<meta name="description" content="Kontaktformular von K.C.>
<meta name="keywords" content="Kontakt, Kontaktformular">
<meta name="author" content="Gaijin">
<meta http-equiv="content-language" content="de-at">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>
<body>

<h1>Kontakt</h1><br>

<?php

// *** E-Mailadresse (Empfänger) ***
$mail_to="hofmann.chris@yahoo.de";
// *************************************

$from_name=$_POST['fromname'];
$from_mail=strtolower($_POST['frommail']);
$mail_subject=$_POST['mailsubject'];
$mail_text=$_POST['mailtext'];
$send=$_POST['s'];

if(trim($from_name)=="") $err_text.="Bitte gib Deinen Namen an.<br>";
if(trim($from_mail)=="")
$err_text.="Bitte gib Deine E-Mail-Adresse an.<br>";
else
if(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$",$from_mail))
$err_text.="Bitte gib eine gültige E-Mail-Adresse an.<br>";
if(trim($mail_subject)=="") $err_text.="Bitte gib einen Betreff ein.<br>";
if(trim($mail_text)=="") $err_text.="Bitte gib einen Nachrichtentext ein.<br>";

// *** Zu langen Text abschneiden ***
if(strlen($mail_text)>1000) {
$mail_text=substr($mail_text,0,1000)."... (Text wurde gekürzt!)";
}
$from_name=str_replace(chr(34),"''",$from_name);
$mail_subject=str_replace(chr(34),"''",$mail_subject);
$from_name=stripslashes($from_name);
$from_mail=stripslashes($from_mail);
$mail_subject=stripslashes($mail_subject);
$mail_text=stripslashes($mail_text);

if(($send=="1") && (isset($err_text))) {
echo "<p><big><b>Fehler:</b></big><br>";
echo "$err_text</p>";
}

if(($send!="1") || (isset($err_text)))
{
?>

<form action="contact.php" method="post">
<table border=0 cellspacing=2 cellpadding=0 width=100%>
<tr><td nowrap align=right>Dein Name:</td><td>&nbsp;</td>
<td width=100%><input type="text" name="fromname" size=50 maxlength=120 value="<?php echo $from_name; ?>"></td></tr>
<tr><td nowrap align=right>Deine E-Mail Adresse:</td><td></td>
<td width=100%><input type="text" name="frommail" size=50 maxlength=120 value="<?php echo $from_mail; ?>"></td></tr>
<tr><td nowrap align=right>Betreff:</td><td></td>
<td width=100%><input type="text" name="mailsubject" size=50 maxlength=120 value="<?php echo $mail_subject; ?>"></td></tr>
<tr><td nowrap align=right valign=top>Text:<br><i>(max. 1.000 Zeichen)</i></td><td></td>
<td width=100%><textarea cols="40" rows="10" name="mailtext"><?php echo $mail_text; ?></textarea></td></tr>
<tr><td></td><td></td><td>
<input type="hidden" value="1" name="s">
<input type="submit" value="Nachricht versenden" name="submit">
</td></tr>
</table>
</form>

<?php
} else {
$header="From: $from_name <$from_mail>\n";
$header.="Reply-To: $from_mail\n";
$header.="X-Mailer: PHP-FormMailer (www.king-c.de)\n";
$header.="Content-Type: text/plain";
$mail_date=gmdate("D, d M Y H:i:s")." GMT";
$send=0;
if(@mail($mail_to,$mail_subject,$mail_text,$header))
{
echo "<p><b>Deine E-Mail wurde abgesendet.</b></p>";
echo "<p><a href=\"kontaktformular.php?from_name=$from_name&from_mail=$from_mail\">Zurück zum Formular</a></p>";
}else{
echo "<p><b>Beim Versenden der E-Mail ist ein Fehler aufgetreten!</b></p>";
echo "<p><a href=\"kontaktformular.php?from_name=$from_name&from_mail=$from_mail&mail_subject=$mail_subject&mail_text=";
echo urlencode($mail_text)."\">Zurück zum Formular</a></p>";
}
}
?>

</body>
</html>



Ich hoffe, dass mir jemand bei diesem Problem helfen kann :roll: ...


MfG

Chris
Last edited by K.C. on 11. November 2006 16:21, edited 1 time in total.
User avatar
K.C.
 
Posts: 3
Joined: 09. November 2006 17:11

Re: Kontaktformular geht nicht

Postby ManUnix » 11. November 2006 15:28

Hi Chris,

K.C. wrote:Es kommt immer, wenn ich eine Nachricht absenden will, die Fehlermeldung:

[...]
Code: Select all
<form action="contact.php" method="post">


heisst Deine PHP-Datei denn "contact.php"?

Wenn nicht, dann liegt das Problem genau da, denn wenn Du das Formular abschickst, wird es an die Datei "contact.php" geschickt.

Wenn Deine Datei anders heisst, dann trag statt "contact.php" Deinen Dateinamen ein oder ändere die Zeile wie folgt:

Code: Select all
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">

Dann ist es egal wie die Datei heisst.

cu,
Manu
User avatar
ManUnix
 
Posts: 113
Joined: 16. April 2006 15:14

Re: AW: Kontaktformular geht nicht

Postby K.C. » 11. November 2006 16:12

Wenn ich jetzt aber eine deiner Möglichkeiten einsetzt, kommt eben die Fehlermeldung, die kommen muss, wenn irgendwas nicht klappt:

Beim Versenden der E-Mail ist ein Fehler aufgetreten!


Mein Code sieht jetzt so aus:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Kontaktformular</title>

<meta name="title" content="Kontaktformular -- www.king-c.de>
<meta name="description" content="Kontaktformular von K.C.>
<meta name="keywords" content="Kontakt, Kontaktformular">
<meta name="author" content="Gaijin">
<meta http-equiv="content-language" content="de-at">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>
<body>

<h1>Kontakt</h1><br>

<?php

// *** E-Mailadresse (Empfänger) ***
$mail_to="hofmann.chris@yahoo.de";
// *************************************

$from_name=$_POST['fromname'];
$from_mail=strtolower($_POST['frommail']);
$mail_subject=$_POST['mailsubject'];
$mail_text=$_POST['mailtext'];
$send=$_POST['s'];

if(trim($from_name)=="") $err_text.="Bitte gib Deinen Namen an.<br>";
if(trim($from_mail)=="")
$err_text.="Bitte gib Deine E-Mail-Adresse an.<br>";
else
if(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$",$from_mail))
$err_text.="Bitte gib eine gültige E-Mail-Adresse an.<br>";
if(trim($mail_subject)=="") $err_text.="Bitte gib einen Betreff ein.<br>";
if(trim($mail_text)=="") $err_text.="Bitte gib einen Nachrichtentext ein.<br>";

// *** Zu langen Text abschneiden ***
if(strlen($mail_text)>1000) {
$mail_text=substr($mail_text,0,1000)."... (Text wurde gekürzt!)";
}
$from_name=str_replace(chr(34),"''",$from_name);
$mail_subject=str_replace(chr(34),"''",$mail_subject);
$from_name=stripslashes($from_name);
$from_mail=stripslashes($from_mail);
$mail_subject=stripslashes($mail_subject);
$mail_text=stripslashes($mail_text);

if(($send=="1") && (isset($err_text))) {
echo "<p><big><b>Fehler:</b></big><br>";
echo "$err_text</p>";
}

if(($send!="1") || (isset($err_text)))
{
?>

<form action="kontaktformular.php" method="post">
<table border=0 cellspacing=2 cellpadding=0 width=100%>
<tr><td nowrap align=right>Dein Name:</td><td>&nbsp;</td>
<td width=100%><input type="text" name="fromname" size=50 maxlength=120 value="<?php echo $from_name; ?>"></td></tr>
<tr><td nowrap align=right>Deine E-Mail Adresse:</td><td></td>
<td width=100%><input type="text" name="frommail" size=50 maxlength=120 value="<?php echo $from_mail; ?>"></td></tr>
<tr><td nowrap align=right>Betreff:</td><td></td>
<td width=100%><input type="text" name="mailsubject" size=50 maxlength=120 value="<?php echo $mail_subject; ?>"></td></tr>
<tr><td nowrap align=right valign=top>Text:<br><i>(max. 1.000 Zeichen)</i></td><td></td>
<td width=100%><textarea cols="40" rows="10" name="mailtext"><?php echo $mail_text; ?></textarea></td></tr>
<tr><td></td><td></td><td>
<input type="hidden" value="1" name="s">
<input type="submit" value="Nachricht versenden" name="submit">
</td></tr>
</table>
</form>

<?php
} else {
$header="From: $from_name <$from_mail>\n";
$header.="Reply-To: $from_mail\n";
$header.="X-Mailer: PHP-FormMailer (www.king-c.de)\n";
$header.="Content-Type: text/plain";
$mail_date=gmdate("D, d M Y H:i:s")." GMT";
$send=0;
if(@mail($mail_to,$mail_subject,$mail_text,$header))
{
echo "<p><b>Deine E-Mail wurde abgesendet.</b></p>";
echo "<p><a href=\"kontaktformular.php?from_name=$from_name&from_mail=$from_mail\">Zurück zum Formular</a></p>";
}else{
echo "<p><b>Beim Versenden der E-Mail ist ein Fehler aufgetreten!</b></p>";
echo "<p><a href=\"kontaktformular.php?from_name=$from_name&from_mail=$from_mail&mail_subject=$mail_subject&mail_text=";
echo urlencode($mail_text)."\">Zurück zum Formular</a></p>";
}
}
?>

</body>
</html>



Was kann dann noch falsch sein? :?
User avatar
K.C.
 
Posts: 3
Joined: 09. November 2006 17:11

Re: Kontaktformular geht nicht

Postby ManUnix » 12. November 2006 14:16

Hi Chris,

hab das Skript bei mir ausprobiert und es läuft ohne Probleme.


K.C. wrote:Was kann dann noch falsch sein? :?

hm...
Da fehlten jeweils die schließenden Anführungszeichen, ändert aber nix an der Fehlermeldung ;)

Code: Select all
<meta name="title" content="Kontaktformular -- www.king-c.de">
<meta name="description" content="Kontaktformular von K.C.">


Im $header würde ich "\r\n" statt "\n" nehmen.

Code: Select all
$header="From: $from_name <$from_mail>\r\n";
$header.="Reply-To: $from_mail\r\n";
$header.="X-Mailer: PHP-FormMailer (www.king-c.de)\r\n";
$header.="Content-Type: text/plain";


Die Fehlermeldung entsteht hier:

Code: Select all
if(@mail($mail_to,$mail_subject,$mail_text,$header)) {
  // Mail verschickt
}else{
  // Fehlermeldung
}


D.h. Du müsstest mal prüfen, ob er an der Stelle alle Variablen gesetzt hat, oder ob ihm bei Dir eine fehlt.

Wie gesagt, bei mir läuft das Skript ohne Probleme.

cu,
Manu
User avatar
ManUnix
 
Posts: 113
Joined: 16. April 2006 15:14


Return to PHP

Who is online

Users browsing this forum: No registered users and 152 guests