获取用户IP页面加载和存储在数据库中


get users ip on page load and store in database?

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

我想收集用户的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_ipINT,则去掉('$ip')的单引号:

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

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

注意

不推荐使用mysql,如果您使用PHP: PDO,则不会遇到此类问题。