为什么我的每一个注册用户的ip地址都显示是0.0.0.0,可以确定代码是没错的
<?php
if(trim($_POST['password'])!=trim($_POST['firmPassword'])){
exit("两次输入的密码不一致");
}
$userName=trim($_POST['userName']);
$password=md5(trim($_POST['password']));
$time=time();
$ip=ip2long($_SERVER['REMOTE_ADDR']);
echo $ip;
$conn=mysqli_connect("localhost","root","");
if(mysqli_errno($conn)){
echo mysqli_error($conn);
exit;
}
mysqli_set_charset($conn, 'utf8');
mysqli_select_db($conn,'zhuce_php');
$sql = "insert into user(`userName`,`password`,`createtime`,`createip`) values ('"
. $userName . "','" . $password . "','" . $time . "','" . $ip . "')";
$result=mysqli_query($conn,$sql);
echo '当前用户插入的ID为:'.$conn->insert_id;
if($result){
echo "成功<br/>";
}else{
echo"失败";
}
mysqli_close($conn);
?>
如果你是Mac电脑,那么本地主机IP就是0.0.0.0
你先确认一下$_SERVER['REMOTE_ADDR']在你的机器上运行,会输出什么,是127.0.0.1,还是::1,
然后,ip2long使用ip转化为长整型(10位),32位ip(ipV4)转化为整数,转化之后却是一个负数,所以需要用sprintf("%u",$ip)转化为unsigned int 类型,然后,就没有然后了,应该就是这点问题