登陆

请问,为什么我的每一个注册用户的ip地址都显示是0.0.0.0

为什么我的每一个注册用户的ip地址都显示是0.0.0.0,可以确定代码是没错的1.png

<?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);


?>


# PHP
FllllllFllllll1447 天前751 次浏览

全部回复(3)我要回复

  • 天蓬老师

    天蓬老师2017-11-11 22:40:30

    如果你是Mac电脑,那么本地主机IP就是0.0.0.0

    回复
    0
  • 寻觅 beyond

    寻觅 beyond2017-11-09 13:24:33

    你先确认一下$_SERVER['REMOTE_ADDR']在你的机器上运行,会输出什么,是127.0.0.1,还是::1,

    然后,ip2long使用ip转化为长整型(10位),32位ip(ipV4)转化为整数,转化之后却是一个负数,所以需要用sprintf("%u",$ip)转化为unsigned int 类型,然后,就没有然后了,应该就是这点问题

    回复
    0
  • Fllllll

    $_SERVER['REMOTE_ADDR']输出的是::1 你说的后面那些就不懂了

    Fllllll · 2017-11-09 14:35:27
  • 取消回复发送