在页面上加载用户ip并存储在数据库中?

时间:2013-04-17 00:31:27

标签: php ip

我想知道是否有人可以请求帮助,我想在我的网站主页的标题标签中包含这段代码,以便让我了解谁在使用我的网站以及频率等等。

我想收集用户的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

由于某种原因,它不起作用,没有值插入表中,任何人都可以解释我哪里出错了谢谢。

1 个答案:

答案 0 :(得分:0)

报告错误

在你的php文件的顶部添加:

error_reporting(E_ALL);
mysql_error();

再次运行您的脚本,看看是否出现任何错误。

字段类型

如果user_ipINT,请从('$ip')中移除单引号:

$sql = "INSERT INTO ptb_sessions(user_ip) VALUES($ip)";

有引号意味着您试图将ip存储为字符串,但实际上数据库需要一个整数。

注意

不推荐使用mysql,如果您使用的是PHP: PDO,则不会介入此类问题。