php + javascript, проверка капчи
Сразу скажу, что и в php, и javascript я дилетант. Но задачу это не отменяет, так что прошу камнями не бросаться))))
Нужно сделать проверку правильности заполнения c помощью javascript поля капчи. Т.к. если делать проверку только в php, после нее сбрасываются поля-селекты. А их в форме много... $keystring - переменная из поля капчи //Переопределяем переменную $keystring = $_REQUEST['keystring']; //Сравниваем if ($keystring != $_SESSION['captcha_keystring'] OR empty($keystring)) { //Составляем уведомление echo '<p id="star">Ошибка: '.$error['captcha'].'</p>'; unset($_SESSION['captcha_keystring']); } else { //Разрушаем сессию session_destroy(); Проверку я делаю как: if (obj_pole_keystring.value!="<?= $_SESSION['captcha_keystring']?>") { alert ("Введите верный код подтверждения!"); document.getElementById('image').src='kcaptcha/img.php?rand='+Math.round(1000 * Math.random()); obj_form.keystring.focus(); return false; } хелп ми, плиз) |
Если выводить текст каптчи на странице (даже в преобразованном виде), то ее кпд сразу же уходит в минус.
|
т.е. никак?
|
AJAX вам поможет
а дальше уже по классической схеме. главное не забыть сохранить введеное пользователем значение капч в скрытое поле, и еще раз проверить уже при пересылке формы |
Цитата:
|
Цитата:
|
Ну так пришли к вам значения из формы, если какое-то поле неправильное, вы показываете ту же форму, но уже с предустановленными значениями, которые к вам только что прилетели.
|
Если это текстовое поле, то вопросов нет.
<input name="name" type="text" id="registr" value="<?= $_POST["name"]?>"/> Вопрос в том, как запомнить то, что в выбрали в выпадающем списке? <select name="hero" id="registr"> <option value="a0" style="color:#999999; ">Выбрать</option> <option value="a1">Конечный пользователь</option> <option value="a2">Разработчик</option> <option value="a3">Интегратор</option> <option value="a4" style="color:#999999; ">Другое...</option> </select> |
У нужного option выставляется атрибут selected.
|
гениальный ответ..
|
Часовой пояс GMT +3, время: 18:53. |