|
|
|
|
|
для: sim5
(27.03.2010 в 14:30)
| | ну да лана спс за помощь и за терпение)) | |
|
|
|
|
|
|
|
для: NoCash
(27.03.2010 в 14:20)
| | Объясните тому, кто вам сказал, что если решение об ОК будет принимать JavaScript, то ОК будет 100% ВСЕГДА.
Отправляете данные на сервер, проверили, все ОК и каптча ОК, записываем или еще что-то, а пока все не будет ОК - нет. Вот и вся проблема. А вышеприведенный код, это JS-сценарий, я хоть и знаю JS, но извините, не хочу в нем копаться, тем более проблема у вас не в методе проверки полей (они у вас могут быть и верные), а в принятии решения о записи данных на сервере. | |
|
|
|
|
|
|
|
для: sim5
(27.03.2010 в 14:16)
| | я понимаю что это не безопасно но я человек подневольный мне сказали сделать так я сделал. вот возникла проблема в совмешений капчи я застрял уже 3 день парюсь ничего не получается( | |
|
|
|
|
|
|
|
для: NoCash
(27.03.2010 в 14:09)
| | Я это рассматривать даже не буду - все, что передает форма нужно проверять обязательно на сервере, и решение принимать или нет данные, принимать на сервере. JS-проверка, это только для удобства пользователя. Мне ничего не стоит снести ее к черту со страницы и что тогда? | |
|
|
|
|
|
|
|
для: sim5
(27.03.2010 в 14:01)
| |
мма в там что если капча введена не верно а все оставльные поля заполненны так как нужно то обьявление все равно добовляется
привожу код проверки для подсветки еще <php напишу на самом деле в коже его
[code
<?php
]var req = Create();
function ge(id)
{
return document.getElementById(id);
}
function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}
// Проверка введенного имени и сообщения и "включение" кнопки submit
function checkreq() {
path=document.nb_form2;
tmp=(path.gnl_name.value=="");
if (!tmp && (path.gnl_name.value.length < 3)) tmp=true;
path.nb_submit2.disabled=tmp;
if (tmp) return;
tmp=(path.detail.value=="");
if (!tmp && (path.gnl_detail.value.length < 10)) tmp=true;
path.nb_submit2.disabled=tmp;
}
// Проверка корректности заполнения полей формы
function check() {
p_gnl_user=document.nb_form2.gnl_user.value.toString();
if (p_gnl_user=="") {
alert ("введите цену");
return false;
}
p_gnl_name=document.nb_form2.gnl_name.value.toString();
if (p_gnl_name!="") {
if (p_gnl_name.length<3 || p_gnl_name.length>20) {
alert ("Укажите заголовок (3-20 символов)!");
document.nb_form2.gnl_name.focus();
return false;
}
} else {
alert("Необходимо ввести заголовок!");
document.nb_form2.gnl_name.focus();
return false;
}
p_cat_name=document.nb_form2.elements[3].selectedIndex;
if (p_cat_name== 0) {
alert ("вибирите категорию и подкатегорию");
return false;
}
p_gnl_phone=document.nb_form2.gnl_phone.value;
p_gnl_email=document.nb_form2.gnl_email.value;
if ((p_gnl_phone =="")&&((p_gnl_email=="") || (p_gnl_email.indexOf ('@') == -1) || (p_gnl_email.indexOf ('.') == -1))) {
alert ("Введите коректный E-mail или номер телефона");
}
p_gnl_detail=document.nb_form2.gnl_detail.value.toString();
if (p_gnl_detail.length < 10) {
alert ("Необходимо ввести текст сообщения (не менее 10 символов)!");
document.nb_form2.gnl_detail.focus();
return false;
}
p_gnl_price=document.nb_form2.gnl_price.value.toString();
if (p_gnl_price=="") {
alert ("введите цену");
return false;
}
p_code=document.nb_form2.code.value.toString();
if (p_code=="") {
alert ("решите пример");
return false;
}
}
function Request(query)
{
req.open('post', 'check_captcha.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
req.send(query);
}
function Refresh()
{
if( req.readyState == 4 )
ge('ajax').innerHTML = req.responseText;
else
ge('ajax').innerHTML = '<img src="prel.gif" />';
}
function Pusk()
{
var query;
query ='code='+encodeURIComponent(ge('myid').value);
Request(query);
}
?>
|
| |
|
|
|
|
|
|
|
для: NoCash
(27.03.2010 в 13:45)
| | А что за проблема - ОК приема формы при неверном вводе кода каптчи? | |
|
|
|
|
|
|
|
для: sim5
(27.03.2010 в 13:14)
| | с сесиией разобрался) спс)) а вот со второй проблеммой может что нибудь предложите? | |
|
|
|
|
|
|
|
для: NoCash
(27.03.2010 в 13:08)
| | frm.php
<?
session_start();
if($_POST['cod']) echo 'Get code: '.$_POST['cod'].'<br>Set code: '.$_SESSION['cod'];
?>
<form action="" method="post">
<input type="text" name="cod"><br>
<input type="submit" value="Send">
</form>
<img src="cod.php" />
|
cod.php
<?
session_start();
$n = rand(1,15);
$_SESSION['cod'] = $n;
$im = imagecreate(80,30);
$bak = imagecolorallocate ($im, 255, 255, 255);
$txt = imagecolorallocate ($im, 233, 14, 91);
imagestring ($im, 5, 5, 5, $n, $txt);
header('Content-Type: image/png');
imagepng($im, null, 9);
imagedestroy($im);
?>
|
Запустите файл frm.php - если будет "опережение", можете бросить в меня камнем.
ge('ajax').innerHTML = '<img src="prel.gif" />'; - это что такое? | |
|
|
|
|
|
|
|
для: NoCash
(27.03.2010 в 13:08)
| | Вы меня достали, ей богу. Дело не вашем AJAX, а во взаимодействии (синхронизации) всех составляющих, которое у вас напрочь отсутсвует. Как все должно взаимодействовать, я вам написал. Не должно быть никаких опережений! | |
|
|
|
|
|
|
|
для: sim5
(27.03.2010 в 12:58)
| | тут провеятется и выводиться капча
<?php
session_start();
$txt= isset($_POST['code'])?$_POST['code']:NULL;
echo $txt, $_SESSION['code'];
if(strtolower($txt) == $_SESSION['code'])
{
echo '<font color="green">dfg!</font>';
} else
{
echo '<font color="red">234!</font>';
}
?>
|
тут форма с картинкой
<?php
{
$text .="<tr><td class='forumheader3' style='text-align:center'><div id='ajax'></td>
<td class='forumheader3'><input type='text' name='code' id='myid'></div><br>Решите пример с картинки<br><img src='captcha.php' border='0' > </td></tr>";
}
?>
|
ну AJAX для результата проверки
<script>
var req = Create();
function ge(id)
{
return document.getElementById(id);
}
function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}
function Request(query)
{
req.open('post', 'check_captcha.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
req.send(query);
}
function Refresh()
{
if( req.readyState == 4 )
ge('ajax').innerHTML = req.responseText;
else
ge('ajax').innerHTML = '<img src="prel.gif" />';
}
function Pusk()
{
var query;
query ='code='+encodeURIComponent(ge('myid').value);
Request(query);
</script>
|
вот таким вот образом у меня все сделано впринципе сдлеано все по тем же самым пунктикам как вы сказали | |
|
|
|
|