Введенный IP-адрес в базу данных MySQL изменяется каждый раз

У меня есть сценарий оценки, который регистрирует IP-адреса пользователей, поэтому они не могут оценивать файл более одного раза. Однако каждый раз, когда я оцениваю файл для его проверки, мой ip ip изменяется с помощью функции ip2long (). Что происходит? Вот мой код:

<?php require('connect.php'); $sheetID = $_GET["id"]; $rating = $_GET["rating"]; $ip= $_SERVER['REMOTE_ADDR']; $ip = ip2long($ip); $checkIPQuery = mysql_query("SELECT * FROM ratings WHERE sheetID = '$sheetID' and INET_NTOA(ip) = '$ip'"); $doesIPExist = mysql_num_rows($checkIPQuery); if ($doesIPExist == 0) { mysql_query("INSERT INTO ratings (sheetID, rating, ip) VALUES ($sheetID, $rating, $ip)"); echo " $ip <script>setTimeout(function(){location.href = '../sheets.php?id=$sheetID'},1);</script>"; } else echo 'You have already rated this image!'; ?> 

И затем для проверки, имеет ли пользователь рейтинг сценария:

 $id = $_GET['id']; $ip=$_SERVER['REMOTE_ADDR']; $ip = ip2long($ip); $checkIPQuery = mysql_query("SELECT * FROM ratings WHERE sheetID = '$id' and INET_NTOA(ip) = '$ip'"); $doesIPExist = mysql_num_rows($checkIPQuery); 

Вот что я сделал:

  • Изменено поле для неназначенного INT, когда $ ip не попадет в varchar (15)
  • Я добавил функцию ip2long (), потому что я изменил ip-поле на INT
  • Затем я добавил INET_NTOA (ip), чтобы прочитать ip2long () INT

Любая помощь будет оценена по достоинству. Благодаря!

Изменить: эти скрипты работают нормально, если я, например, устанавливаю $ ip на 3.