46356
04.07.2007, aktualisiert um 22:17:51 Uhr
6293
17
0
Was ist an diesem PHP Forumlar falsch?
Guten Tag!
Könnt Ihr mir sagen was ich hier falsch gemacht habe?
Wenn ich auf Versenden klicke, kommen immer die Fehler!!
Was kann ich machen?
Vielen Dank!
Alexander Breuss
Könnt Ihr mir sagen was ich hier falsch gemacht habe?
$mail_to="max@mustermann.at";
$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 geben Sie Ihren Namen an.<br>";
if(trim($from_mail)=="")
$err_text.="Bitte geben Sie Ihre 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 geben Sie eine gültige E-Mail-Adresse an.<br>";
if(trim($from_ort)=="") $err_text.="Bitte geben Sie den Ort an, in dem Sie zur Zeit leben.<br>";
if(trim($zukunft_ortname)=="") $err_text.="Bitte geben Sie den Ort an, in dem Sie in Zukunft leben wollen.<br>";
if(trim($zukunft_m)=="") $err_text.="Bitte geben Sie die m2 an, die das Gebäude haben sollte.<br>";
if(trim($zukunft_preis)=="") $err_text.="Bitte geben Sie den Preis an, den Sie für das Gebäude angemessen halten.<br>";
if(trim($mail_text)=="") $err_text.="Bitte geben Sie auf jeden Fall noch Ihre Telefonnummer an!<br>";
// *** Zu langen Text abschneiden ***
if(strlen($mail_text)>10000) {
$mail_text=substr($mail_text,0,10000)."... (Beachten Sie: Aus Sicherheitsgründen wird der Text ab 10 000 Zeichen gekürzt;";
}
$from_name=stripslashes($from_name);
$from_mail=stripslashes($from_mail);
$from_ort=stripslashes($from_ort);
$zukunft_haus=stripslashes($zukunft_haus);
$zukunft_doppelhaus=stripslashes($zukunft_doppelhaus);
$zukunft_wohnung=stripslashes($zukunft_wohnung);
$zukunft_sonstiges=stripslashes($zukunft_sonstiges);
$zukunft_ortname=stripslashes($zukunft_ortname);
$zukunft_m=stripslashes($zukunft_m);
$zukunft_preis=stripslashes($zukunft_preis);
$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="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border=0 cellspacing=2 cellpadding=0 width=100%>
<tr><td nowrap align=right><font face="Verdana" size="2px">Name:</font></td><td> </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><font face="Verdana" size="2px">E-Mail Adresse:</font></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><font face="Verdana" size="2px">Gemeinde/Ort</font></td><td></td>
<td width=100%><input type="text" name="mailsubject" size=50 maxlength=120 value="<?php echo $from_ort; ?>"></td></tr>
<tr><td><i/>Zukunft:</i></td></tr>
<tr><td nowrap align=right valign=top><font face="Verdana" size="2px">Ihr Wunsch:</font><br><i>Sie stellen sich ein ... vor.</i></td><td></td>
<td width=100%><select name="month" value="><?php echo $mail_text; ?>"> <option value="<?php echo $zukunft_haus; ?>">Haus</option><option value="<?php echo $zukunft_doppelhaus; ?>">Doppelhaus</option><option value="<?php echo $zukunft_wohnung; ?>">Wohnung</option><option value="<?php echo $zukunft_sonstiges; ?>">Sonstiges</option></td></tr>
<tr><td nowrap align=right><font face="Verdana" size="2px">In folgendem Ort:</font></td><td> </td>
<td width=100%><input type="text" name="fromname" size=50 maxlength=120 value="<?php echo $zukunft_ortname; ?>"></td></tr>
<tr><td nowrap align=right><font face="Verdana" size="2px">Mit folgenden m2</font></td><td></td>
<td width=100%><input type="text" name="frommail" size=50 maxlength=120 value="<?php echo $zukunft_m; ?>"></td></tr>
<tr><td nowrap align=right><font face="Verdana" size="2px">In dieser Preisklasse</font></td><td></td>
<td width=100%><input type="text" name="mailsubject" size=50 maxlength=120 value="<?php echo $zukunft_preis; ?>"></td></tr>
<tr><td nowrap align=right valign=top><font face="Verdana" size="2px">Sonstiges (Wichtig: Tel Nr.)</font><br><i>(max. 10.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>
} else {
$header="From: $from_name <$from_mail>
";
$header.="Reply-To: $from_mail
";
$header.="Content-Type: text/plain";
$mail_date=gmdate("D, d M Y H:i:s")." +0000";
$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="".$_SERVER['PHP_SELF']."?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="".$_SERVER['PHP_SELF']."?from_name=$from_name&from_mail=$from_mail&mail_subject=$mail_subject&mail_text=";
echo urlencode($mail_text)."">Zurück zum Formular</a></p>";
}
}
Was kann ich machen?
Vielen Dank!
Alexander Breuss
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 63026
Url: https://administrator.de/contentid/63026
Ausgedruckt am: 26.11.2024 um 10:11 Uhr
17 Kommentare
Neuester Kommentar
Das liegt daran das die Variablen nicht existieren also nicht definiert sind. Z.B.
Die Variable $from_ort wird nirgends definiert. Tesweise solltest du error_reporting(E_ALL) aktvivieren somit wirst du über alles informiert wenn etwas für PHP unklar ist
if(trim($from_ort)=="") $err_text.="Bitte geben Sie den Ort an, in dem Sie zur Zeit leben.<br>";
Hab auch ein Mail script:
answer.txt= Dies wir dem Mailversender zugeschickt
Formular.html Du kannst hier ändern was du willst das php script nimmt alle formularfelder
Hie ist die mailform.php
meldung.html
Dieses Script kannst du hier teten
http://www.daniel-zollitsch.xail.net/Mailer/formular.htm
Änderung(en):
Ich hab mir erlaubt deine Email-Adresse herauszunehmen da du sicher nicht willst das die Adresse zugespammt wird!
masterG
Moderator
answer.txt= Dies wir dem Mailversender zugeschickt
* * * * * * * * * * * * * * * * * * * * *
AtomicScript Team
Wir haben Ihre Nachricht erhalten
und werden sie umgehend bearbeiten.
Freundliche Grüsse
Zollitsch Daniel
(AtomicScript Team)
* * * * * * * * * * * * * * * * * * * * *
<html>
<head>
<title>AtomicScript - Kontaktformular</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<body>
<img src="bilder/logo.gif" width="300" height="60">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="10">
<tr>
<td rowspan="7" valign="top" bgcolor="#FFFFFF"><p>
</p>
<div align="center">
<form name="formular" method="post" action="mailform.php" onSubmit="return eingabe()">
<input type="hidden" name="mailer" value="Atomic Mailer">
<input type="hidden" name="trennzeichen" value=": ">
<input type="hidden" name="weiterleitung" value="meldung.htm">
<input type="hidden" name="automailtext" value="answer.txt">
<table width="100%">
<tr>
<td valign="middle" bgcolor="#FFFFFF"> <div align="right"><b>Name: </b></div></td>
<td bgcolor="#FFFFFF">
<input name="Name" type="Text" id="Name" size="40" maxlength="50">
</td>
</tr>
<tr>
<td valign="middle" bgcolor="#FFFFFF"> <div align="right"><b>E-Mail: </b></div></td>
<td bgcolor="#FFFFFF"> <div align="left">
<input name="Mail" type="Text" id="Mail" size="40" maxlength="50">
</div></td>
</tr>
<tr>
<td valign="middle" bgcolor="#FFFFFF"> <div align="right"><b>Status:</b> </div></td>
<td bgcolor="#FFFFFF">
<select name="Status" id="Status">
<option value="Kritik">Kritik</option>
<option value="Anregung" selected>Anregung</option>
<option value="Lob">Lob</option>
</select>
</td>
</tr>
<tr>
<td valign="middle" bgcolor="#FFFFFF"> <div align="right"><b>Betreff: </b></div></td>
<td bgcolor="#FFFFFF"> <div align="left">
<input type="Text" name="Betreff" size="40" maxlength="50">
</div></td>
</tr>
<tr>
<td valign="top" bgcolor="#FFFFFF"> <div align="right"><b>Ihre
Nachricht: </b></div></td>
<td bgcolor="#FFFFFF"> <div align="left">
<textarea name="Inhalt" cols="40" rows="10" id="Inhalt"></textarea>
</div></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> </td>
<td valign="top" bgcolor="#FFFFFF"> <div align="left">
<p><b>
<input name="senden" type="Submit" value="Abschicken">
<input name="Reset" type="Reset" value="Reset">
</b></p>
</div></td>
</tr>
</table>
<p> </p></form>
</div><div align="right">
</div></td>
</tr>
</table>
</body>
</html>
Hie ist die mailform.php
<?php
// Konfiguration
$webmaster = "Daniel Zollitsch";
$webmastermail = "max.mustermann@max.at";
$trenner = $_POST["trennzeichen"];
$umleitung = $_POST["weiterleitung"];
$automailinhalt = $_POST['automailtext'];
$mailername = $_POST["mailer"];
$formatmail = $_POST["Name"] . " <" . $_POST["Mail"] .">\n";
$mailinhalt = "";
// Mailer Fehlermeldung
$mail_fehler = "
<html>
<head>
<title>Banner</title>
<link href='css/mailerstyle.css' rel='stylesheet' type='text/css'>
</head>
<body bgcolor='#FFFFFF' text='#000000'>
<table width='300' align='center'>
<tr>
<td align='center' class='latestnews' colspan='3'>- FEHLER - <br>
<p>Die Mail konnte z.Z. nicht verschickt werden.</p>
Versuchen Sie es bitte später nochmal!<br>
<a href='formular.htm'>Nochmal Versuchen</a>
</td>
</tr>
</table>
</body>
</html>
";
// Verarbeitung sämtlicher Formulardaten
while(list($name,$wert) = each($_POST))
{
if($name != "weiterleitung" && $name != "mailer" && $name != "trennzeichen" && $name != "senden" && $name != "$automailtext")
{
if(is_array($wert))
{
foreach($wert as $wert_array)
{
$mailinhalt .= $name.$trenner.$wert_array."\n\n";
}
}
else $mailinhalt .= $name.$trenner.$wert."\n\n";
}
}
if(get_magic_quotes_gpc()) $mailinhalt = stripslashes($mailinhalt);
// Versenden der Mail an den Webmaster
@mail($webmastermail,$mailername,$mailinhalt,"From: $formatmail") or die($mail_fehler);
// Automatische Rückmeldung an den Nutzer (Autoresponder)
$dateiname = $automailinhalt;
$fd = fopen($dateiname, "r" );
$fdinhalt = fread($fd, filesize($dateiname));
fclose($fd);
// Versenden der Automatischen Rückmeldung an den Nutzer
@mail($formatmail, "Danke für Ihre E-Mail", "$fdinhalt\n\n","From: $webmaster <$webmastermail>\n") or die($mail_fehler);
// Automatische Weiterleitung zur Umleitung
header("Location: $umleitung");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Meldung - Anfrage Verschickt</title>
<link href="css/mailerstyle.css" rel="stylesheet" type="text/css">
</head>
<body>
<div align="center">
<p><img src="bilder/logo.gif" width="300" height="60"></p>
<p> Ihre Anfrage ist so eben verschickt worden...</p>
<p><a href="javascript:history.back()">[Zurück zum Atomic-Mailer]</a></p>
</div>
</body>
</html>
Dieses Script kannst du hier teten
http://www.daniel-zollitsch.xail.net/Mailer/formular.htm
Änderung(en):
Ich hab mir erlaubt deine Email-Adresse herauszunehmen da du sicher nicht willst das die Adresse zugespammt wird!
masterG
Moderator
So, ich hab mal dein Script korrigiert.
Da war soviel Falsch....
Ein paar sachen muss du noch selbst korrigieren...ungültige variablen killen, aber sonst funktioniert alles
Da war soviel Falsch....
Ein paar sachen muss du noch selbst korrigieren...ungültige variablen killen, aber sonst funktioniert alles
<?php
$mail_to="max@mustermann.at";
$from_name=$_POST['fromname'];
$from_ort=$_POST['fromort'];
$zukunft_ortname=$_POST['zukunftortname'];
$zukunft_m=$_POST['zukunftm'];
$zukunft_haus=$_POST['month'];
$mail_text=$_POST['mailtext'];
$zukunft_preis=$_POST['zukunftpreis'];
$from_mail=strtolower($_POST['frommail']);
$mail_subject=$_POST['mailsubject'];
$mail_text=$_POST['mailtext'];
$send=$_POST['s'];
echo $from_name ;
echo $from_ort ;
echo $zukunft_ortname ;
echo $zukunft_m ;
echo $zukunft_haus ;
echo $mail_text ;
echo $zukunft_preis ;
echo $from_mail;
if(trim($from_name)=="") $err_text.="Bitte geben Sie Ihren Namen an.<br>";
if(trim($from_mail)=="") $err_text.="Bitte geben Sie Ihre 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 geben Sie eine gültige E-Mail-Adresse an.<br>";
if(trim($from_ort)=="") $err_text.="Bitte geben Sie den Ort an, in dem Sie zur Zeit leben.<br>";
if(trim($zukunft_ortname)=="") $err_text.="Bitte geben Sie den Ort an, in dem Sie in Zukunft leben wollen.<br>";
if(trim($zukunft_m)=="") $err_text.="Bitte geben Sie die m2 an, die das Gebäude haben sollte.<br>";
if(trim($zukunft_preis)=="") $err_text.="Bitte geben Sie den Preis an, den Sie für das Gebäude angemessen halten.<br>";
if(trim($mail_text)=="") $err_text.="Bitte geben Sie auf jeden Fall noch Ihre Telefonnummer an!<br>";
// *** Zu langen Text abschneiden ***
if(strlen($mail_text)>10000) {
$mail_text=substr($mail_text,0,10000)."... (Beachten Sie: Aus Sicherheitsgründen wird der Text ab 10 000 Zeichen gekürzt;";
}
$from_name=stripslashes($from_name);
$from_mail=stripslashes($from_mail);
$from_ort=stripslashes($from_ort);
$zukunft_haus=stripslashes($zukunft_haus);
$zukunft_doppelhaus=stripslashes($zukunft_doppelhaus);
$zukunft_wohnung=stripslashes($zukunft_wohnung);
$zukunft_sonstiges=stripslashes($zukunft_sonstiges);
$zukunft_ortname=stripslashes($zukunft_ortname);
$zukunft_m=stripslashes($zukunft_m);
$zukunft_preis=stripslashes($zukunft_preis);
$mail_text=stripslashes($mail_text);
if(($send=="1") && (isset($err_text))) {
echo "<p><big>Fehler:</big><br>";
echo "$err_text</p>";
}
if(($send!="1") || (isset($err_text)))
{
echo $_SERVER['PHP_SELF'];
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border=0 cellspacing=2 cellpadding=0 width=100%>
<tr><td nowrap align=right><font face="Verdana" size="2px">Name:</font></td><td> </td>
<td width=100%><input type="text" name="fromname" size=50 maxlength=120></td></tr>
<tr><td nowrap align=right><font face="Verdana" size="2px">E-Mail Adresse:</font></td><td></td>
<td width=100%><input type="text" name="frommail" size=50 maxlength=120></td></tr>
<tr><td nowrap align=right><font face="Verdana" size="2px">Gemeinde/Ort</font></td><td></td>
<td width=100%><input type="text" name="fromort" size=50 maxlength=120></td></tr>
<tr><td><i/>Zukunft:</td></tr>
<tr><td nowrap align=right valign=top><font face="Verdana" size="2px">Ihr Wunsch:</font><br>Sie stellen sich ein ... vor.</td><td></td>
<td width=100%><select name="month"><option value="Haus">Haus</option><option value="Doppelhaus">Doppelhaus</option><option value="Wohnung">Wohnung</option><option value="Sonstiges">Sonstiges</option></select></td></tr>
<tr><td nowrap align=right><font face="Verdana" size="2px">In folgendem Ort:</font></td><td> </td>
<td width=100%><input type="text" name="zukunftortname" size=50 maxlength=120></td></tr>
<tr><td nowrap align=right><font face="Verdana" size="2px">Mit folgenden m2</font></td><td></td>
<td width=100%><input type="text" name="zukunftm" size=50 maxlength=120></td></tr>
<tr><td nowrap align=right><font face="Verdana" size="2px">In dieser Preisklasse</font></td><td></td>
<td width=100%><input type="text" name="zukunftpreis" size=50 maxlength=120></td></tr>
<tr><td nowrap align=right valign=top><font face="Verdana" size="2px">Sonstiges (Wichtig: Tel Nr.)</font><br>(max. 10.000 Zeichen)</td><td></td>
<td width=100%><textarea cols="40" rows="10" name="mailtext" type="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>
<?
} else {
$header="From: $from_name <$from_mail>
";
$header.="Reply-To: $from_mail
";
$header.="Content-Type: text/plain";
$mail_date=gmdate("D, d M Y H:i:s")." +0000";
$send=0;
if(@mail($mail_to,$mail_subject,$mail_text,$header))
{
echo "<p>Deine E-Mail wurde abgesendet.</p>";
echo "<p><a href=\"".$_SERVER['PHP_SELF']."?from_name=$from_name&from_mail=$from_mail\">Zurück zum Formular</a></p>";
}else{
echo "<p>Beim Versenden der E-Mail ist ein Fehler aufgetreten!</p>";
echo "<p><a href=\"".$_SERVER['PHP_SELF']."?from_name=$from_name&from_mail=$from_mail&mail_subject=$mail_subject&mail_text=";
echo urlencode($mail_text)."\">Zurück zum Formular</a></p>";
}
}
?>
Also damit das drin bleibt, nimmste einfach ne JavaScriptFunktion
dann geht er halt einen schritt zurück,
die formulardaten bleiben dann drin. (in den meisten fällen) ;)
um dir die ganzen inhalte mitschicken zu lassen,packste die da rein, wo auch $mail_text steht
also zwischen $mail_subject und $header
und trennst das mit nem punkt
kannst natürlich auch formatieren...dass er dir nen zeilenumbruch macht
$mail_text.$zukunft_haus.$zukunft_preis
wäre dann mit zeilenumbrüchen
$mail_text."\n".$zukunft_haus."\n".$zukunft_preis
Viel spaß noch beim coden ;)
<a href=javascript:history.back(-1) onFocus=this.blur()>Zurück zum Formular</a>
die formulardaten bleiben dann drin. (in den meisten fällen) ;)
um dir die ganzen inhalte mitschicken zu lassen,packste die da rein, wo auch $mail_text steht
also zwischen $mail_subject und $header
und trennst das mit nem punkt
if(@mail($mail_to,$mail_subject,$mail_text.$zukunft_haus.$zukunft_preis,$header))
kannst natürlich auch formatieren...dass er dir nen zeilenumbruch macht
$mail_text.$zukunft_haus.$zukunft_preis
wäre dann mit zeilenumbrüchen
$mail_text."\n".$zukunft_haus."\n".$zukunft_preis
Viel spaß noch beim coden ;)
if(($send!="1") || (isset($err_text)))
{
echo $_SERVER['PHP_SELF'];
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border=0 cellspacing=2 cellpadding=0 width=100%>
Das macht folgende Zeile
echo $_SERVER['PHP_SELF'];
Kannst du löschen, dann ist diese Anzeige weg.
Mein Fehler ;)
Chris