MySQL 中的 newsletter_ip 字段设置为 UNSIGNED INT (10)。我也尝试过 INET_ATON 来格式化数据,但我的结果总是这样。
这是我的处理代码的一部分:
//Retrieve data from user and create variables
$ip_orig = $_SERVER['REMOTE_ADDR'];
$ip = ip2long($ip_orig);
//Place into database
$sql = "INSERT INTO newsletter(newsletter_email, newsletter_ip, newsletter_date, newsletter_time) VALUES('".$email."', '".$ip."', '".$date."', '".$time."')";
在 ip2long 格式化之前,我也尝试过这个片段,但无济于事:
if (!empty($_SERVER['HTTP_CLIENT_IP'])){
$ip=$_SERVER['HTTP_CLIENT_IP'];
}elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$ip=$_SERVER['REMOTE_ADDR'];
}
任何帮助将不胜感激,谢谢!