PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (2): « 1 [2]

> Найдено сообщений: 23
BigBoss2012 Отправлено: 21 Октября, 2012 - 18:18:41 • Тема: Неправильное событие валидации • Форум: HTTP и PHP

Ответов: 0
Просмотров: 692
Ребят, помогите со следующей проблемой.

Бэкграунд:

Написал форму для добавления юзера. Валидация работает прекрасно, данные падают в БД как положено.

Однако, есть следующая проблема: событие НАЧАЛА валидации работает некорректно. Объясню со стороны юзера (опишу Юс Кейс регистрации):

1. Юзер заходит на сайт ПЕРВЫЙ РАЗ. В этом случае все нормально. Скрипт еще не обратился к подпрограмме валидации и НЕ высвечиваются ошибки заполнения формы.

2. В случае НЕПРАВИЛЬНОГО заполнения юзером формы, валидация высвечивает ошибки как положено.

3. Однако, при обновлении страницы (т.е Юзер увидел много сообщений об ошибках и решил перезаполнить форму) валидация срабатывает все равно. Юзер еще ничего не заполнял, а ему уже пишут ОШИБКИ допущенные при предыдущем заполнении формы.

Прошу помочь вот в чем:
1. Как начать данный сценарий сначала, с шага 1?
2. Либо как заставить валидацию срабатывать только при сабмите формы? Пробовал так - не работает.

<html>
<input type="hidden" name="submit">

<php>
if (isset($_POST[submit])) {
validation
}

Очень прошу помощи!
BigBoss2012 Отправлено: 21 Октября, 2012 - 17:37:19 • Тема: Очистка массива в PHP • Форум: HTTP и PHP

Ответов: 14
Просмотров: 5995
Всем большое спаибо. Проблему практически решил.
Опишу в новой теме!
BigBoss2012 Отправлено: 18 Октября, 2012 - 09:06:30 • Тема: Очистка массива в PHP • Форум: HTTP и PHP

Ответов: 14
Просмотров: 5995
eai пишет:
Что бы заполнить какое либо поле на нажатие кнопки Сабмит надо на клиенте (браузере) использовать JavaScript

Рекомендую покопать в сем направлении, к примеру посмотреть либу jQuery


Спасибо. Я уже потихоньку начинаю что на стороне сервака эту проверку сделать довольно геморно. Лучше сделать клиентскую - оно и нагляднее и сервер теребить лишний раз не будет.

В принципе, на ПХП это реально осуществимо, но уж больно геморно - необходимо вычищать\перезаписывать хттп-заголовки, итд
BigBoss2012 Отправлено: 18 Октября, 2012 - 08:16:09 • Тема: Очистка массива в PHP • Форум: HTTP и PHP

Ответов: 14
Просмотров: 5995
AlexAnder пишет:
CODE (html):
скопировать код в буфер обмена
<form action="index.php" method="POST">
<p><label for="log">Login:</label></p>
<p><input id="log" type="text" name="login"></p>
<p><label for="pass">Password:</label></p>
<p><input id="pass" type="password" name="password"></p>
<p><input type="submit" value="Отправить" name="submit"></p>
</form>

PHP:
скопировать код в буфер обмена
if(isset($_POST['submit'])) {
validate
}


Спасибо, попробовал. Результат такой же.

Кстати, немного поресерчил этот вопрос и нашел такой же баг на формах некоторых крупных сайтов.
(Добавление)
eai пишет:
А где код его заполнения на сабмит?


Вот тут пожалуйста поподробнее, если можно.
BigBoss2012 Отправлено: 16 Октября, 2012 - 09:48:33 • Тема: Очистка массива в PHP • Форум: HTTP и PHP

Ответов: 14
Просмотров: 5995
eai пишет:
А как ACTION заполняешь ?


<input type="hidden" value="register" name="action">
BigBoss2012 Отправлено: 16 Октября, 2012 - 09:30:11 • Тема: Очистка массива в PHP • Форум: HTTP и PHP

Ответов: 14
Просмотров: 5995
eai пишет:
Еще вариант, на сабмит заполнять какое то невидимое поле в TRUE и проверять тока если оно заполнено


eai, делаю такую проверку. Не помогает.

if (!empty ($_POST[action])) {
$_POST[action] ="";
validation ();
}
BigBoss2012 Отправлено: 16 Октября, 2012 - 09:25:20 • Тема: Очистка массива в PHP • Форум: HTTP и PHP

Ответов: 14
Просмотров: 5995
AlexAnder, спасибо за мыслю!!

eai, ну че тут непонятного? валидация срабатывает раньше положенного события, вслдествии чего в базу пишкться пустые значения.
BigBoss2012 Отправлено: 16 Октября, 2012 - 09:17:39 • Тема: Очистка массива в PHP • Форум: HTTP и PHP

Ответов: 14
Просмотров: 5995
Ребята, помогите пожалуйста. Проблема следующая.

Бэкграунд:

Написал скриптяку регистрации пользователей на сайте. Все нормально работает практически. Пользователь заполняет форму --> Форма проходит валидацию -- >Если все хорошо - пишем в базу, если нет -- возращает ошибки валидации.

Беда:
1. При обновлении страницы или сразу после старта сценария форма выдает ошибки. Т.е пользователь зашел на страницу, ничего не вводил, а ему уже пишут, что введи мол правильно то-то и то.

2. При каждом обновлении страницы (после ввода правильных или неправльных данных) записи падают в базы. Auto-increment выдает новые ид-шники и пишет пустые значения в поля.

Полагаю, что все дело в том, что в суперглобаольной переменной $_POST остаются невалидные данные и интерпретатор молотит их, пока не получит новые. Писал такое условие, но оно не помогло:

if (!empty ($_POST[action])) {
$_POST[action] ="";
validation ();
}
else {
array_splice($_POST, 0);
}

Пояснение:

action - hidden поле с value='register'
validation () - подпрограмма валидации, Там ничего суперского нет, одни ифы для проверки значений
array_splice - вроде бы как бы функция для очистки массива, но походу тоже не помогла.

Ребята, помогите плиз! Я знаю что это легко. Может, посоветуйте что-нить на JavaScript.

Заранее огромное спасибо!

Страниц (2): « 1 [2]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB