【问题标题】:Message input field validation消息输入字段验证
【发布时间】:2019-09-06 22:03:32
【问题描述】:

对这个 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 标签。

感谢您的帮助

【问题讨论】:

  • 你想要&lt;h1&gt;Hello&lt;/h1&gt;hello 一样不带html 标记吗?
  • @dean 当我使用任何 html 标签时,它会显示在电子邮件中
  • @dean 基本上我不希望任何人使用它作为 XSS 攻击的手段,所以我想从评论部分删除所有代码

标签: php html


【解决方案1】:

你可以使用 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

【讨论】:

    猜你喜欢
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    相关资源
    最近更新 更多