Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   php + javascript, проверка капчи (https://javascript.ru/forum/misc/9702-php-javascript-proverka-kapchi.html)

zhuzha 01.06.2010 17:26

php + javascript, проверка капчи
 
Сразу скажу, что и в php, и javascript я дилетант. Но задачу это не отменяет, так что прошу камнями не бросаться))))

Нужно сделать проверку правильности заполнения c помощью javascript поля капчи. Т.к. если делать проверку только в php, после нее сбрасываются поля-селекты. А их в форме много...
$keystring - переменная из поля капчи
//Переопределяем переменную
$keystring = $_REQUEST['keystring'];
//Сравниваем
if ($keystring != $_SESSION['captcha_keystring'] OR empty($keystring)) {
    //Составляем уведомление
    echo '<p id="star">Ошибка:&nbsp;'.$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;
}


хелп ми, плиз)

B@rmaley.e><e 01.06.2010 17:37

Если выводить текст каптчи на странице (даже в преобразованном виде), то ее кпд сразу же уходит в минус.

zhuzha 01.06.2010 17:43

т.е. никак?

Gvozd 01.06.2010 18:06

AJAX вам поможет
а дальше уже по классической схеме.
главное не забыть сохранить введеное пользователем значение капч в скрытое поле, и еще раз проверить уже при пересылке формы

Kolyaj 01.06.2010 18:35

Цитата:

Сообщение от zhuzha
Т.к. если делать проверку только в php, после нее сбрасываются поля-селекты.

А вы их не сбрасывайте.

zhuzha 02.06.2010 12:10

Цитата:

Сообщение от Kolyaj (Сообщение 57454)
А вы их не сбрасывайте.

А как их сохранить?

Kolyaj 02.06.2010 12:12

Ну так пришли к вам значения из формы, если какое-то поле неправильное, вы показываете ту же форму, но уже с предустановленными значениями, которые к вам только что прилетели.

zhuzha 02.06.2010 12:18

Если это текстовое поле, то вопросов нет.
<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>

Kolyaj 02.06.2010 12:56

У нужного option выставляется атрибут selected.

zhuzha 02.06.2010 13:12

гениальный ответ..

Kolyaj 02.06.2010 13:30

zhuzha,
удобство пользователя и удобство программиста -- обратно пропорциональные вещи. Чем удобней интерфейс пользователю, тем труднее программисту.


Часовой пояс GMT +3, время: 21:52.