可能重複:
How can I convert ereg expressions to preg in PHP?
Escape string to use in mail()形式不發送,函數eregi()已過時
我想送我的形式,但我得到這個錯誤...
棄用:函數eregi()已棄用
我試着用preg_match()替換它,但沒有運氣。這裏是我的代碼:
$all_valid = $name_valid = $email_valid = $comments_valid = true;
if (isset($_POST['submit'])) {
if ($_POST['name'] == '') {
$all_valid = $name_valid = false;
}
if ($_POST['comments'] == '') {
$all_valid = $comments_valid = false;
}
if (!$validator->check_email_address($_POST['email'])) {
$all_valid = $email_valid = false;
}
if ($all_valid) {
// #### NO PROBLEMS FOUND - PROCESS THE FORM DATA HERE
$mail_to = '[email protected]'; // recipient address
$subject = "Email from website"; // email message subject line
$name = mysql_real_escape_string(trim($_POST['name'])); // sanitize the name
if (eregi("\r",$name) || eregi("\n",$name)){ // avoid email header injection
die();
}
$mail_from = mysql_real_escape_string(trim($_POST['email'])); // sanitize their email address
if (eregi("\r",$mail_from) || eregi("\n",$mail_from)){ // avoid email header injection
die();
}
$comments = htmlspecialchars(trim($_POST['comments'])); // convert HTML characters into entities
$headers = 'From: '. $mail_from. "\r\n";
mail($mail_to, $subject, $comments, $headers);
$response = '<h2>Thanks for contacting us, will get back to you soon</h2>';
}
}
你爲什麼要使用(strpos( 「\ r」,用strtolower($名))|| strpos( 「\ n」,用strtolower($名)))'mysql_real_escape_string( )'發送郵件的東西? –
我只會使用'urlencode()'或其他東西,這也會照顧換行符。 –