-5

当我保存信息时。我工作正常。没有错误并且数据库被保存。但是当我在数据库中输入一些已经存在的东西时,比如名字(检查唯一性是否有效)。它给出以下通知并回显消息 - “用户名已被占用”。. 我做了很多改变,但没有结果,谢谢

<?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 {

//如果 rows = 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 !");
}
}

}
?>
4

2 回答 2

0

$result 之前没有定义(上面的 if 语句不计算在内),这就是您收到此通知的原因。

在你的脚本之上,初始化

$result = FALSE;

一切都很好。

于 2013-09-02T11:47:26.903 回答
0

$result未设置,因为$rows == 1可以肯定。因此它失败了,if ($result)因为您之前没有创建$result变量,也没有在if块中设置它。

互联网上有很多指南可以学习如何处理 PhP 错误、它们从何而来、如何解决它们等等……看看吧,这不会是你最后一次遇到这种情况了!

于 2013-09-02T11:47:40.597 回答