嗨,我想知道是否有人可以请帮助,我想在我的网站主页的标题标签中包含这段代码,让我了解谁在使用我的网站以及使用频率等。
我想收集用户的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
由于某种原因,它不工作,没有值被插入到表中,谁能解释我在哪里出错,谢谢。
错误报告
在你的php文件的顶部添加:
error_reporting(E_ALL);
mysql_error();
再次运行脚本,看看是否出现错误。
字段类型
如果user_ip
是INT
,则去掉('$ip')
的单引号:
$sql = "INSERT INTO ptb_sessions(user_ip) VALUES($ip)";
有引号意味着您试图将ip
存储为字符串,但实际上数据库期望一个整数。
注意
不推荐使用mysql
,如果您使用PHP: PDO,则不会遇到此类问题。