Hallo rizzo,
anbei der code
PHP-Code:
<?php
/*******************************************/
/* formmailer.php */
/* */
/* FORMMAILER mit Reloadsperre */
/* */
/* von Steffen Kamper */
/* erstellt für das Traumprojekt-Forum */
/* angepasst von Primajin */
/*******************************************/
//erstmal Variablen definieren
$pagename="anmeldung_fast12.php";
$error==$name=$vorname=$mail1=$mail2=$pass1=$str=$plz=$ort=$b_land=$tel="";
// an wen geht die Mail ?
$empfaenger="ich@web.de";
if(isset($_POST['domail'])) {
// es wurde abschicken gedrückt, also erst mal die Felder holen
$name=get_magic_quotes_gpc() ? stripslashes($_POST['name']) : $_POST['name'];
$vorname=get_magic_quotes_gpc() ? stripslashes($_POST['vorname']) : $_POST['vorname'];
$mail1=get_magic_quotes_gpc() ? stripslashes($_POST['mail1']) : $_POST['mail1'];
$mail2=get_magic_quotes_gpc() ? stripslashes($_POST['mail2']) : $_POST['mail2'];
$pass1=get_magic_quotes_gpc() ? stripslashes($_POST['pass1']) : $_POST['pass1'];
$str=get_magic_quotes_gpc() ? stripslashes($_POST['str']) : $_POST['str'];
$plz=get_magic_quotes_gpc() ? stripslashes($_POST['plz']) : $_POST['plz'];
$ort=get_magic_quotes_gpc() ? stripslashes($_POST['ort']) : $_POST['ort'];
$b_land=get_magic_quotes_gpc() ? stripslashes($_POST['b_land']) : $_POST['b_land'];
$tel=get_magic_quotes_gpc() ? stripslashes($_POST['tel']) : $_POST['tel'];
//Form-Attacken verhindern (suche nach \r\n oder \n)
if(strpos($name,"\r\n")>0 || strpos($name,"\n")>0) {
DebugAttack(substr($name,strpos($name,"\r\n")));
$name="";
}
if(strpos($vorname,"\r\n")>0 || strpos($vorname,"\n")>0) {
DebugAttack(substr($vorname,strpos($vorname,"\r\n")));
$vorname="";
}
if(strpos($mail1,"\r\n")>0 || strpos($mail1,"\n")>0) {
DebugAttack(substr($ort,strpos($mail1,"\r\n")));
$mail1="";
}
if(strpos($mail2,"\r\n")>0 || strpos($mail2,"\n")>0) {
DebugAttack(substr($plz,strpos($mail2,"\r\n")));
$mail2="";
}
if(strpos($pass1,"\r\n")>0 || strpos($pass1,"\n")>0) {
DebugAttack(substr($plz,strpos($pass1,"\r\n")));
$pass1="";
}
if(strpos($str,"\r\n")>0 || strpos($str,"\n")>0) {
DebugAttack(substr($telefon,strpos($str,"\r\n")));
$str="";
}
if(strpos($plz,"\r\n")>0 || strpos($plz,"\n")>0) {
DebugAttack(substr($plz,strpos($plz,"\r\n")));
$plz="";
}
if(strpos($ort,"\r\n")>0 || strpos($ort,"\n")>0) {
DebugAttack(substr($ort,strpos($ort,"\r\n")));
$ort="";
}
if(strpos($b_land,"\r\n")>0 || strpos($b_land,"\n")>0) {
DebugAttack(substr($b_land,strpos($b_land,"\r\n")));
$b_land="";
}
if(strpos($tel,"\r\n")>0 || strpos($tel,"\n")>0) {
DebugAttack(substr($tel,strpos($tel,"\r\n")));
$tel="";
}
//Message setzt sich aus allen Eingaben zusammen
$message=get_magic_quotes_gpc() ? stripslashes($_POST['message']) : $_POST['message'];
// wir setzen einen Flag, um Fehler zu registrieren
$ok=true;
//jetzt werden die Felder überprüft
if (strlen($name)<3) // der Name muss mindestens 3 Zeichen haben
{
$err[1]=true; //Fehler merken
$ok=false; //Fehlerflag setzen
$error.='Bitte geben Sie Ihren Nachnamen an. (mindestens 3 Zeichen)<br>'; // Fehlertext
}
if (strlen($vorname)<2) // der Vorname muss mindestens 2 Zeichen haben
{
$err[2]=true; //Fehler merken
$ok=false; //Fehlerflag setzen
$error.='Bitte geben Sie Ihren Vornamen an. (mindestens 3 Zeichen)<br>'; // Fehlertext
}
if ( (!(eregi('^[a-z0-9_\.-]+@[a-z0-9_-]+\.[a-z0-9_\.-]+$',$mail1))) && (strlen($mail1)>0) || $mail1=="")
{
//email-Adresse ist ungültig
$err[3]=true;
$ok=false;
$error.='Bitte kontrollieren Sie die angegebene E-Mail-Adresse.<br>';
}
if ( (!(eregi('^[a-z0-9_\.-]+@[a-z0-9_-]+\.[a-z0-9_\.-]+$',$mail2))) && (strlen($mail2)>0) || $mail2=="")
{
//email-Adresse ist ungültig
$err[4]=true;
$ok=false;
$error.='Bitte kontrollieren Sie die angegebene E-Mail-Adresse.<br>';
}
if (strlen($pass1)<5) // das Passwort muss mindestens 5 Zeichen haben
{
$err[5]=true; //Fehler merken
$ok=false; //Fehlerflag setzen
$error.='Bitte geben Sie ein Passwort an. (mindestens 6 Zeichen)<br>'; // Fehlertext
}
if (strlen($str)<5) // die Straße muss mindestens 5 Zeichen haben
{
$err[6]=true; //Fehler merken
$ok=false; //Fehlerflag setzen
$error.='Bitte geben Sie Ihre Straße an. (mindestens 6 Zeichen)<br>'; // Fehlertext
}
if (strlen($ort)<3) // der Ort muss mindestens 5 Zeichen haben
{
$err[7]=true; //Fehler merken
$ok=false; //Fehlerflag setzen
$error.='Bitte geben Sie einen Ort an. (mindestens 6 Zeichen)<br>'; // Fehlertext
}
if (strlen($plz)<4) // die Postleitzahl in Österreich und in der Schweiz muss 4 Zeichen haben
{
$err[8]=true; //Fehler merken
$ok=false; //Fehlerflag setzen
$error.='Bitte geben Sie eine korrekte Postleitzahl ein.<br>'; // Fehlertext
}
if (strlen($b_land)<2) // das Bundesland muss mindestens 2 Zeichen haben
{
$err[9]=true; //Fehler merken
$ok=false; //Fehlerflag setzen
$error.='Bitte geben Sie das Bundesland an. (mindestens 6 Zeichen)<br>'; // Fehlertext
}
if (strlen($tel)<7) // die Telefonnummer muss mindestens 7 Zeichen haben
{
$err[10]=true; //Fehler merken
$ok=false; //Fehlerflag setzen
$error.='Bitte geben Sie Ihre Telefonnummer (nur Zahlen) mit Vorwahl an.<br>'; // Fehlertext
}
// ist alles ok ? dann senden
if($ok)
{
//Mail komponieren
$empfaenger=$mail1;
$message=nl2br("Name: $name $mail1\nEmail: <a href=\"mailto:$mail1\">$mail1</a>");
$subject="Anmeldung vom ".date("d.m.Y")." um ".date("H:i");
if (@mail($empfaenger, $subject, $message)) {
//Alles ok, Seite neuladen (Reloadsperre)
header("Location:$pagename?success");
//falls kein Header gesendet werden kann, dann mit javascript
echo '<script type="text/javascript">document.location.href="'.$pagename.'?success"</script>';
exit;
} else {
$error='<h3>Fehler beim Mailen aufgetreten</h3>';
}
} else {
// Fehler ausgeben
$error='<h3>Fehler bei der Eingabe</h3><p class="error">'.$error.'</p>';
}
}
?>
dann geht es weiter mit:
PHP-Code:
<?php
if($error!="") echo $error;
if(isset($_GET['success'])) {
//Erfolgsnachricht ausgeben
echo '<p>Vielen Dank für Ihre Nachricht. Sie wurde erfolgreich verschickt.</p><p><a href="formmailer.php">Zurück</a></p>';
} else {
// Form ausgeben
?>
<form action="<?php echo $pagename;?>" method="POST" enctype="multipart/form-data" name="anmeldung" id="anmeldung" name:="anmeldung" >
dann kommt html, was nichts damit zu tun hat
und geht weiter mit dem formular
PHP-Code:
<tr valign="middle">
<td height="30"><span class="Stil48">Firma</span></td>
<td height="30" colspan="4"><input name="firma" type="text" id="firma3" ></td>
</tr>
<tr valign="middle">
<td height="30"><span class="Stil48">Name</span></td>
<td height="30" colspan="4"><input name="name" type="text" id="name3" value="<?php echo $name;?>" <?php if(isset($err[1])) echo 'class="fehler"';?>>></td>
</tr>
<tr valign="middle">
<td height="30"><span class="Stil48">Vorname</span></td>
<td height="30" colspan="4"><input name="vorname" type="text" id="vorname3" value="<?php echo $vorname;?>" <?php if(isset($err[2])) echo 'class="fehler"';?>>></td>
</tr>
<tr valign="middle">
<td height="30"><span class="Stil48">e-Mailadresse</span></td>
<td height="30" colspan="4"><input name="mail1" type="text" id="mail13" value="<?php echo $mail1;?>" <?php if(isset($err[3])) echo 'class="fehler"';?>>></td>
</tr>
<tr valign="middle">
<td height="30"><span class="Stil48">e-Mailadresse wiederholen</span></td>
<td height="30" colspan="4"><input name="mail2" type="text" id="mail23" ></td>
</tr>
<tr valign="middle">
<td height="30"><span class="Stil48">Passwort </span></td>
<td height="30" colspan="4"><input name="pass1" type="password" id="pass13" value="<?php echo $pass1;?>" <?php if(isset($err[5])) echo 'class="fehler"';?>>></td>
</tr>
<tr valign="middle">
<td height="30"><span class="Stil48">Passwort wiederholen </span></td>
<td height="30" colspan="4"><input name="pass2" type="password" id="pass23" ></td>
</tr>
<tr valign="middle">
<td height="30"><span class="Stil48">Strasse und Hausnummer </span></td>
<td height="30" colspan="4">
<input name="str" type="text" id="str3" value="<?php echo $str;?>" <?php if(isset($err[6])) echo 'class="fehler"';?>>>
</td>
</tr>
<tr valign="middle">
<td height="30"><span class="Stil48">PLZ</span></td>
<td height="30" colspan="4">
<input name="plz" type="text" id="plz3" size="6" value="<?php echo $plz;?>" <?php if(isset($err[8])) echo 'class="fehler"';?>>>
</td>
</tr>
<tr valign="middle">
<td height="30"><span class="Stil48">Ort</span></td>
<td height="30" colspan="4">
<input name="ort" type="text" id="ort3" value="<?php echo $ort;?>" <?php if(isset($err[7])) echo 'class="fehler"';?>>>
</td>
</tr>
<tr valign="middle">
<td height="30"><span class="Stil48">Bundesland*</span></td>
<td height="30" colspan="4">
<input name="b_land" type="text" id="b_land3" value="<?php echo $b_land;?>" <?php if(isset($err[9])) echo 'class="fehler"';?>>>
</td>
</tr>
<tr valign="middle">
<td height="30"><span class="Stil48">Telefon*</span></td>
<td height="30" colspan="4">
<input name="tel" type="text" id="tel3" value="<?php echo $tel;?>" <?php if(isset($err[10])) echo 'class="fehler"';?>>>
</td>
</tr>
wieder html was nichts damit zu hat
<input name=domail type=submit class="LogIn_Button" id="domail" value=eintragen hinzufügen>
und endet praktisch damit aus dem formmailer:
PHP-Code:
<?php
}
function DebugAttack($s) {
//Hier den Pfad für die Protokolldatei einfügen, wenn kein Protokoll erwünscht ist, einfach auskommentieren
$fp=fopen("attack.txt","ab");
fwrite($fp,$s);
fclose($fp);
}
?>
Danke Dir schon einmal für´s durchgucken :-)