[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сохранение значения полей
strannic
Заполняю форму регистрации, ввожу не верную капчу нажимаю "отправить" - javascript выдает (Введите коректный код с картинки) и тут же исчезают значения заполненных полей. Можно как то сохранить заполненные поля сессии если ошибка.



Спустя 4 минуты, 44 секунды (11.10.2011 - 20:21) bodja написал(а):
Можно.
Встречный вопрос ,каким боком яваскрипт узнает про неверную капчу?

Спустя 58 минут, 44 секунды (11.10.2011 - 21:20) strannic написал(а):
Вот таксим образом. Правда Internet Explorer яваскрипт почему то игнорирует.
if(form.capha.value == ""){
alert ('Введите знаки с картинки');
return false;
}
if (form.capha.value != "<?= $_SESSION['secret_captcha']?>"){
alert ('Введите верный код подтверждения');
document.getElementById('image').src='/captcha/captcha.php'+Math.round(1000 * Math.random());
obj_form.capha.focus();
return false;
}

if($_SESSION["secret_captcha"] != $_POST[capha]){
return exit("<b>Ошибка номера ввода капчи</b>");
}

Спустя 2 часа, 6 минут, 51 секунда (11.10.2011 - 23:27) strannic написал(а):
Неужели не у кого нет не каких мыслей!

Спустя 37 минут, 27 секунд (12.10.2011 - 00:04) bodja написал(а):
Мда,если я правильно понял,это больше капча от юзера чем от бота :)
Я думаю боту ничего не стоит выбрать это значение form.capha.value в форме и отправить.
Тут недавно был конкурс на эту тему и флейме почитайте,я думаю будет познавательно :)

Насчет вернуть назад значения полей ,ну это не вопрос.

примерно в таком духе.
<?php

if(isset($_POST['msg']) {
$msg=$_POST['msg'];
}
?>
<form><input name="msg" value="<?php echo $msg; ?>"></input> </form>

Спустя 1 час, 10 минут, 41 секунда (12.10.2011 - 01:15) strannic написал(а):
Насчет вернуть назад значения полей , пробую но постоянно ошибки. Может есть тема где можно посмотреть на картину в целом. Какой нибудь класс.

Спустя 38 минут, 39 секунд (12.10.2011 - 01:54) bodja написал(а):
Ну в плане?
Вам нужно просто принять нужные значения полей,и потом вернуть опять в форму.
Если нужен пример ,вот пожайлуста,это мой метод класса формы для создания новой темы,
она возвращает название темы и содержание поста в случае неудачи,ну и еще много чего делает,легче я думаю нестанет ;)

//----------------------шаблон формы добавления темы---------------------------	
private function formtopic($theme,$msg,$status,$value) {
$h='';
if ($this->save==true) {
$s=dyn_script($this->tkey);
$r=rand(1000,9999);
$h='<center><table width="100%" border="1" cellpadding="1" cellspacing="1">
<form method="post" action="?m='
.$this->m.'&c=0&p=1">
<tr class="form1">
<td class="form1_1">
<input id="name" name="name" style="height:20px;width:140;text-align:center;font:bold 13px Tahoma;" value="'
.$this->login.'" onfocus="this.value=\'\';" maxlength="12"></input>
<input id="key" name="key" type="hidden" value="'
.$r.'">
<input id="status" name="status" type="hidden" value="'
.$status.'">
<input id="value" name="value" type="hidden" value="'
.$value.'">
</td>
<td class="form1_2"><input id="theme" name="theme" style="height:20px;width:100%;text-align:center;font:bold 13px Tahoma;" value="'
.$theme.'" onfocus="this.value=\'\';" maxlength="60"></input></td>
</tr>
<tr class="form3">
<td class="form3_1">'
.$this->d.'</td>
<td class="form3_2">'
.bb_button().'</td>
</tr>
<tr class="form2">
<td class="form2_1">'
.smile().'</td>
<td class="form2_2"><textarea id="msg" name="msg" style="height:100%;width:100%;font:13px Tahoma;">'
.$msg.'</textarea></td>
</tr>
<tr class="form3">
<td class="form3_1"></td>
<td class="form3_2"><button id="button" name="button" class="button" type="submit">добавить</button></td>
</tr>
</form></table></center>'
.$s;
}
return $h;
}

Спустя 2 часа, 23 минуты, 8 секунд (12.10.2011 - 04:17) imbalance_hero написал(а):
strannic
Скажи, зачем создавать капчу, которая не будет тебя защищать? smile.gif
На JS капчи не пишутся, а более подробно в разделе конкурсов, можешь почитать мои оценки, они как раз отдельной темой вынесены по поводу последнего конкурса.

Спустя 10 минут, 12 секунд (12.10.2011 - 04:27) ancient mariner написал(а):
Инициализируйте входную переменную, приписав ей значение по умолчанию null:

// if (isset) ... бла-бла-бла
$msg = !empty ($_POST['name']) ? $_POST['name'] : null;


И в соответствующем html уже

<form>
<input
name="name" value="<?php echo $msg; ?>" />
</form>


В этом случае ваша $msg всегда будет определена. И всё будет работать.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.