首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >登录登录

登录登录
EN

Stack Overflow用户
提问于 2013-10-22 04:15:37
回答 2查看 66关注 0票数 0

当用户通过MySql表和PHP登录时,我试图创建一个日志,但我的表中没有显示任何内容。我代码中的其他内容都正常工作。具体来说,我试图存储访问器的日期、时间、IP、访问器的机器名称和用户名

我在用

代码语言:javascript
复制
$username = $member['username'];
            $ip = $_SERVER[REMOTE_ADDR];
            $date = date('Y-m-d H:i:s');
            $host = gethostbyaddr($ip);
            $query = "INSERT INTO IP_LOG (DateTime, MachineName, IPAddress, Username) VALUES ($date,$host,$ip,$username)";
            $result=mysql_query($qry);

要获取信息,创建查询并记录信息。

当检查登录是否成功时,整个过程的代码实际上依赖于这里。

代码语言:javascript
复制
//Check whether the query was successful or not
    if($result) {
        if(mysql_num_rows($result) > 0) {
            //Login Successful
            session_regenerate_id();
            $member = mysql_fetch_assoc($result);
            $_SESSION['SESS_MEMBER_ID'] = $member['mem_id'];
            $_SESSION['SESS_FIRST_NAME'] = $member['username'];
            $_SESSION['SESS_LAST_NAME'] = $member['password'];

            $username = $member['username'];
            $ip = $_SERVER[REMOTE_ADDR];
            $date = date('Y-m-d H:i:s');
            $host = gethostbyaddr($ip);
            $query = "INSERT INTO IP_LOG (DateTime, MachineName, IPAddress, Username) VALUES ($date,$host,$ip,$username)";
            $result=mysql_query($qry);

            session_write_close();
            header("location: home.php");
            //TODO: Log all Information

            exit();
        }else {
            //Login failed
            $errmsg_arr[] = 'user name and password not found';
            $errflag = true;
            if($errflag) {
                $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
                session_write_close();
                header("location: index.php");
                exit();
            }
        }
    }

我知道它可以成功地验证凭据,但我似乎无法让日志工作起来。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-22 04:29:29

我将用这个来完成希文·猛禽的回答:

代码语言:javascript
复制
    $query = "INSERT INTO IP_LOG (DateTime, MachineName, IPAddress, Username) VALUES ($date,$host,$ip,$username)";

代码语言:javascript
复制
      $result=mysql_query($qry);

变量没有相同的名称($query和$qry)。你犯了两次错误。

票数 0
EN

Stack Overflow用户

发布于 2013-10-22 04:17:40

在查询中,您没有引用字符串。它应该是:

代码语言:javascript
复制
INSERT INTO IP_LOG (DateTime, MachineName, IPAddress, Username) VALUES ('$date','$host','$ip','$username')

另外,停止使用不推荐的mysql_*函数。使用MySQLi或PDO代替。

此外,您应该使用转义字符串函数转义输入字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19508852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档