我知道这将被标记为重复,但我已经完成了关于未定义变量的大多数其他问题,但不幸的是我没有任何喜悦。我是PHP的新手,也是一般的网页设计。
我的PHP代码:
Notice: Undefined variable: userID in /var/www/vhosts/rdonaghy08.web.eeecs.qub.ac.uk/httpdocs/cater/updatedProfile.php on line 28
Notice: Undefined variable: emailAddress in /var/www/vhosts/rdonaghy08.web.eeecs.qub.ac.uk/httpdocs/cater/updatedProfile.php on line 28
Notice: Undefined variable: firstName in /var/www/vhosts/rdonaghy08.web.eeecs.qub.ac.uk/httpdocs/cater/updatedProfile.php on line 28
Notice: Undefined variable: lastName in /var/www/vhosts/rdonaghy08.web.eeecs.qub.ac.uk/httpdocs/cater/updatedProfile.php on line 28
Notice: Undefined variable: accesslevel in /var/www/vhosts/rdonaghy08.web.eeecs.qub.ac.uk/httpdocs/cater/updatedProfile.php on line 28
Notice: Undefined variable: password in /var/www/vhosts/rdonaghy08.web.eeecs.qub.ac.uk/httpdocs/cater/updatedProfile.php on line 28
我一直收到这条消息:
{{1}}
我的确切问题是,为什么它们是未定义的,因为我似乎在我的IF语句中用$ _isset($ _ POST)声明定义它们?我没有定义它们吗?
提前感谢您提供的任何帮助或说明!
答案 0 :(得分:3)
您检查变量是否设置为yes,但如果未设置,则不对其执行任何操作 然后在$ update的行中你仍然使用可能未设置的变量。
你可以这样做:
if (isset($_POST['password'])) {
$password = $_POST['password'];
}else{
$error = true;
}
每条线都是一样的。
然后在继续使用其余代码之前检查错误是否为真。
if(!$error){
$update = "UPDATE users SET userID='$userID',
emailAddress='$emailAddress',firstName='$firstName', lastName='$lastName'accessLevel ='$accesslevel',password='$password' WHERE userID = '$getid'";
$return = mysqli_query($conn, $update) or die(mysqli_errno($conn));
}
这样,只有在没有错误时才输入上面的两行。