[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: trim
m4a1fox
Уважаемые эксперты, подскажите почему тут
if (isset($_POST['email'])) {
$email = $_POST ['email']; if ($email == '');} if (!preg_match("/^(?:[a-z0-9]+(?:[-_]?[a-z0-9]+)?@[a-z0-9]+(?:\.?[a-z0-9]+)?\.[a-z]{2,5})$/i",trim($email)))
{
echo"
<link rel='stylesheet' type='text/css' href='style.css'/>
<table width='600' height='300' align='center'>
<tr>
<td class='warning_table' width='220' align='center' valign='middle'>

<img align='center' src='img/error.png'>
<div align='center' class='warning_font_big'>ОШИБКА!!!</div>
<div align='center' class='warning_font' align='left'>Ваше письмо не доставлено.Так как вы не заполнили <font color=grey size='1'>(или не корректно заполнили)</font> поле <font color=red> Ваш email </font>!</div>
<p align='center'><a href=
\"javascript:history.go(-1)\"><font color=red>Вернуться назад</font></a></div></p>

</td>
</tr>
</table>"
;
exit;
}
trim не работает?



Спустя 5 минут, 5 секунд (26.11.2010 - 11:20) kovaldm написал(а):
А там вобще что-нибудь работает?

Спустя 50 секунд (26.11.2010 - 11:20) linker написал(а):
Перевожу на понятный язык (стиль кода)
if (isset($_POST['email'])) 
{
$email = $_POST ['email'];
if ($email == '');
}
и получаем... что это за конструкция?
if ($email == '');

Спустя 2 минуты, 39 секунд (26.11.2010 - 11:23) m4a1fox написал(а):
"/^(?:[a-z0-9]+(?:[-_]?[a-z0-9]+)?@[a-z0-9]+(?:\.?[a-z0-9]+)?\.[a-z]{2,5})$/i" - это работает!

Спустя 30 секунд (26.11.2010 - 11:24) m4a1fox написал(а):
Буду благодарен, если скажете как это должно быть)

Спустя 47 секунд (26.11.2010 - 11:24) m4a1fox написал(а):
if ($email == ''); - может проверка на пустоту?!

Спустя 1 минута, 4 секунды (26.11.2010 - 11:25) kovaldm написал(а):
Цитата (m4a1fox @ 26.11.2010 - 11:24)
if ($email == ''); - может проверка на пустоту?!

Проверили, а дальше что?

Спустя 1 минута, 22 секунды (26.11.2010 - 11:27) m4a1fox написал(а):
если пусто - ошибка! если нет - делаем дальше!

Спустя 48 секунд (26.11.2010 - 11:28) kovaldm написал(а):
Этот код в любом случае делает дальше.

Спустя 8 секунд (26.11.2010 - 11:28) m4a1fox написал(а):
да, можно использовать empty! просто еще не знаю куда его писать!

Спустя 1 минута, 25 секунд (26.11.2010 - 11:29) m4a1fox написал(а):
Этот код в любом случае делает дальше. - нет! Не идет! Выдает ошибку, что поле пусто, и его необходимо заполнить!

Спустя 1 минута, 23 секунды (26.11.2010 - 11:30) kovaldm написал(а):
Здесь не в empty дело, а втом что после if(), в случае удачной проверки, должны следовать какие-то инструкции, а их нет.

Спустя 46 секунд (26.11.2010 - 11:31) m4a1fox написал(а):
kovaldm
Чесслово - работает!

Спустя 15 секунд (26.11.2010 - 11:31) kovaldm написал(а):
Цитата (m4a1fox @ 26.11.2010 - 11:29)
Этот код в любом случае делает дальше.  - нет! Не идет! Выдает ошибку, что поле пусто, и его необходимо заполнить!

За счет preg_match.

Попробуй, убери if, будет абсолютно также работать.

