1

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

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

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

4

1 回答 1

0

错误报告

在您的 php 文件顶部添加以下内容:

error_reporting(E_ALL);
mysql_error();

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

字段类型

如果user_ipINT,则从 中删除单引号('$ip')

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

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

笔记

Using已被弃用,如果您使用PHP: PDO代替mysql,您将不会遇到此类问题。

于 2013-04-17T00:46:51.520 回答