有谁知道我的代码有什么问题?当用户在文本区域框中输入文本时,引号会在它们之前使用反斜杠呈现,单引号的行为方式相同。我尝试了几种代码组合但没有任何效果。有人可以帮帮我吗?感谢。
这是我的代码:------->
/* Email Variables */
$emailSubject = 'You have received an inquiry from your website';
$webMaster = 'info@3elementsreview.com';
/* Data Variables */
$first = $_POST['First'];
$last = $_POST['Last'];
$email = $_POST['E-Mail'];
$message = $_POST['Message'];
$body = <<<EOD
<span style="color:#454545; font-weight:bold; font-size:1.6em;">$first</span><br>
<span style="color:#454545; font-weight:bold; font-size:1.6em;">$last</span><br>
<span style="color:#454545; font-weight:bold; font-size:1.6em;">$email</span><br>
<br>
<span style="color:#252525; font-size:1.4em;">$message</span><br>
EOD;
$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";
$success = mail($webMaster, $emailSubject, $body,
$headers);
答案 0 :(得分:1)
在magic_quotes_gpc
中停用php.ini
或在使用之前致电strip_slashes()
。
此外,您也很快会吸引垃圾邮件发送者,因为您的脚本可以轻松用于群发邮件,因为它是可以攻击的,所以任何人都可以注入自己的标题(包括CC:或BCC:到您的邮件)。请参阅头文注入的这篇(快速搜索)文章:http://www.dreamincode.net/forums/topic/228389-preventing-php-mail-header-injections/
答案 1 :(得分:1)
使用PHP的stripslashes()函数尝试以下内容:
返回剥离了反斜杠的字符串。 (\'
变为'
,依此类推。)
双反斜杠(\\
)被制成一个反斜杠(\
)。
$first = Trim(stripslashes($_POST['First']));
$last = Trim(stripslashes($_POST['Last']));
$email = Trim(stripslashes($_POST['E-Mail']));
$message = Trim(stripslashes($_POST['Message']));
答案 2 :(得分:0)
尝试使用此
var_dump(preg_replace("@[/\\\]@", "", $variable));