当用户通过MySql表和PHP登录时,我试图创建一个日志,但我的表中没有显示任何内容。我代码中的其他内容都正常工作。具体来说,我试图存储访问器的日期、时间、IP、访问器的机器名称和用户名
我在用
$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);要获取信息,创建查询并记录信息。
当检查登录是否成功时,整个过程的代码实际上依赖于这里。
//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();
}
}
}我知道它可以成功地验证凭据,但我似乎无法让日志工作起来。
发布于 2013-10-22 04:29:29
我将用这个来完成希文·猛禽的回答:
$query = "INSERT INTO IP_LOG (DateTime, MachineName, IPAddress, Username) VALUES ($date,$host,$ip,$username)";和
$result=mysql_query($qry);变量没有相同的名称($query和$qry)。你犯了两次错误。
发布于 2013-10-22 04:17:40
在查询中,您没有引用字符串。它应该是:
INSERT INTO IP_LOG (DateTime, MachineName, IPAddress, Username) VALUES ('$date','$host','$ip','$username')另外,停止使用不推荐的mysql_*函数。使用MySQLi或PDO代替。
此外,您应该使用转义字符串函数转义输入字符串。
https://stackoverflow.com/questions/19508852
复制相似问题