IP-адрес хранится как 0 в SQL с помощью PHP

Я локально разрабатываю веб-сайт, и я тестирую функцию внутри PHP, которая захватывает и хранит ip-адрес клиента, но я просто получаю значение 0. Код:

if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
 } else {
$ip = $_SERVER['REMOTE_ADDR'];
}

Затем ip добавляется в mysql и сохраняется как целое число с помощью кода:

$query = "INSERT INTO users (id, email, salt, passhash, regdate, last_login_date, regip, last_login_ip) VALUES ( NULL, ?, ?, ?, NOW(), NOW(), ?, ?)";

 $stmt = mysqli_prepare($dbc, $query);


 //i Interger
 //d ******* 
 //s Everything Else


 mysqli_stmt_bind_param($stmt, "sssii", $email, $salt, $passhash, $ip, $ip);

Будет ли причина, что значение будет только 0, потому что я запускаю веб-сайт на местном уровне, или я пропустил шаг?

Благодаря :)

1 ответ

Вы не должны хранить свой IP-адрес в целочисленном поле без знака. Храните его в формате varchar, и он должен исправить вашу проблему. Integer ожидает нормальное число, а не что-то с несколькими . в этом.

licensed under cc by-sa 3.0 with attribution.