保存信息时。我工作得很好。没有错误,数据库已保存。但当我在数据库中输入一些已经存在的东西时,比如名字(检查唯一性是否有效)。它给出了以下通知,并回复消息-"用户名已被占用。"。我做了很多更改,但没有结果,感谢adcance
<?php
require_once('includes/database.php');
require_once('includes/user.php');
require_once('includes/functions.php');
require_once('includes/session.php');
?>
<?php
if(isset($_POST['submit'])){ //Form submitted
$username = $database->escape_value($_POST['vnumber']);
$firstname = $database->escape_value($_POST['fname']);
$lastname = $database->escape_value($_POST['lname']);
$email = $database->escape_value($_POST['email']);
$password = $database->escape_value($_POST['password']);
$password = md5($password);
//检查字段不是空
if (empty($username)){
echo "Please fill in username";
} else if (empty($firstname)){
echo "Cannot be blank";
} else if(empty($lastname)){
echo "Cannot be blank";
} else if(empty($email)){
echo "Cannot be blank";
} else if (empty($password)){
echo "Cannot be blank";
} else {
//检查用户名的唯一性
$query = mysql_query("SELECT * FROM user_info WHERE fname='$firstname'");
$rows = mysql_num_rows($query);
if ($rows == 1){
echo "Username taken !";
} else {
//如果行=0。字段不为空。可以保存数据。
$result ="";
global $database;
$sql = "INSERT INTO user_info (vnumber, fname, lname, email, password) VALUES
('$username', '$firstname', '$lastname', '$email', '$password')";
$result = $database->query($sql);
}
if($result){
die( "Regisgtration success !");
} else {
die("Something went wrong !");
}
}
}
?>
$result以前没有定义(上面的if语句不包括在内),这就是您收到此通知的原因。
在脚本的顶部,初始化
$result = FALSE;
一切都很好。
$result
未设置,因为肯定是$rows == 1
。因此,它在if ($result)
失败,因为您之前没有创建$result
变量,也没有在if
块中设置它。
互联网上有很多指南来学习如何处理PhP错误,它们来自哪里,如何解决它们,等等。。。看看吧,这不会是你最后一次发生这种事了!