dakata__92
Super Moderator
Здравейте ! Имам проблем с една функция на локалния ! Искам д азапаметявам в едно поле IP адресите с които се е логвал даден абонат и желая когато фигурира в базата да не се записва отново ! Та на локалния се получава така :
В базата се получава така :
::1 ::1 ::1 ::1 ::1 ::1 ::1 ::1 ::1 ::1 ::1 ::1 ::1 ::1 ::1
а от начало ми се струваше, че работи правилно ! Предполагам грешката е в заявката за проверка във функцията, но незнам как да я поправя :
WHERE `ip` LIKE '%{$ip}%'
За повече инфо в тази тема :
http://web-tourist.net/forum/viewtopic.php?t=120669
PHP:
function VerifyMemberIp($ip)
{
$member_chek = mysql_query("SELECT * FROM `members` WHERE `ip` LIKE '%{$ip}%' AND user='$user' AND pass='$compare' ")or die(mysql_error());
return mysql_num_rows($member_chek)? 1 : 0;
}
$ip = addslashes(htmlspecialchars($_SERVER['REMOTE_ADDR']));
//Проверяваме дали ип-то на абоната фигурира в базата като логвал се с него.
if(VerifyMemberIp($ip) == 1)
{
//Ако фигурира, тук ъпдейтваме без да добавяме ип то в колоната.
$update = mysql_query("UPDATE users SET last_login='$last_login'WHERE user='$user' AND pass='$compare' LIMIT 1")or die(mysql_error());
}
else
{
//Тук ип-то на абоната не фигурира в колоната и го добавям, като запазвам и старото.
$update = mysql_query("UPDATE users SET last_login='$last_login',ip=CONCAT(`ip`,' $ip') WHERE user='$user' AND pass='$compare' LIMIT 1")or die(mysql_error());
}
В базата се получава така :
::1 ::1 ::1 ::1 ::1 ::1 ::1 ::1 ::1 ::1 ::1 ::1 ::1 ::1 ::1
а от начало ми се струваше, че работи правилно ! Предполагам грешката е в заявката за проверка във функцията, но незнам как да я поправя :
WHERE `ip` LIKE '%{$ip}%'
За повече инфо в тази тема :
http://web-tourist.net/forum/viewtopic.php?t=120669