Спустя 53 секунды (26.11.2010 - 11:32) m4a1fox написал(а):
Понимаю, должно следовать что-то типо if == true? else {('действие!')} но код работает!

Спустя 2 минуты, 36 секунд (26.11.2010 - 11:35) kovaldm написал(а):
Естественно работает! Только проверку на заполненность и корректность выполняет функция preg_match. Если нужен if то пиши так
$email = trim($email);
if(empty($email))
{
exit('Поле E-mail не заполнено.');
}

Исправил.

Спустя 5 минут, 16 секунд (26.11.2010 - 11:40) m4a1fox написал(а):
Я пока не могу сообразить! То есть если есть preg_match, trim нельзя ставить! Или если можно, то куда писать его?

Спустя 2 минуты, 13 секунд (26.11.2010 - 11:42) Kuliev написал(а):

if (isset($_POST['email']))
{
$email = !empty($_POST ['email']) ? $_POST['email'] : false;

if ($email !== false)
preg_match("/^(?:[a-z0-9]+(?:[-_]?[a-z0-9]+)?@[a-z0-9]+(?:\.?[a-z0-9]+)?\.[a-z]{2,5})$/i",trim($email));
}


Спустя 5 минут, 28 секунд (26.11.2010 - 11:48) kovaldm написал(а):
Как аргумент функции trim неработает, проверку нужно делать отдельно. Вернее не проверку, а обрезание пробелов.

Спустя 48 секунд (26.11.2010 - 11:49) inpost написал(а):
$email = trim($email); - обработанный тримом email присваивается переменной email. В твоём случае он обрабатывается тримом, делается проверка, но результат обработки не присваивается переменной.
$aaa = '   ПиВо есть вкусно    ';
echo trim($aaa); // Выведет 'ПиВо есть вкусно'
echo $aaa; // Выведет ' ПиВо есть вкусно '
Результат трима был использован только внутри регулярки и всё, в скрипте обратно обращается к необработанному emaily. Вот так надо:
$aaa = '   ПиВо есть вкусно    ';
$aaa = trim($aaa);
echo $aaa; // Выведет 'ПиВо есть вкусно'

Спустя 1 минута, 26 секунд (26.11.2010 - 11:50) m4a1fox написал(а):
Kuliev
хм... Знаю Вы профи, но не получается как Вы написали! Это я юззверь, но так уж вышло)

Спустя 2 минуты, 58 секунд (26.11.2010 - 11:53) kovaldm написал(а):
if (!empty($_POST['email']))
{
$email = trim($email);
preg_match("/^(?:[a-z0-9]+(?:[-_]?[a-z0-9]+)?@[a-z0-9]+(?:\.?[a-z0-9]+)?\.[a-z]{2,5})$/i",$email, $arr);
}

Спустя 3 минуты, 15 секунд (26.11.2010 - 11:56) m4a1fox написал(а):
Вроде работает! Вот так сделал
if (isset($_POST['email'])) {
$email = $_POST['email'];}
$email = trim($email);

if (!preg_match("/^(?:[a-z0-9]+(?:[-_]?[a-z0-9]+)?@[a-z0-9]+(?:\.?[a-z0-9]+)?\.[a-z]{2,5})$/i",$email))
{
echo "
<link rel='stylesheet' type='text/css' href='style.css'/>
<table width='600' height='300' align='center'>
<tr>
<td class='warning_table' width='220' align='center' valign='middle'>

<img align='center' src='img/error.png'>
<div align='center' class='warning_font_big'>ОШИБКА!!!</div>
<div align='center' class='warning_font' align='left'>Ваше письмо не доставлено.Так как вы не заполнили поле <font color=red> Ваш email </font> !</div>
<p align='center'><a href=
\"javascript:history.go(-1)\"><font color=red>Вернуться назад</font></a></div></p>

</td>
</tr>
</table>"
;
exit;
}
может кто глянет, ошибки недочеты, да и все такое, Опыт все таки важен!

