所以我在我的登录页面上遇到了这个问题,它无法找到我设置的变量,但我已经确定它在数据库中。我已经将它与数据库进行了比较,它似乎都匹配,所以我不确定为什么我会收到此错误。请在下面找到详细信息。感谢您的帮助:)
Error : Notice: Undefined variable: ID in /home/scylla97/public_html/login.php on line 89
代码:
$SQLCheckLogin = $odb -> prepare("SELECT COUNT(*) FROM `users` WHERE `username` = :username AND `password` = :password");
$SQLCheckLogin -> execute(array(':username' => $username, ':password' => SHA1($password)));
$countLogin = $SQLCheckLogin -> fetchColumn(0);
if ($countLogin == 1)
{
$SQLGetInfo = $odb -> prepare("SELECT `access`, `username`, `ID`, `rank` FROM `users` WHERE `username` = :username AND `password` = :password");
$SQLGetInfo -> execute(array(':username' => $username, ':password' => SHA1($password)));
$userInfo = $SQLGetInfo -> fetch(PDO::FETCH_ASSOC);
if ($userInfo['access'] == 0)
{
$_SESSION['username'] = $userInfo['username'];
$_SESSION['ID'] = $userInfo['ID'];
{
$ip = getRealIpAddr();
if (filter_var($ip, FILTER_VALIDATE_IP))
{
$SQL = $odb -> prepare('INSERT INTO `logs` VALUES(:id ,:username, :loggedip, UNIX_TIMESTAMP())');
$SQL -> execute(array(':loggedip' => $ip, ':username' => $username, ':id' => $id));
echo '<div class="nNote nSuccess hideit"><p><font color=\'white\'><strong>SUCCESS: </strong>Login Successful. Redirecting....</font></p></div><meta http-equiv="refresh" content="3;url=index.php">';
die();
第 89 行是:
$SQL -> execute(array(':loggedip' => $ip, ':username' => $username, ':id' => $id));
如果这是一个愚蠢的问题并且真的很容易解决,我深表歉意,但我花了最后几个小时查看并尝试它但仍然没有解决。
最佳答案
你错过了你的 $id 值并希望你的 $username
已经得到所以首先使用 $id 赋值
$id = $userInfo['ID'];
所以添加这一行
$_SESSION['username'] = $userInfo['username'];
$_SESSION['ID'] = $userInfo['ID'];
$id = $userInfo['ID'];
所以你的查询
$SQL -> execute(array(':loggedip' => $ip, ':username' => $username, ':id' => $id));
或更新您的查询
$SQL -> execute(array(':loggedip' => $ip, ':username' => $username, ':id' => $_SESSION['ID']));
希望对你有帮助
关于php - undefined variable ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44046229/