我想知道是否有人可以请求帮助,我想在我的网站主页的标题标签中包含这段代码,以便让我了解谁在使用我的网站以及频率等等。
我想收集用户的IP地址并将其存储在数据库中。我试图使用以下php和mysql代码执行此操作:
<?php
//Test if it is a shared client
if (!empty($_SERVER['HTTP_CLIENT_IP'])){
$ip=$_SERVER['HTTP_CLIENT_IP'];
//Is it a proxy address
}elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$ip=$_SERVER['REMOTE_ADDR'];
}
//The value of $ip at this point would look something like: "192.0.34.166"
$ip = ip2long($ip);
//The $ip would now look something like: 1073732954
$sql = "INSERT INTO ptb_sessions(user_ip) VALUES('$ip')";
$dbQuery = mysql_query($sql,$dbLink);
?>
下面是我的桌子的样子:
ptb_sessions
session_id | user_id | user_ip | session_start | session_destroyed
由于某种原因,它不起作用,没有值插入表中,任何人都可以解释我哪里出错了谢谢。
答案 0 :(得分:0)
报告错误
在你的php文件的顶部添加:
error_reporting(E_ALL);
mysql_error();
再次运行您的脚本,看看是否出现任何错误。
字段类型
如果user_ip
是INT
,请从('$ip')
中移除单引号:
$sql = "INSERT INTO ptb_sessions(user_ip) VALUES($ip)";
有引号意味着您试图将ip
存储为字符串,但实际上数据库需要一个整数。
注意强>
不推荐使用mysql
,如果您使用的是PHP: PDO,则不会介入此类问题。