Спустя 3 минуты, 23 секунды (26.11.2010 - 12:00) kovaldm написал(а):
Так короче.
$email = trim($_POST['email']);

$_POST['email'] будет существовать всегда, даже если его не заполнить.

Спустя 2 минуты, 24 секунды (26.11.2010 - 12:02) m4a1fox написал(а):
kovaldm
Да, спасибо! И еще вопрос! Может лучше вместо isset использовать empty?

Спустя 40 секунд (26.11.2010 - 12:03) kovaldm написал(а):
Я про это и говорю.

Спустя 1 минута, 31 секунда (26.11.2010 - 12:04) inpost написал(а):
kovaldm
Вот дал ему готовый код, он скопи-пастил и так ничему и не научился...

Спустя 3 минуты, 1 секунда (26.11.2010 - 12:07) kovaldm написал(а):
inpost
Кто дал код?

Спустя 4 минуты, 5 секунд (26.11.2010 - 12:11) m4a1fox написал(а):
inpost
А вы злой! Но у меня тоже есть печенки!

Спустя 51 секунда (26.11.2010 - 12:12) m4a1fox написал(а):
kovaldm
Ну вот с empty не работает, пишет что поле пусто, а вот с isset все нормально работает!

Спустя 11 секунд (26.11.2010 - 12:12) inpost написал(а):
m4a1fox
А вот и нет! Хочу, чтобы ты сам начал думать...

Спустя 49 секунд (26.11.2010 - 12:13) inpost написал(а):
Код в студию

Спустя 1 минута, 12 секунд (26.11.2010 - 12:14) kovaldm написал(а):
m4a1fox
Почитай в чем различия между ними
isset и empty.

Спустя 2 минуты, 50 секунд (26.11.2010 - 12:17) m4a1fox написал(а):
Полностью функция выглядит так
if (isset($_POST['email']))
$email = trim($_POST['email']);

if (!preg_match("/^(?:[a-z0-9]+(?:[-_]?[a-z0-9]+)?@[a-z0-9]+(?:\.?[a-z0-9]+)?\.[a-z]{2,5})$/i",$email))
{
echo "
<link rel='stylesheet' type='text/css' href='style.css'/>
<table width='600' height='300' align='center'>
<tr>
<td class='warning_table' width='220' align='center' valign='middle'>

<img align='center' src='img/error.png'>
<div align='center' class='warning_font_big'>ОШИБКА!!!</div>
<div align='center' class='warning_font' align='left'>Ваше письмо не доставлено.Так как вы не заполнили поле <font color=red> Ваш email </font> !</div>
<p align='center'><a href=
\"javascript:history.go(-1)\"><font color=red>Вернуться назад</font></a></div></p>

</td>
</tr>
</table>"
;
exit;
}

Спустя 5 минут, 15 секунд (26.11.2010 - 12:23) inpost написал(а):
m4a1fox
Ты сказал, что с empty не работает, покажи, как ты пишешь с ним

Спустя 7 секунд (26.11.2010 - 12:23) m4a1fox написал(а):
inpost
Я думаю, что, не только необходимо знание! Например я не могу понять, что вот допустим, если я знаю что мне надо, знаю как это написать но проблема - я не знаю ГДЕ, В КАКОЙ СТРОКЕ это написать, что бы это работало! Иногда, просто тупик какой-то!

Спустя 37 секунд (26.11.2010 - 12:23) m4a1fox написал(а):
if (EMPTY($_POST['email']))
$email = trim($_POST['email']);

