為什麼我的每個註冊用戶的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);
?>
寻觅 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 型,然後,就沒有然後了,應該就是這點問題