Напишите пожалуйста кто может небольшой скрипт на php. Который должен сравнивать IP адрес посетителя ресурса с текстовым файлом, если в текстовом файле содержится IP адрес, скрипт выдаст один текст, если же IP нет в текстовом файле тогда другой текст. А и еще второй скрипт, два поля ввода, одно маленькое для ника, второе побольше, и что бы данные из этих полей сохранялись в указанный текстовый фаил.
2) PHP: $file=file("news.bd"); if (isset($save_news)) { $mess=trim("$mess"); if ($mess!=="") { $mess=str_replace("\n","<li>",$mess); $bd="news.bd"; $date=date("d.m.Y"); $str="$date|<li>$mess"; $f=fopen($bd,"a"); fwrite($f,"$str\n"); fclose($f); echo "<span class='red_txt'>новость добавлена</span>"; } } ?> <table width='590' cellspacing='0' cellpadding='4' border='0'> <tr> <td align=right class="new_txt">добавить новость:<hr></td> </tr> <form action='new_admin.php?action=new&menu=dobav' method='post'> <tr> <td align=center> <textarea style="width: 400px;" name=mess rows=7 cols=150 name='mess'></textarea> </td> </tr> <tr> <td colspan=2 align=center><input type='submit' value='сохранить' name='save_news'></td> </tr> </form> </td> </tr> </table> я думаю сдесь все понятно.
1) PHP: <? $f=file("bd.txt"); foreach($f as $v) { if($REMOTE_ADDR==$v) echo "вариант 1"; //вот точно! else echo "вариант 2"; } ?> upd: всё точно!
Первый скриптег: PHP: <?php $txt_name='ip_bd.txt';//текстовый фалик с айпишниками $ip_bd=file($txt_name); if(in_array($_SERVER["REMOTE_ADDR"], $ip_bd))echo('...один текст.');//если есть else echo('...другой текст.');//если нету ?> Второе PHP: <?php $txt_bd='bd.txt'; if(!empty($_POST['action'])) { if((!empty($_POST['pass']))&&(!empty($_POST['vtoroe']))) { $pass=str_replace("\n", " ", $_POST['pass']); $vtoroe=str_replace("\n", " ", $_POST['vtoroe']); $file_s=fopen($txt_bd,"w"); fputs($file_s,$pass."\n"); fputs($file_s,$vtoroe."\n"); fputs($file_s,"-------------------------------------------------------\n"); fclose($file_s); echo('Готово'); } else echo('Вы не заполнили оба поля!'); } else { ?> <form method="post"> <input type="text" name="pass" value=""> <input type="text" name="vtoroe" value=""> <input type="submit" name="action" value="добавить"> </form> <?php } ?>
PHP: echo "<strong>Ваш IP</strong> " . $_SERVER['REMOTE_ADDR']. "<br />\n"; echo('Доступ на FTP для Вас '); $txt_name='ip_bd.txt';//файлек $ip_bd=file($txt_name); if(in_array($_SERVER["REMOTE_ADDR"], $ip_bd))echo('Закрыт');//если есть else echo('Открыт');//если нету Почему-то не работает =( Создал фаил ip_bd.txt рядом со скриптом, есть IP там или нет всё равно выдается "Открыт"
Убрать точку с запятой? Тогда вообще работать не будет. Вообщем всё вместе это выглядит так: PHP: <?php // no direct access defined( '_VALID_MOS' ) or die( 'Доступ запрещен' ); global $mosConfig_offset, $mosConfig_caching, $mosConfig_enable_stats; global $mosConfig_gzip; echo "<strong>Ваш IP</strong> " . $_SERVER['REMOTE_ADDR']. "<br />\n"; echo('Доступ на FTP для Вас '); $txt_name='ip_bd.txt'; $ip_bd=file($txt_name); if(in_array($_SERVER["REMOTE_ADDR"], $ip_bd))echo('Закрыт'); else echo('Открыт'); ?> Это модуль для joomla, был. Я его растеребил и вставил этот скрипт. И со вторым скриптом тоже проблемы кстати =( Он записи заменяет, а не добавляет. Допустим первый раз я написал 1 в первом поле и 1 во втором, открыл bd.txt. Там вижу 1;1 -------. Потом написал в первом поле 2 и во втором 2. Открываю bd.txt и вижу первой записи нет, зато есть вторая: 2;2 ------.
Только щас дошло... Прошу прощения блин... просто дело в том что при открытии файла функцией file() в каждую строку в массиве в конце дописывается символ возврата строки что соответственно при сравнении с айпи дает false. Вот немного модифицировал. Терь в файлик нужно засовывать айпи через пробел в одну строку )). PHP: <?php $txt_name='ip_bd.txt';//файлек $ip_bd=file($txt_name); $ip_bd=explode(' ',$ip_bd['0']); if(in_array($_SERVER["REMOTE_ADDR"],$ip_bd))echo('Закрыт');//если есть else echo('Открыт');//если нету ?>
Всё, можете называть меня "anykey-кривые руки", заменил скрипт, обновил текстовый фаил, результат один и тот же: "Открыт".
Код I-I()/Ib отлично работает, создай файл ip_bd.txt запиши туда 127.0.0.1 (если как ты писал запускаешь с локалхоста), выполняем скрипт и видим надпись Закрыт, если нет тогда поставь error_reporting=E_ALL может там ошибка еще какая вылазит.
конечно... строка в массиве $ip_bd содержит признаки конца строки... надо trim использовать и соответсвенно не так немного делать так пробуй: PHP: <? $f=file("bd.txt"); $k=$_SERVER["REMOTE_ADDR"]; $k=trim($k);//не уверен, что это обязательно foreach($f as $v) { if($k==trim($v)) echo "вариант 1"; else echo "вариант 2"; } ?>
PHP: <? $f=file("bd.txt"); $k=$_SERVER["REMOTE_ADDR"]; $k=trim($k);//не уверен, что это обязательно foreach($f as $v) { if($k==trim($v)) echo "вариант 1"; else echo "вариант 2"; } ?> Всё равно выводит "вариант 2", только теперь 3 раза =)