написал скрипт где проверяем пришедшего пользователя по ip но проблем в том что при заходе на скрипт происходит запись ip в файл и условие if else проверяет тот ip который пришёл с уже с тем который записали и естественно выдаёт true но если не записывать пришедший ip то функция in_array выдаёт что ей нечего не счем сравнивать а как сделать так чтобы сначало проверить пришедший ip есть ли он в массиве а только потом записывать его или не записывать PHP: <? $ip=$_SERVER["REMOTE_ADDR"]; echo "ваш ip $ip<br>"; $myfilerecord="ipdb.txt"; $openrecord=fopen($myfilerecord,"a"); fwrite($openrecord, $ip."\n"); fclose($openrecord); $myfileread="ipdb.txt"; $openread=fopen($myfileread, "r"); $read=fread($openread,filesize($myfileread)); fclose($openread); echo "Это данные уже записанные в БД $read<br>"; $ip2=file($myfilerecord); if (in_array($ip."\n",$ip2)==true) { exit ("есть такой ip"); } else { echo "нет такой ip"; } ?>
определяем ip записываем ip далее условие если такой ip есть то { то вот так } { иначе вот так } но проблема в том что записав IP в условии сравнивается ip с которого сейчас зашли стем что мы только что записали а если вначале не записывать ip то не работает функция in_array потому что сравнивать не чего как сделать что бы сначала проверить ip а потом записать
Если Вы вообще первый посетитель, то да -- нечего. Именно ваш вариант можно переделать так: PHP: <?php $ip2=file($myfilerecord); if (is_array($ip2) === true) { if (in_array($ip."\n",$ip2) == true) exit ("есть такой ip"); else echo "нет такой ip"; } else { echo "нет такой ip"; } По поводу реализации: 1) Советовал бы работать с БД, если есть возможность и желание, да и скорость там будет заметно выше. 2) IP у Вас сравниваются как строки, рекомендую переводить их в числа с помощью ip2long 3) Если в IP будет много, то открывать файл, а потом преобразовывать в массив и искать в нем будет очень долго. Советую так: PHP: <?php //Получаем IP $ip = ip2long($_SERVER["REMOTE_ADDR"]); //Читаем файл $basename = "ips.txt"; $resourse = fopen($basename, "r+"); $ips = fread($resourse, filesize($basename)); if (strpos($ips, $ip) === false) { echo 'Приветствуем на сайте!'; fwrite($resourse, $ip.' '); fclose($resourse); } else { fclose($resourse); die("Вы уже посещали сайт :("); }