HTML表单在文本区域框中的引号之前呈现斜杠

时间:2013-08-21 20:30:39

标签: php html

有谁知道我的代码有什么问题?当用户在文本区域框中输入文本时,引号会在它们之前使用反斜杠呈现,单引号的行为方式相同。我尝试了几种代码组合但没有任何效果。有人可以帮帮我吗?感谢。

这是我的代码:------->

/* 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);

3 个答案:

答案 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));