当username字段为空时,在else条件中不返回空errro;如果条件正常,则在数据库中插入数据,但当我尝试返回错误时,页面变为空白
<?php include "db.php"?>
<?php
if (isset($_POST['submit'])){
global $conn;
$error=array();
$username=$_POST['username'];
if($username==""){
$error="username is empty";
}
if(empty($error)){
$sql="INSERT INTO users (username,password,category)VALUES('$username','$password','$category')";
$res=mysqli_query($conn,$sql);
if($res){
echo "done";
}else{
echo "try again";
}
}else{
return $error;
}
}
?>
<html>
<body>
<fieldset style="width:30%;">
<form action="" method="post" enctype="multipart/form-data">
<label>Username</label>
<input type="text" name="username" placeholder="username" id="username" ><br>
<input type="submit" name="submit" id="submit" value="submit">
</form>
</fieldset>
</body>
</html>
2条答案
按热度按时间goucqfw61#
我在执行过程中发现了很多错误,请检查下面的代码。
1) 应该是的
empty($username)
而不是$username == ''
基本上这不重要,这将是工作的任何一种方法2) 你有
return $error;
这意味着它只会返回print nothing,所以您需要使用print_r($error)
没有要返回的函数,因此您可以简单地将错误打印在窗体顶部。3) 使用参数化查询,而不是传递变量进行查询。
如果仍然不工作,请取消注解,这两行后面的php标记,并检查错误
我为error添加了一个建议,您可以在下面的字段后面显示错误
请检查是否有问题
<span>
刚刚添加的标签input
和样式错误类,如你想要的颜色边框等。e37o9pze2#
尝试使用此脚本。
您不需要两次使用else语句,只要检查错误是否为空就可以运行。快乐编码:-)