我创建了一个页面来添加用户,我用户"插入"作为我的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 进行验证,但您也应该在客户端进行验证。
良好做法希望您使用 javascript
或 jquery
进行验证。
当请求无效/不完整时,向服务器发送请求是一种浪费。
如今,使用HTML5
验证属性变得更加容易。
例如:
<input type="text" name="username" required>