Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Не работает проверка заполнения формы
Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2013
Помог: 0 раз(а)
[+]
Подскажите почему на локальном Денвере код работает, а на сервере Yutex нет?
Проблема в том, что даже если в форме поля mail и author не заполнены, комментарий добавляется, т.к. при помощи javascript в форм встроено value == 'Ваше имя'. Думаю что не работает именно этот код:
exit("<p>Вы ввели не всю информацию, вернитесь назад и заполните все поля. <br> <input type='button' value='Вернуться назад' onclick='window.history.go(-1)'>");
Очень нужно, если проблема с сервером Хостера, тогда уже буду писать в службу поддержки, просто стыдно обращаться если проблема из-за моих начинающих, "кривых рук".
Заранее спасибо. (Добавление)
9 просмотров и ни одного ответа. Хоть бы догадку высказали. думал хоть на специализированном форуме мне подскажут.Отредактировано модератором: DeepVarvar, 13 Февраля, 2013 - 22:18:55 Обернул код в теги.
DeepVarvar
Отправлено: 13 Февраля, 2013 - 22:22:39
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
ghjy06 пишет:
думал хоть на специализированном форуме мне подскажут
Есть две подсказки.
Одна честная, но в глаза уколет.
Другая не честная, но учтивая, что прямо ми-ми-ми-ми-ми (^_^)
Вам какую?
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Ахах, оценили значит харизму
Прошу прощения, что так вот долго не отвечал - дела домашние.
Ладно, поехали.
Первый вариант:
Вы слишком не терпеливы. Показалось что считаете тут на форуме кто-то вам что-то должен.
Неа - ни капельки не должен. Кроме того, увидев тот код, который был сброшен...
Такое размещают на govnokod.ru чтобы поржать.
Ни у кого нет желания лезть в это "Г" и марать руки, что-то советовать.
Лучше отмолчаться, от греха подальше - себе дороже.
Потому, что после одного совета окажется что вы не знаете еще более глубоких азов, и придется откатываться с объяснениями в самый низ, в "каменный век"..
Решение проблемы?
Возможно (я надеюсь) тут: http://forum.php.su/topic.php?fo...33&topic=793
Второй вариант:
Ммммм... А давайте перепишу вам все с нуля и заново?
На самом деле есть еще и третий вариант:
А давайте вы попробуете сами переписать все заново.
А мы тут просто поможем процессу. Направим в нужное русло.
Помогать будет тот, кто свободен сейчас, и если ему будет настроение вам помогать.
А таких лудей тут полно.
Я внесу свою первую лепту.
Начнем с верстки.
Почему у вас в тегах идет описание стилей?
Почему на текстарии используется плейсхолдер, а на инпутах жаваскрипт?
Онфокус на скрипте? о_О Переносите в css
Почему в примере не открыт див перед формой?
Используйте один тип кавычек при описании атрибутов и свойств элементов DOM.
Почему у формы не абсолютный путь?
Почему идентификатор input, даже на форме не уникален?
Теперь скрипт.
stripslashes($author); это что? magic quotes включен?
Я сокращу только прием параметров. Дальше думайте сами.
Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2013
Помог: 0 раз(а)
[+]
DeepVarvar пишет:
Ахах, оценили значит харизму
Прошу прощения, что так вот долго не отвечал - дела домашние.
Ладно, поехали.
Первый вариант:
Вы слишком не терпеливы. Показалось что считаете тут на форуме кто-то вам что-то должен.
Неа - ни капельки не должен. Кроме того, увидев тот код, который был сброшен...
Такое размещают на govnokod.ru чтобы поржать.
Ни у кого нет желания лезть в это "Г" и марать руки, что-то советовать.
Лучше отмолчаться, от греха подальше - себе дороже.
Потому, что после одного совета окажется что вы не знаете еще более глубоких азов, и придется откатываться с объяснениями в самый низ, в "каменный век"..
Решение проблемы?
Возможно (я надеюсь) тут: http://forum.php.su/topic.php?fo...33&topic=793
Второй вариант:
Ммммм... А давайте перепишу вам все с нуля и заново?
На самом деле есть еще и третий вариант:
А давайте вы попробуете сами переписать все заново.
А мы тут просто поможем процессу. Направим в нужное русло.
Помогать будет тот, кто свободен сейчас, и если ему будет настроение вам помогать.
А таких лудей тут полно.
Я внесу свою первую лепту.
Начнем с верстки.
Почему у вас в тегах идет описание стилей?
Почему на текстарии используется плейсхолдер, а на инпутах жаваскрипт?
Онфокус на скрипте? о_О Переносите в css
Почему в примере не открыт див перед формой?
Используйте один тип кавычек при описании атрибутов и свойств элементов DOM.
Почему у формы не абсолютный путь?
Почему идентификатор input, даже на форме не уникален?
Теперь скрипт.
stripslashes($author); это что? magic quotes включен?
Я сокращу только прием параметров. Дальше думайте сами.
По первому варианту:
Не могу Вам возразить, т.к. я только учусь. Вы наверное экстрасенс, данный код, это воспроизведение полученных знаний от человека, к которому Вы не равнодушны - "Ж. Попова" и видео курсов СПЕЦИАЛИСТ.
Я очень хочу учиться, но ограничен во времени, возможностях и источниках черпания знаний, поэтому стараюсь хоть чему-то научиться, но не все получается так, как хочется.
Второй вариант мне скорее не подойдет, т.к. думаю, что это будет дорогого стоить. Да и в конце концов я сам ничему не научусь.
Третий вариант скорее всего будет самым актуальным для меня. Я был бы чрезмерно благодарен, если бы мог учиться у профессионалов, разумеется, когда у Вас есть время и настроение.
Что касается верстки: Почему у вас в тегах идет описание стилей?
Подозревая мысль, которую вы хотели осветить этим вопросом, что "Это признак нехорошего кода", отвечу: "Потому что так тоже можно, но я прислушался к Вам и перенес все в таблицу стилей).
Почему на текстарии используется плейсхолдер, а на инпутах жаваскрипт?
Дело в том что блог, который я "написал", является кросбраузерным. Я хочу избежать надписей над импутами "Ведите имя:". Хочу расположить подобные надписи внутри импутов, чтобы при клике левой кнопкой мыши текст "Ведите имя:" исчезал. IE не поддерживает атрибут placeholder (html5). В данной форме, текстовая область одна, поэтому если в IE она не будет подписана, то и так понятно, что в нее нужно ввести текст комментария (минимизировал применении скриптов). На картинке, которую я прилагаю, макет работающей на локальном хосте формы.
Онфокус на скрипте? о_О Переносите в css
Если я не ошибаюсь вопрос риторический.
Почему в примере не открыт див перед формой?
Открывающий div на месте. Я не аккуратно скопировал код для демонстрации.
Используйте один тип кавычек при описании атрибутов и свойств элементов DOM.
Учту.
Почему у формы не абсолютный путь?
Исправил.
Почему идентификатор input, даже на форме не уникален?
Потому что он содержит всего 1 правило:
#input {
margin:5px 15px 15px 0px;
}
По поводу кода, который вы предложили, считаю его очень профессиональным, но я провозился с ним вчера до 5 часов утра и так и не наладил. Данные отправляются, о чем свидетельствует var_dump, однако я пока не додумался, как обработать значения, ключей массива, если они пустые или в них содержится значение value чтобы браузер выводил: "Вы ввели не всю информацию, вернитесь назад и заполните все поля.". (Добавление)
DelphinPRO пишет:
Как видите, код намного читабельне, и удобнее для доработок в будущем.
В целом согласен, но для IE не подойдет. Прикреплено изображение (Нажмите для увеличения)
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
ghjy06 пишет:
В целом согласен, но для IE не подойдет.
если вы используете или собираетесь использовать на сайте библиотеку jQuery, то выше я упомянул нужный плагин, который научит осла понимать плейсхолдеры.
если использование jQuery не планируется, то такой же функционал можно описать и чистым яваскриптом. Да, вы можете возразить, что такое решение более громоздко, - внешний файл в котором не одна строчка кода. Но на самом деле это не страшно. Во-первых, внешний файл подключается только для для IE условными комментариями. Во-вторых, туда же в будущем попадут остальные костыли для IE. И в-третьих, удобно, когда все костыли сосредоточены в одном месте, а основной код чист и красив.
----- Чем больше узнаю, тем больше я не знаю.
ghjy06
Отправлено: 20 Февраля, 2013 - 16:15:54
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2013
Помог: 0 раз(а)
[+]
DeepVarvar пишет:
Дальше думайте сами.
Т.к. проблему я решил (почти так, как хотелось) благодаря DeepVarvar - думаю не лишним будет сообщить Вам об этом. Пользователям будет полезно знать решение.
Предложенный вами код я немного доработал под свои нужды.
Итак:
Форма:
if($fields[author]=="Ваше имя" or $fields[mail]=="Ваш e-mail"){
exit("<p>Вы ввели не всю информацию, вернитесь назад и заполните все поля. <br> <input type='button' value='Вернуться назад' onclick='window.history.go(-1)'>");
exit("<p>Вы ввели неверную сумму цифр с картинки на предыдущей странице. <br> <input type='button' value='Вернуться назад' onclick='window.history.go(-1)'>");
}
?>
Сложность возникла в том, что тег textarea не передает данные в ячейку массива "text" => "", т.к. у него нет атрибута value он постоянно пустой. Если ячейке массива задать значение "text" => "Ваша запись" и дополнить функцию if:
if($fields[author]=="Ваше имя" or $fields[mail]=="Ваш e-mail" or $fields[text]=="Ваша запись"){
exit("<p>Вы ввели не всю информацию, вернитесь назад и заполните все поля. <br> <input type='button' value='Вернуться назад' onclick='window.history.go(-1)'>");
,
при этом оставить пустым поле тега textarea и отправить форму, то сработает <input type='button' value='Вернуться назад' onclick='window.history.go(-1)'>. Но подлость в том, что это сработает даже если поле заполнено.
Поэтому выполнить проверку текстового поля на пустоту мне не удалось. В принципе данное поле по логике и так заполнят. Буду благодарен, если подскажите решение.
Почему идентификатор input, даже на форме не уникален?
Потому что он содержит всего 1 правило:
#input {
margin:5px 15px 15px 0px;
}
ОН ДОЛЖЕН БЫТЬ НА СТРАНИЦЕ ОДИН
DelphinPRO пишет:
плагин, который научит осла понимать плейсхолдеры
Без него обошлось, пара строчек же.
ghjy06 пишет:
$fields[author] ... $fields[mail]
Обрамляйте ключи в кавычки. Это же не константы.
Чтобы увидеть сколько ошибок вас научили делать различные "курсы", напишите в самом начале всех скриптов, это:
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
DeepVarvar пишет:
плагин, который научит осла понимать плейсхолдеры Без него обошлось, пара строчек же.
ну плагин примерно так и работает
одно только заечание: зачем атрибут defaultvalue?
можно ведь стандартный placeholder использовать. и класс, в принципе не нужен. Также по атрибуту выборку делать. ну и проверять поддержку плейсхолдеров, и если она есть - ничего не делать. Если внести все эти правки, как раз и получится тот плагин
----- Чем больше узнаю, тем больше я не знаю.
DeepVarvar
Отправлено: 20 Февраля, 2013 - 21:24:32
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
DelphinPRO пишет:
можно ведь стандартный placeholder использовать
Стандартный плейсхолдер, на сколько я знаю, будет сложно кроссбраузерно стилизовать. А так можно добавлять еще один класс, например, чем менять например цвет "плейсхолдера".
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.