Покинул форум
Сообщений всего: 43
Дата рег-ции: Окт. 2014
Помог: 0 раз(а)
ребята помогите вопрос заезженный! вот есть много чужого кожа работающего-но я упростил форму какого не работает ( надо когда загружаем форму - только форма , если не ввели данные - ошибка , если введены данные - то ок! почему не работает
Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014
Помог: 0 раз(а)
Да нет Просто isset он там как-то понимает что что-то есть поменяйте на empty.
И всё получается. Для красоты предложу вообще так. Но не настаиваю ибо тоже только учусь.
Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015
Помог: 14 раз(а)
ytrewq123 пишет:
Да нет Просто isset он там как-то понимает что что-то есть поменяйте на empty.
И всё получается. Для красоты предложу вообще так. Но не настаиваю ибо тоже только учусь.
Если поставить выводить все ошибки на вашу конструкцию, когда форма еще не была отправлена, php будет выводить предупреждение e_notice(8), я бы так не писал...
вы в коде с начало сами создаете переменную $knopka, а потом проверяете ее существование, она в любом случаи будет существовать, то есть вы в любом случаи зайдете в блок if(isset($knopka))
Покинул форум
Сообщений всего: 139
Дата рег-ции: Дек. 2014 Откуда: Киров, Россия
Помог: 11 раз(а)
exlant пишет:
вы в коде с начало сами создаете переменную $knopka, а потом проверяете ее существование, она в любом случаи будет существовать, то есть вы в любом случаи зайдете в блок if(isset($knopka))
Покинул форум
Сообщений всего: 43
Дата рег-ции: Окт. 2014
Помог: 0 раз(а)
(Добавление)
ВСЕМ СПАСИБО ЗА ВКЛ. в диалог (проверка на существование, объявление переменной это все понятно - данный код упрощен) Вопрос: не работает условие если в форму ничего не введено - то должно выводиться echo '<h1> Вы забыли ввести ваше имя </h1>'; если все введено -то echo '<h1> все ок </h1>'; И может есть знающие люди подскажут (как сделать, чтобы форма не отправлялась если не введено ничего!)
(Добавление)
как сделать чтобы не отправлялось ничего (т.е. данные методом $_POST - тупо тормозились и не передавались ) если хотя бы одно поле не заполнено!
Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014
Помог: 0 раз(а)
Я конечно извиняюсь, может я чего-то не понимаю. Но если Вы возьмёте написанный мною код, там всё работает. И если не заполнено, ничего ни куда не отсылается.
И если же не желаете в своём поменяйте.
if (!isset($name_user))
НА
if (empty ($name_user))
Просто там разница что при isset ПХП видит другое чем при empty
Покинул форум
Сообщений всего: 43
Дата рег-ции: Окт. 2014
Помог: 0 раз(а)
да действительно работает ( но если ничего не введено и нажата кнопка ) все равно сам запрос отработает (в массив попадет пустая строка и например укажите функцию записи в файл + время когда отражена ) и если потом данные записывать в файл и выводить будут пустые строки ( а я спрашиваю как предотвратить посылку самой формы, если не введено ничего!
но ваш код работает)правда выравнивание неахти!
я тоже учусь!
exlant
Отправлено: 10 Февраля, 2015 - 02:05:58
Посетитель
Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015
Помог: 14 раз(а)
ytrewq123 пишет:
Я конечно извиняюсь, может я чего-то не понимаю. Но если Вы возьмёте написанный мною код, там всё работает. И если не заполнено, ничего ни куда не отсылается.
И если же не желаете в своём поменяйте.
if (!isset($name_user))
НА
if (empty ($name_user))
Просто там разница что при isset ПХП видит другое чем при empty
я ни слова не написал, что код не будет работать! я написал, что если запросить не существующую переменную которой в данном случаи, при не отправленной форме, является $_POST['name_user'] и $_POST['knopka'], то php, опять же если включено отображать все ошибки, выдаст предупреждение Undefined index, если отключено выводить notice, что стоит по умолчания на большинстве виртуальных серверов, таких как denver, open_server, то ничего не выведет, но это не означает, что нотиса нет, а только то, что пхп его не выведет! Вот о чем я писал!
И та же строчка
А $_POST['name_user'] хотя бы проверить на существование функцией isset,
а потом уже присваивать другой переменной, вот и все!
Чем плохо с начало проверить на существование $_POST['name_user']?
Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014
Помог: 0 раз(а)
...Позволю себе продолжить беседу. Для того что бы понять и что-то узнать.
ДЛЯ bustez Не знаю. Может и в массив попадет пустая строка.
Хочу только сказать. Я для того чтобы вообще не отсылалось до того как заполнят. Я использую HTMLый required. То есть как бы ничего не случится жми, дави пока не заполнено что либо.
…………………………………………………
exlant..............«я ни слова не написал, что код не будет работать!»
ytrewq123....... Извините, но я и не говорю что это сказали Вы.
exlant.............«выдаст предупреждение Undefined index, если отключено выводить notice»
ytrewq123........ Полностью с Вами согласен и я вижу эти Ошибки предупреждения.
Но я не как не понимал почему они и как от них избавится. Люди у которых я спрашивал. Отвечали. «Это не страшно» «Отключи эти ошибки» .
exlant............«не существующую переменную которой в данном случаи, при не отправленной форме, является $_POST['name_user'] и $_POST['knopka'],»
ytrewq123...... Я извиняюсь , но Вы утверждали что эти переменная $knopka существуют и глупо проверять их на существование.
exlant........... «вы в коде с начало сами создаете переменную $knopka, а потом проверяете ее существование,»
bustez
Отправлено: 10 Февраля, 2015 - 20:30:19
Новичок
Покинул форум
Сообщений всего: 43
Дата рег-ции: Окт. 2014
Помог: 0 раз(а)
Цитата:
Я использую HTMLый required.
да действительно вариант!
от всех ошибок нужно избавляться ( просто сначала объявляйте сначала переменные и используйте их в функциях и никакой НОТИЦЫ не будет!
А если в рабочем проекте будут ошибки( их будет много) - они попадают в логи и уже через неделю этот файл (в котором они сохраняются будет весить несколько GB) ! как-то так! А это место на сервере.............. (Добавление)
$get_text_peremennaa= get_text($name_user,$email_user,$text_user);// возвращаем все что пришло из формы
решил проблему - строка в массив не попадает, но это не очень правильно!
Цитата:
return; //останавливаем если хоть что-то пусто в форме
GoDr
Отправлено: 10 Февраля, 2015 - 20:51:15
Посетитель
Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015 Откуда: Тамбов
Помог: 17 раз(а)
bustez, так ты решил вопрос? просто из обсуждения я вообще потерял суть Если отталкиваться только от вопроса, то вообще нет проблем, но дальнейшие рассуждения что-то такое натворили......
Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015
Помог: 14 раз(а)
не хочу вдаваться в какие то споры, просто пожелание, мое личное, стараться избавится от каких либо ошибок, предупреждений, нотисов. Так как это не есть хорошо, bustez, тоже подметил могут быть не нужные логи, если они конечно ведутся.
Насчет того, что $knopka = $_POST['knopka'] существует, если даже $_POST['knopka'] не существует, и вы уже проверяете существующую переменную, да ошибся, я не спорю, я как раз думал по другому, и наверное с самого начала изучения php думал, что она будет определена, не знаю и не помню от куда я это взял! Но все равно переменную $_POST[index] лучше проверить на существование, а потом уже присваивать другой переменной, во избежание нотисов.
Я вот еще точно не помню, но вроде старые php версии(или это в директивах прописывается), так же выводили нотисы, если сразу проверить несуществующую $_POST функцией empty(). Я когда первый раз столкнулся с php, то у меня с этим были проблемы, на виртуальном хосте было все ок, перевел сайт на локальный то было куча нотисов. На текущей версии и конфигурации моего сервера на if(empty($_POST['undefined'])) нотисы не выводит, проверил
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.