Php 后服务器端表单验证

Php 后服务器端表单验证,php,Php,在下面的php脚本中,有一些问题告诉我在哪里出错。它通过post从HTML表单获取数据。然后,在将它们插入数据库之前,我会尝试一些验证。有人发现什么吗 <?php if( isset( $_POST['submit_form'] ) ) { validate_data($data) { $data = trim($data); $data = stripslashes($data); $data = strip_tags($data); $data = htmlspeci

在下面的php脚本中,有一些问题告诉我在哪里出错。它通过post从HTML表单获取数据。然后,在将它们插入数据库之前,我会尝试一些验证。有人发现什么吗

<?php
if( isset( $_POST['submit_form'] ) )
{

validate_data($data)
{
  $data = trim($data);
  $data = stripslashes($data);
  $data = strip_tags($data);
  $data = htmlspecialchars($data);
  $data = mysqli_real_escape_string($data);
 return $data;
}
 $address = validate_data($_POST['name']);
  $address = validate_data($_POST['address']);
  $zipcode = validate_data($_POST['zipcode']);
  $county = validate_data($_POST['county']);
  $phone = validate_data($_POST['phone']);
  $email = validate_data($_POST['email']);
  $password = validate_data($_POST['password']);
  $pwVerified = validate_data($_POST['pwVerified']);

 //create connection

 // Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "INSERT INTO company (name, address, zipcode, county, phone, email, password, pwVerified )
VALUES 
                ( '$name', '$address', '$zipcode','$county','$phone', '$email', '$password', '$pwVerified')";

if ($conn->query($sql) === TRUE) {

   // echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();

}else 
 { echo "there is a problem";}
include 'sign.php';

?>

应该是函数验证数据($data)。评论1和2。多谢各位

<?php
if( isset( $_POST['submit_form'] ) )
{

function validate_data($data)
{
  $data = trim($data);
  $data = stripslashes($data);
  $data = strip_tags($data);
  $data = htmlspecialchars($data);
  $data = mysqli_real_escape_string($conn, $data);
 return $data; //the rest

是的,这个
$data=mysqli\u real\u escape\u字符串($data)
并且不知道POST数组是否包含值。该函数需要传递一个db连接<代码>$data=mysqli\u real\u escape\u字符串($conn,$data)
(一方面)。
验证数据($data)
应该是一个函数:
函数验证数据($data)
您得到的错误是什么?请参阅前两条注释。另外,如果我是你,我根本不会用这个。使用一个准备好的语句并去掉所有这些。虽然您可以在一个函数中定义函数,但至少在这种情况下,不这样做更符合逻辑。并且它需要前面的
函数
关键字以及
$data=mysqli\u real\u escape\u字符串($data)那是行不通的,相信我说的话。@Fred ii-为什么不行?@Progrock我真的要告诉你吗?如果我知道,你就不知道它是怎么工作的。很有趣,因为它对我有用。或者应该怎样?好心?@BobMwenda我觉得这很难相信。