Использование системной капчи со своими скриптами

#
Re: Использование системной капчи со своими скриптами
сейчас будет нервный срыв =) не получается

if ($captcha_result == true)
{
...
}


else
if ($captcha_result === false)
{
?>
       неверно!
<?php
}

При таком раскладе выводиться форма не выводиться а результат - неверно!

ку
Модератор
#
Re: Использование системной капчи со своими скриптами
compaq писал(а):
При таком раскладе выводиться форма не выводиться а результат — неверно!

Казнить нельзя помиловать?
#
Re: Использование системной капчи со своими скриптами
не издевайтесь =) больше нечего добавить -)))

сложно понимать да и резко изучить язык програмирования.

так и остался с этой проблемой, не понимая до конца что в коде происходит. была форма которая работает, как туда тремя строками добавить проверку капчи так и не понял - судя по интеграции в мануале.
ку
Модератор
#
Re: Использование системной капчи со своими скриптами
compaq писал(а):
не издевайтесь =) больше нечего добавить -)))

Вы прочитали выделенную цитату? Я из нее ничего не понял.

у Вас должно быть

// Вывод формы

if ($captcha_result == true)
{
// Здесь только отправка
}
else
{
? >
   Неверно введен код подтверждения!
<?php
}
#
Re: Использование системной капчи со своими скриптами
Капча начала проверять.

Но выводиться как форма так и логика else - неверно

+ перестало появляться инфо о необходимых полях

echo '<br /><b>Необходимо заполнить поле '.$empty_input[$i].'!</b>';
- выводиться.


<?php
error_reporting(1);

$Captcha = new Captcha();
$x1 = $Captcha->GetCaptchaId();
?>

<form action="" method="post">
<table border="0" cellpadding="5" cellspacing="0">
<tr>
<td width="30"><p align="left">Имя:<sup><font color="red">*</font></sup></p></td><td align="left"><input type="text" name="input_name[0]" size="35" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][0])), 0, 500);?>" /><input type="hidden" name="check[]" value="1" /></td>
</tr>
<tr>
<td width="30"><p align="left">Почта:<font color="red">*</font></sup></p></td>
<td align="left"><input type="text" name="input_name[1]" size="35" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][1])), 0, 500);?>" /><input type="hidden" name="check[]" value="1" /></td>
</tr>
<tr width="30" valign="top">
<td><p align="left">Сообщение:<font color="red">*</font></sup></p></td>
<td align="left"><textarea rows="7" cols="40" name="input_name[2]"><?=substr(htmlspecialchars(trim($_POST['input_name'][3])), 0, 10000);?></textarea><input type="hidden" name="check[]" value="1" />
   <!-- Обработка CAPTCHA -->
               <p>
                  Контрольные цифры
                  <sup>
                     <font color="red">*</font>
                  </sup>
               </p>

               <div style="float: left">
                  <img id="AddRecordCaptcha" style="border: 1px solid #000000" src="/captcha.php?get_captcha=<?=$x1?>" title="Код подтверждения" name="captcha"/>
               </div>

               <div id="captcha" style="clear:both;">
                  <img style="border: 0px" src="/hostcmsfiles/images/refresh.gif" /> <a href="javascript:void(0);" onclick="ReNewCaptchaById('AddRecordCaptcha', '{/document/captcha_key}', 30); return false;">Показать другое число</a>
               </div>

               <div style="float: left;margin-top: 5px">
                  <input type="hidden" name="captcha_key" value="<?=$x1?>"/>
            <input name="captcha_value" type="text" size="15">
               </div>

               <div id="captcha" style="clear:both;margin-bottom:10px;">
                  Введите число, которое указано выше.
               </div>
</td>
</tr>
<tr>
<td></td>
<td align="left"><input type="submit" value="Отправить" class="button" name="submit" /><br/><br/>
</td>
</tr>
</table>
</form>

<?php
$Captcha = new Captcha();

$captcha_result = $Captcha->ValidCaptcha($_POST['captcha_key'], $_POST['captcha_value']);

if ($captcha_result == true)
{
?>

<?php
function complete_mail() {

$empty_input[] = 'Имя';
$empty_input[] = 'Почта';
$empty_input[] = 'Сообщение';
for ($i=0; $i<count($_POST['input_name']); $i++) {
$_POST['input_name'][$i] = substr(htmlspecialchars(trim($_POST['input_name'][$i])), 0, 100000);
if(substr(htmlspecialchars(trim($_POST['check'][$i])), 0, 1) == 1) {
if(empty($_POST['input_name'][$i])) {
       $sendemail = 'No';
       echo '<br /><b>Необходимо заполнить поле '.$empty_input[$i].'!</b>';

}
}
}
if($sendemail == 'No') show_form();
$mess = '';
$mess .= '<b>Имя: </b>'.$_POST['input_name'][0].'<br />';
$mess .= '<b>Почтаl: </b>'.$_POST['input_name'][1].'<br />';
$mess .= '<b>Сообщение: </b>'.$_POST['input_name'][3].'<br />';
// подключаем файл класса для отправки почты
// если Вы забыли его скачать - http://www.php-mail.ru/class.phpmailer.zip
require 'class.phpmailer.php';

$mail = new PHPMailer();
$mail->From = '#';      // от кого email
$mail->FromName = 'обратная связь';   // от кого имя
$mail->AddAddress('s', '#'); // кому - адрес, Имя
$mail->IsHTML(true);        // выставляем формат письма HTML
$mail->Subject = 'd';  // тема письма
$mail->Body = $mess;



if($sendemail != 'No'){
// отправляем наше письмо
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
echo 'Спасибо! Ваше письмо отправлено.';
}
}
if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>


<?php
}
else
{
?>
    неверно
<?php
}

?>
ку
#
Re: Использование системной капчи со своими скриптами
4часа мозгового штурма и у меня получилось.

могу я попросить удалить данный топик?

cпасибо.
ку
Модератор
#
Re: Использование системной капчи со своими скриптами
compaq,
Столько дискуссий, пусть остается, может еще кому поможет.
#
Re: Использование системной капчи со своими скриптами
да уж - столько дискуссий где тупняк одного человека не знающего php

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

удалите сообщения тогда до вашего первого сообщения об этом иначе смысл?
ку
Модератор
#
Re: Использование системной капчи со своими скриптами
compaq,
Вы же написали рабочий вариант, другим он может пригодиться и понять принцип работы с капчей.
#
Re: Использование системной капчи со своими скриптами
Cистема ругается - пример

ЗАМЕЧАНИЕ:</strong> Undefined index:  input_name  в файле /home/www/usr/user/structure/Modules/Module86.php (строка 28)","2","-","http://site.ru/about/feedback/","ip"

ругань идет на поля

   <input type="text" id="field-name" name="input_name[0]" size="35" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][0])), 0, 500);?>" />


<img id="AddRecordCaptcha" style="border: 1px solid #000000" src="/captcha.php?get_captcha=<?=$x1?>" title="Код подтверждения"  alt=""/>


<input type="hidden" name="captcha_key" value="<?=$x1?>"/>



в коде выставлен error_reporting(1);

если убрать то лезут ошибки уже наглядно.

Как пофиксить?
ку
Авторизация