【发布时间】:2019-09-06 22:03:32
【问题描述】:
对这个 PHP 验证真的很陌生
所以我正在尝试提交联系表单,我能够验证除 message(Textarea) 输入字段之外的所有其他字段。我一直在尝试以<h1>Hello</h1> 的形式输入到该字段中,并且 HTML 标记能够通过,并且在电子邮件中,消息部分以 h1 格式显示/显示。
输入字段
已发送的电子邮件
是因为我使用 HTML 标记将信息从使用字段发送到电子邮件吗?
我已经尝试使用删除特殊字符的 PHP 函数。
if (trim($_POST["message"]) == "") {
$message_error = "Your message should not be empty";
} else {
$message = test_input($_POST["message"]);
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
if ($name_error == '' and $email_error == '' and $phone_error == '' and $message_error ==''){
$message_body = '';
unset($_POST['submit']);
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$to = ' ';
$subject = "Contact";
$body = '<html>
<body>
<h1>Message from Contact Us</h1>
<hr>
<p>Name:<br>'.$name.'</p>
<p>Email:<br>'.$email.'</p>
<p>Phone Number:<br>'.$phone.'</p>
<p>Message:<br>'.$message.'</p>
</body>
</html>';
//header
$headers = "Content-type: text/html; charset-utf8";
$to = '';
$subject = 'Contact Form Submit';
if (mail($to, $subject, $body, $headers)){
$success = "Message sent, Thank you for contacting us!";
$name = $email = $phone = $message = '';
}
}
}
我希望 textarea(消息)在发送之前剥离/删除 HTML 标签。
感谢您的帮助
【问题讨论】:
-
你想要
<h1>Hello</h1>和hello一样不带html 标记吗? -
@dean 当我使用任何 html 标签时,它会显示在电子邮件中
-
@dean 基本上我不希望任何人使用它作为 XSS 攻击的手段,所以我想从评论部分删除所有代码