Socrates
26.01.2007, 08:01:34
Hallo!
Ich habe mal wieder ein kleines Porblem. Ich überprüfe per php Formularfelder, bevor eine E-Mail abgeschickt wird. Ich überprüfe dabei unter anderem mit einem regex, ob eine gültige E-Mail adresse angegeben ist. Ich erhalte folgende Fehlermeldung:
Warning: preg_match(): Unknown modifier '+' in /home/redway/www/weiterempfehlen.php on line 460
Mein Quelltext sieht so aus:
<?php
if($_REQUEST['Send'] && !empty($_REQUEST['ab']) && !empty($_REQUEST['abma']) && !empty($_REQUEST['em']) && !empty($_REQUEST['be'])&& !empty($_REQUEST['ma'])&& preg_match('[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}', $_REQUEST['abma'])&& preg_match('[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}', $_REQUEST['em']))
{
$timestamp = time();
$time = date("Y-m-d H:i:s",$timestamp);
$abmail = $_REQUEST["abma"];
$absender = $_REQUEST["ab"];
$absender .= "<";
$absender .= $_REQUEST["abma"];
$absender .= ">";
$empfaenger = $_REQUEST["em"];
$reply = 'JUF MAILER<redway@puk.de>';
$betreff = $_REQUEST["be"];
$mail = $_REQUEST["ma"];
$mail .= "</br><table border=\"0\" width=\"300\"><tr><td><hr>";
$mail .= "<font face=\"Arial\" color=\"#000000\" size=\"2\">Besucht das </font><font face=\"Arial\" color=\"#e80000\" size=\"2\"><b>Junge Forum</b></font></br>";
$mail .= "<a href=\"http://www.puk.de/redway\"target=\"_blank\"><font face=\"Arial\" color=\"#000000\" size=\"2\">http://www.puk.de/redway</font></a></td></tr></table>";
$mail = stripslashes($mail);
$mail = nl2br($mail);
$mail = str_replace("\n","",$mail);
$mail = str_replace("\r","",$mail);
$mail = str_replace("\t","",$mail);
$mail = str_replace("\v","",$mail);
$mail = str_replace("\0","",$mail);
$mail = str_replace(" "," ",$mail);
$mail = ereg_replace("ä","ä",$mail);
$mail = ereg_replace("ü","ü",$mail);
$mail = ereg_replace("ö","ö",$mail);
$mail = ereg_replace("Ä","Ä",$mail);
$mail = ereg_replace("Ü","Ü",$mail);
$mail = ereg_replace("Ö","Ö",$mail);
$mail = ereg_replace("ß","ß",$mail);
$header = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$header .= 'From:' . $absender . "\r\n";
$header .= 'Reply-To:' . $reply . "\r\n";
$header .= 'Return-Path: <redway@puk.de>' . "\r\n";
$header .= 'Sender: JUF Mailer<redway@puk.de>' . "\r\n";
$header .= 'Organisation: Junges Forum' . "\r\n";
$header .= 'Date:' . $time . "\r\n";
$header .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$header .= 'X-Sender-IP: ' . $REMOTE_ADDR . "\r\n";
echo "
<font face=\"Arial\" size =\"2\" color=\"#e80000\">
<b>Absender: </b>
</font>
<font face=\"Arial\" size =\"2\" color=\"#000000\">
$absender
</font>
</br>
<font face=\"Arial\" size =\"2\" color=\"#e80000\">
<b>Empfänger E-Mail Adresse: </b>
</font>
<font face=\"Arial\" size =\"2\" color=\"#000000\">
$empfaenger
</font>
</br>
<font face=\"Arial\" size =\"2\" color=\"#e80000\">
<b>Betreff: </b>
</font>
<font face=\"Arial\" size =\"2\" color=\"#000000\">
$betreff
</font>
</br>
<font face=\"Arial\" size =\"2\" color=\"#e80000\">
<b>Nachricht:</b>
</font>
</br>
<font face=\"Arial\" size =\"2\" color=\"#000000\">
$mail
</font>
</br>
</br>
";
mail($empfaenger, $betreff, $mail, $header);
}
else
{
?>
Füllen Sie alle Formularfelder korrekt aus:
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" method="post">
<?php
if($_REQUEST['Send'] && empty($_REQUEST['ab']))
{
echo"<h1>Bitte geben Sie ihren Namen ein!</h1>";
}
if($_REQUEST['Send'] && empty($_REQUEST['abma']))
{
echo"<h1>Bitte geben Sie ihre E-Mail Adresse ein!</h1>";
}
if($_REQUEST['Send']&& !preg_match('[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}', $_REQUEST['abma']))
{
echo"<h1>Bitte geben Sie eine korrekte E-Mail Adresse an!</h1>";
}
if($_REQUEST['Send'] && empty($_REQUEST['em']))
{
echo"<h1>Bitte geben Sie die E-Mail Adresse des Empfängers ein!</h1>";
}
if($_REQUEST['Send']&& !preg_match('[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}', $_REQUEST['em']))
{
echo"<h1>Bitte geben Sie eine korrekte Empfänger Adresse an!</h1>";
}
if($_REQUEST['Send'] && empty($_REQUEST['be']))
{
echo"<h1>Bitte geben Sie einen Betreff ein!</h1>";
}
if($_REQUEST['Send'] && empty($_REQUEST['ma']))
{
echo"<h1>Bitte geben Sie eine Nachricht ein!</h1>";
}
?>
<table border="0">
<tr>
<td><h1>Ihr Name</h1></td>
<td><input type ="text" name="ab" value="<?php echo$_REQUEST['ab']; ?>" size="30"></td>
</tr>
<tr>
<td><h1>Ihre E-Mail Adresse</h1></td>
<td><input type ="text" name="abma" value="<?php echo$_REQUEST['abma']; ?>" size="30"></td>
</tr>
<tr>
<td><h1>Empfänger E-Mail Adresse</h1></td>
<td><input type ="text" name="em" value="<?php echo$_REQUEST['em']; ?>" size="30"></td>
</tr>
<tr>
<td><h1>Betreff</h1></td>
<td><input type ="text" name="be" value="<?php echo$_REQUEST['be']; ?>" size="30"></td>
</tr>
<tr>
<td><h1>Nachricht</h1></td>
<td><textarea name= "ma" cols="27" rows="10" value="<?php echo$_REQUEST['ma']; ?>"></textarea></td>
</tr>
<tr>
<td></td>
<td><input name="Send" type="submit" value="send"><input type="reset" value="reset"></td>
</tr>
</form>
</table>
<?php
}
?>
Ich hoffe ihr könnt mir sagen, was mit meinem Regex falsch gelaufen ist!
MfG, Andy
Ich habe mal wieder ein kleines Porblem. Ich überprüfe per php Formularfelder, bevor eine E-Mail abgeschickt wird. Ich überprüfe dabei unter anderem mit einem regex, ob eine gültige E-Mail adresse angegeben ist. Ich erhalte folgende Fehlermeldung:
Warning: preg_match(): Unknown modifier '+' in /home/redway/www/weiterempfehlen.php on line 460
Mein Quelltext sieht so aus:
<?php
if($_REQUEST['Send'] && !empty($_REQUEST['ab']) && !empty($_REQUEST['abma']) && !empty($_REQUEST['em']) && !empty($_REQUEST['be'])&& !empty($_REQUEST['ma'])&& preg_match('[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}', $_REQUEST['abma'])&& preg_match('[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}', $_REQUEST['em']))
{
$timestamp = time();
$time = date("Y-m-d H:i:s",$timestamp);
$abmail = $_REQUEST["abma"];
$absender = $_REQUEST["ab"];
$absender .= "<";
$absender .= $_REQUEST["abma"];
$absender .= ">";
$empfaenger = $_REQUEST["em"];
$reply = 'JUF MAILER<redway@puk.de>';
$betreff = $_REQUEST["be"];
$mail = $_REQUEST["ma"];
$mail .= "</br><table border=\"0\" width=\"300\"><tr><td><hr>";
$mail .= "<font face=\"Arial\" color=\"#000000\" size=\"2\">Besucht das </font><font face=\"Arial\" color=\"#e80000\" size=\"2\"><b>Junge Forum</b></font></br>";
$mail .= "<a href=\"http://www.puk.de/redway\"target=\"_blank\"><font face=\"Arial\" color=\"#000000\" size=\"2\">http://www.puk.de/redway</font></a></td></tr></table>";
$mail = stripslashes($mail);
$mail = nl2br($mail);
$mail = str_replace("\n","",$mail);
$mail = str_replace("\r","",$mail);
$mail = str_replace("\t","",$mail);
$mail = str_replace("\v","",$mail);
$mail = str_replace("\0","",$mail);
$mail = str_replace(" "," ",$mail);
$mail = ereg_replace("ä","ä",$mail);
$mail = ereg_replace("ü","ü",$mail);
$mail = ereg_replace("ö","ö",$mail);
$mail = ereg_replace("Ä","Ä",$mail);
$mail = ereg_replace("Ü","Ü",$mail);
$mail = ereg_replace("Ö","Ö",$mail);
$mail = ereg_replace("ß","ß",$mail);
$header = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$header .= 'From:' . $absender . "\r\n";
$header .= 'Reply-To:' . $reply . "\r\n";
$header .= 'Return-Path: <redway@puk.de>' . "\r\n";
$header .= 'Sender: JUF Mailer<redway@puk.de>' . "\r\n";
$header .= 'Organisation: Junges Forum' . "\r\n";
$header .= 'Date:' . $time . "\r\n";
$header .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$header .= 'X-Sender-IP: ' . $REMOTE_ADDR . "\r\n";
echo "
<font face=\"Arial\" size =\"2\" color=\"#e80000\">
<b>Absender: </b>
</font>
<font face=\"Arial\" size =\"2\" color=\"#000000\">
$absender
</font>
</br>
<font face=\"Arial\" size =\"2\" color=\"#e80000\">
<b>Empfänger E-Mail Adresse: </b>
</font>
<font face=\"Arial\" size =\"2\" color=\"#000000\">
$empfaenger
</font>
</br>
<font face=\"Arial\" size =\"2\" color=\"#e80000\">
<b>Betreff: </b>
</font>
<font face=\"Arial\" size =\"2\" color=\"#000000\">
$betreff
</font>
</br>
<font face=\"Arial\" size =\"2\" color=\"#e80000\">
<b>Nachricht:</b>
</font>
</br>
<font face=\"Arial\" size =\"2\" color=\"#000000\">
</font>
</br>
</br>
";
mail($empfaenger, $betreff, $mail, $header);
}
else
{
?>
Füllen Sie alle Formularfelder korrekt aus:
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" method="post">
<?php
if($_REQUEST['Send'] && empty($_REQUEST['ab']))
{
echo"<h1>Bitte geben Sie ihren Namen ein!</h1>";
}
if($_REQUEST['Send'] && empty($_REQUEST['abma']))
{
echo"<h1>Bitte geben Sie ihre E-Mail Adresse ein!</h1>";
}
if($_REQUEST['Send']&& !preg_match('[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}', $_REQUEST['abma']))
{
echo"<h1>Bitte geben Sie eine korrekte E-Mail Adresse an!</h1>";
}
if($_REQUEST['Send'] && empty($_REQUEST['em']))
{
echo"<h1>Bitte geben Sie die E-Mail Adresse des Empfängers ein!</h1>";
}
if($_REQUEST['Send']&& !preg_match('[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}', $_REQUEST['em']))
{
echo"<h1>Bitte geben Sie eine korrekte Empfänger Adresse an!</h1>";
}
if($_REQUEST['Send'] && empty($_REQUEST['be']))
{
echo"<h1>Bitte geben Sie einen Betreff ein!</h1>";
}
if($_REQUEST['Send'] && empty($_REQUEST['ma']))
{
echo"<h1>Bitte geben Sie eine Nachricht ein!</h1>";
}
?>
<table border="0">
<tr>
<td><h1>Ihr Name</h1></td>
<td><input type ="text" name="ab" value="<?php echo$_REQUEST['ab']; ?>" size="30"></td>
</tr>
<tr>
<td><h1>Ihre E-Mail Adresse</h1></td>
<td><input type ="text" name="abma" value="<?php echo$_REQUEST['abma']; ?>" size="30"></td>
</tr>
<tr>
<td><h1>Empfänger E-Mail Adresse</h1></td>
<td><input type ="text" name="em" value="<?php echo$_REQUEST['em']; ?>" size="30"></td>
</tr>
<tr>
<td><h1>Betreff</h1></td>
<td><input type ="text" name="be" value="<?php echo$_REQUEST['be']; ?>" size="30"></td>
</tr>
<tr>
<td><h1>Nachricht</h1></td>
<td><textarea name= "ma" cols="27" rows="10" value="<?php echo$_REQUEST['ma']; ?>"></textarea></td>
</tr>
<tr>
<td></td>
<td><input name="Send" type="submit" value="send"><input type="reset" value="reset"></td>
</tr>
</form>
</table>
<?php
}
?>
Ich hoffe ihr könnt mir sagen, was mit meinem Regex falsch gelaufen ist!
MfG, Andy