首页 > 解决方案 > 消息输入字段验证

问题描述

这个 PHP 验证真的很新

所以我正在尝试提交一个联系表单,我能够验证除 message(Textarea) 输入字段之外的所有其他字段。我一直在尝试输入该字段,因为<h1>Hello</h1>HTML 标签能够通过,并且在电子邮件中,消息部分以 h1 格式显示/显示。

输入字段

[1] https://imgur.com/QEJlPvw

已发送的电子邮件

[2] https://imgur.com/ypN4rVu

是因为我使用 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 标签。

感谢您的帮助

标签: phphtml

解决方案


您可以使用 strip_tags() 函数:

strip_tags ( string $str [, string $allowable_tags ] ) : string

例子:

$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);

上面的示例将输出:

Test paragraph. Other text

推荐阅读