if (!preg_match("/^(?:[a-z0-9]+(?:[-_]?[a-z0-9]+)?@[a-z0-9]+(?:\.?[a-z0-9]+)?\.[a-z]{2,5})$/i",$email))
{
echo "
<link rel='stylesheet' type='text/css' href='style.css'/>
<table width='600' height='300' align='center'>
<tr>
<td class='warning_table' width='220' align='center' valign='middle'>

<img align='center' src='img/error.png'>
<div align='center' class='warning_font_big'>ОШИБКА!!!</div>
<div align='center' class='warning_font' align='left'>Ваше письмо не доставлено.Так как вы не заполнили поле <font color=red> Ваш email </font> !</div>
<p align='center'><a href=\"javascript:history.go(-1)\"><font color=red>Вернуться назад</font></a></div></p>

</td>
</tr>
</table>";
exit;
}

Спустя 57 секунд (26.11.2010 - 12:24) m4a1fox написал(а):
Ох, чую, сейчас посыпится! Только не смеяться, и не унижать чур!

Спустя 2 минуты, 39 секунд (26.11.2010 - 12:27) inpost написал(а):
Как переводится empty ? Что означает знак "!" ?

Спустя 22 секунды (26.11.2010 - 12:27) kovaldm написал(а):
Я ж говорю - почитай про них и поэкспериментируй.

Спустя 1 минута, 5 секунд (26.11.2010 - 12:28) m4a1fox написал(а):
empty - пусто! Знак ! - вроде отрицание?!

Спустя 33 секунды (26.11.2010 - 12:29) m4a1fox написал(а):
Ну так я тоже не жду ваших ответов! Экспериментирую! )

Спустя 2 минуты, 36 секунд (26.11.2010 - 12:32) m4a1fox написал(а):
Есть! Я догнал! УРА! Спасибо всем!

Спустя 24 секунды (26.11.2010 - 12:32) kovaldm написал(а):
Значит Не(!) пусто(empty), а ты проверяешь на существование, а $_POST['email'] всегда будет существовать и смысл такой проверки пропадает.

Спустя 10 секунд (26.11.2010 - 12:32) m4a1fox написал(а):
!empty - правильный ответ!

Спустя 1 минута, 34 секунды (26.11.2010 - 12:34) m4a1fox написал(а):
kovaldm
Значит Не(!) пусто(empty), а ты проверяешь на существование, а $_POST['email'] всегда будет существовать и смысл такой проверки пропадает. - так значит не правильно писать так:
if ([color=red]!empty[/color]($_POST['email']))
$email = trim($_POST['email']);


if (!preg_match("/^(?:[a-z0-9]+(?:[-_]?[a-z0-9]+)?@[a-z0-9]+(?:\.?[a-z0-9]+)?\.[a-z]{2,5})$/i",$email))
{
echo "
<link rel='stylesheet' type='text/css' href='style.css'/>
<table width='600' height='300' align='center'>
<tr>
<td class='warning_table' width='220' align='center' valign='middle'>

<img align='center' src='img/error.png'>
<div align='center' class='warning_font_big'>ОШИБКА!!!</div>
<div align='center' class='warning_font' align='left'>Ваше письмо не доставлено.Так как вы не заполнили поле <font color=red> Ваш email </font> !</div>
<p align='center'><a href=
\"javascript:history.go(-1)\"><font color=red>Вернуться назад</font></a></div></p>

</td>
</tr>
</table>"
;
exit;
}

Спустя 2 минуты, 9 секунд (26.11.2010 - 12:36) inpost написал(а):
m4a1fox
Именно! ПХП прост тем, что у него доведён язык программирования до человеческого, как в 1с =):
если(не пустое($_POST))
if(!emtpy($POST))

Если его не существует при !empty, то будет возвращаться результат - пустая переменная. В добавок к существованию проверит и на содержание!

Спустя 59 секунд (26.11.2010 - 12:37) m4a1fox написал(а):
Значит, последний ответ - правильный (!empty)?

Спустя 7 минут, 59 секунд (26.11.2010 - 12:45) kovaldm написал(а):
Ага.

Спустя 4 минуты, 22 секунды (26.11.2010 - 12:49) m4a1fox написал(а):
Всем спасибо за участие!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.