php - undefined variable

标签 php mysql ip

所以我在我的登录页面上遇到了这个问题,它无法找到我设置的变量,但我已经确定它在数据库中。我已经将它与数据库进行了比较,它似乎都匹配,所以我不确定为什么我会收到此错误。请在下面找到详细信息。感谢您的帮助:)

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));

日志数据库: Its the logs table on phpmyadmin

如果这是一个愚蠢的问题并且真的很容易解决,我深表歉意,但我花了最后几个小时查看并尝试它但仍然没有解决。

最佳答案

你错过了你的 $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/

相关文章:

windows - 如何在 Windows 中模拟慢速网络连接

php - 发送 POST 到 php 服务器不工作

mysql - 复杂的 sum() 与组和按日期排序

java - 我可以在不连接端口的情况下检查IP端口是否打开吗?

php - 计算每个用户对最新日期的点赞数

mysql - 更新的存储过程不起作用

java - java中如何从请求中获取ip?

javascript - val ('' ) 删除动态表中的所有值

php - Laravel collectivehtml 安全路由或 url

php 301 redirects 实际上做的是 302 redirect