登録ユーザーのそれぞれの IP アドレスが 0.0.0.0 と表示されるのはなぜですか? コードは正しいと確信しています。
<?php
if( trim( $_POST['password'])!=trim($_POST['firmPassword'])){
exit("2 回入力されたパスワードは矛盾しています");
}
$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 = "ユーザーに挿入(`userName` ,`password`,`createtime`,`createip`)values ('"
. $userName . "','" . $password . "', '" . $ time . "','" . $ip . "')";
$result=mysqli_query($conn,$sql);
echo 'によって挿入された ID現在のユーザーは:' .$conn->insert_id;
if($result){
echo "Success<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 型に変換する必要があります。 、これ以上問題はありません
。