請問,為什麼我的每個註冊用戶的ip位址都顯示是0.0.0.0
Fllllll
Fllllll 2017-11-07 16:21:29
0
3
1574

為什麼我的每個註冊用戶的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);


?>


#
Fllllll
Fllllll

全部回覆(2)
Peter_Zhu

如果你是Mac電腦,那麼本地主機IP就是0.0.0.0

#
寻觅 beyond

你先確認一下$_SERVER['REMOTE_ADDR']在你的機器上運行,會輸出什麼,是127.0.0.1,還是::1,

然後,ip2long使用ip轉換為長整型(10位元),32位元ip(ipV4)轉換成整數,轉換之後卻是負數,所以需要用sprintf("%u",$ip)轉換成unsigned int 型,然後,就沒有然後了,應該就是這點問題

  • 回覆 $_SERVER['REMOTE_ADDR']輸出的是::1 你說的後面那些就不懂了
    Fllllll 作者 2017-11-09 14:35:27
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!