Php 我如何从这个表单中删除任何有害字符?

Php 我如何从这个表单中删除任何有害字符?,php,forms,validation,Php,Forms,Validation,我尝试过real escape string和其他php方法,但我不确定是否正确使用了它们。这段代码显示了我的输入,然后是ajax帖子,我将在哪里以及如何执行这些操作 请注意,没有数据库连接,因此所有字符剥离都必须在jQuery中完成 这会是一个更正确的方向吗 <?php $name = $_POST["name"]; $email = $_POST["email"]; $phone = $_POST["phone"]; $message = $_POST["message"]; $m

我尝试过real escape string和其他php方法,但我不确定是否正确使用了它们。这段代码显示了我的输入,然后是ajax帖子,我将在哪里以及如何执行这些操作

请注意,没有数据库连接,因此所有字符剥离都必须在jQuery中完成

这会是一个更正确的方向吗

<?php
$name = $_POST["name"];
$email = $_POST["email"];
$phone = $_POST["phone"];
$message = $_POST["message"];


$msg = "
Name:$name
Email:$email
Phone:$phone
Comment:
$message";


function checkInput($msg) {
    $msg = @strip_tags($msg);
    $msg = @stripslashes($msg);
    $invalid_characters = array("$", "%", "#", "<", ">", "|");
    $msg = str_replace($invalid_characters, "", $msg);
    return $msg;
}


$to = "email address";
$subject = "name";
$message = $msg;
$headers = "Contact form enquiry";
mail($to,$subject,$message,$headers);
?>
在将文本转换为某种代码或特定数据格式之前,必须立即执行卫生处理

在这里的代码中:

  var dataString = 'name=' + name + '&email=' + email + '&phone=' + phone + '&message=' + message;
在将每个变量放入URL之前,您将对其进行转义。您可以使用encodeURIComponent实现这一点。但是,您使用的是jqueryajax,因此首先不应该手工操作

data: { 'name': name, 'email': email, 'phone': phone, 'message': message},
在生成的HTML中:

   .append("<h2 class='text-center form_submit_text'>Hi " + name + ", we will contact you soon </p>")
应该是:

   var heading = jQuery("<h2>").addClass('text-center').addClass('form_submit_text').text("Hi " + name + ", we will contact you soon);
   $('#thanks').empty().append(heading);

您可能还需要在PHP中执行一些转义操作,例如。

在bin/mail.PHP中进行验证和清理。有关验证和清理传入数据的内置方法,请参阅。例如,对于电子邮件,您可以

if (filter_var($_POST['email']), FILTER_VALIDATE_EMAIL)) {
    $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL));
}

电话号码需要一个正则表达式来验证和清理,因此它只包含号码和/或将其重新格式化为您首选的格式。像$message这样的免费文本应该使用FILTER\u SANITIZE\u字符串。

inside mail.php这不是去数据库,它只是创建一封电子邮件并发送它。问题包括过滤用户输入,数据库插入只是答案的一部分。我也尝试过类似的方法,电子邮件也会通过blank发送抱歉,我误读了你的问题,我将使用filter_var,而不是使用jqeurySo。如果我只是将代码更改为上面的代码,它会破坏我的附加表单吗?