在 PHP 的“添加用户”页中创建验证


create validation in add user page for php

我创建了一个页面来添加用户,我用户"插入"作为我的SQL代码,我想进行验证以添加用户,我的意思是,如果在添加用户时窗帘列为空,它会显示错误。 这是我的代码

网页管理员用户.html

<body>
<div>
<!--head-->
<div class= "kepala">
<a href="#"><span class="foundicon-smiley"></span></a>ADMIN
</div>
<div class= "content">

<div class="menu">
<div class="menu_box_list">
                <ul>
                    <li><a action="php/display_user.php" href="adminMuser.php"><span class="foundicon1-person"></span> Manage user <i class="manageuser">  </i><div class="clear"></div></a></li>
                    <li><a href="adminVehicle.php"><span> </span> vehicle manager <i class="vehicle manager"> </i><div class="clear"></div> </a></li>
                    <li><a href="report1.php"><span class= "foundicon-page"></span>  report <i class="Report"> </i><div class="clear"></div> </a></li>
                    <li><a href="php/destroySession.php"><span class= "foundicon-settings"></span> log out<i class="settings"> </i><div class="clear"></div> </a></li>
                </ul>
                <div class="clear"></div>
            </div>


</div>

</div>
<div class="1st_menu">
<form id="form1" name="form1" method="POST" action="php/saveuser2.php">
<div class="table5">
 <font style="font-weight:bold">REGISTER USER</font>
 <ul>
        <p>
        Nama: <input type="text" name="name" />*
        <?php echo $name;?>
        </p>
        <p>
       Matric No: <input type="text" name="matric" />*
       <?php echo $matricErr;?>
        </p>
        <p>
        Password: <input type="text" name="pass" />*
        <?php echo $passErr;?>
        </p>
        <p>
        User Category: <select name="cat" id="user_category">
          <option>Staff</option>
          <option>Student</option>
          </select>*
          <?php echo $catErr;?>
        </p>
        <div class="buttn1">
        <p>
        <input name="add" type="submit" onClick="Adduser()" value="Add" />
        </p>
        </div>
    </ul>
</div>
</form>
</div>
<div class= "Bfooter">
<h4></h4>

</div>

</div>


</body>

这是我的PHP文件

<?php
$con = mysql_connect("localhost","root","1234");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("vronline", $con);
 $nameErr = $matricErr = $passErr = $catErr = "";
 $name = $matric = $pass = $cat = "";

$sql="INSERT INTO user_information(user_id, user_password, name, user_category)
VALUES
('$_POST[user_id]','$_POST[user_password]','$_POST[name]','$_POST[user_category]')";

if ($sql["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["user_id"])) {
     $matricErr = "Please insert matric no!";
   } else {
     $matric = $_POST[user_id];
   }
   if (empty($_POST["user_password"])) {
     $passErr = "Please insert password!";
   }else {
     $pass = $_POST[user_password];
   }
   if (empty($_POST["name"])) {
     $name = "Please insert name!";
   }else {
     $name = $_POST[name];
   }
   if (empty($_POST["user_category"])) {
     $catErr = "Please choose category";
   } else{
       $cat = $_POST[user_category];
       }

}
 if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
header("location:../adminMuser.php");

mysql_close($con)
?>
</body>
</html>

无法显示错误,我弄错了哪一部分?

这是一种使用PHP进行验证的方法

session_start();
$is_valid = false;
$error = array();
if (empty($_POST["user_id"]) || !isset($_POST["user_id"])) {
    $error[] = "Please insert matric no!";
}
if (empty($_POST["user_password"]) || !isset($_POST["user_password"])) {
    $error[] = "Please insert password!";
}
if (empty($_POST["name"]) || !isset($_POST["name"])) {
    $error[] = "Please insert name";
}
if (empty($_POST["user_category"]) || !isset($_POST["user_category"])) {
    $error[] = "Please choose category";
}
$is_valid = (count($error) == 0);
if($is_valid){
    $con = mysql_connect("localhost","root","1234", "vronline");
    if (!$con){
        die('Could not connect: ' . mysql_error());
    }
    $sql=sprintf("INSERT INTO user_information(user_id, user_password, name, user_category)
                  VALUES('%s','%s','%s','%s')", 
                  $_POST['user_id'],$_POST['user_password'],$_POST['name'],$_POST['user_category']);
    mysql_query($sql,$con) or die('Error: ' . mysql_error();
    mysql_close($con)
    header("location:../adminMuser.php");
}else{
    $_SESSION['errors'] = $error;
    //you can redirect back to the form to here
}

然后在表单上,您应该检查会话是否已设置,并打印错误(如果有(:

session_start();
$errors = $_SESSION['errors'];
foreach($errors as $error){
    echo "<p> Error = ".$error."</p>";
}


请注意:

虽然需要使用 PHP 进行验证,但您也应该在客户端进行验证。

良好做法希望您使用 javascriptjquery 进行验证。

当请求无效/不完整时,向服务器发送请求是一种浪费。

如今,使用HTML5验证属性变得更加容易。

例如:

<input type="text" name="username" required>