Помогите прикрутить капчу

Статус
В этой теме нельзя размещать новые ответы.

MAD-BOYT

Постоялец
Регистрация
22 Ноя 2007
Сообщения
78
Реакции
8
Привет, всем гуру PHP))
Есть форма обратной связи
Код:
function complete_mail() {
$empty_input[] = 'Ваше имя';
$empty_input[] = 'Ваш Email';
$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 '<div class="contact-note">Необходимо заполнить поле '.$empty_input[$i].'!</div>';
}}}
if($sendemail == 'No') show_form();
$mess = '';
$mess .= '<b>Ваше имя: </b>'.$_POST['input_name'][0].'<br />';
$mess .= '<b>Ваш Email: </b>'.$_POST['input_name'][1].'<br />';
$mess .= '<b>Ваше сообщение: </b>'.$_POST['input_name'][3].'<br />';
require 'scripts/phpmail/class.phpmailer.php';
$mail = new PHPMailer();
$mail->From = '**************';
$mail->FromName = 'MAIL.SITE';
$mail->AddAddress('**************', '**************');
$mail->IsHTML(true);
$mail->Subject = 'MAIL.SITE';
$mail->Body = $mess;
if(isset($_FILES['file_name'])) {
if($_FILES['file_name']['error'][0] == 0){
$mail->AddAttachment($_FILES['file_name']['tmp_name'][0], $_FILES['file_name']['name'][0]);
}}
if($sendemail != 'No'){
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
echo '<div class="contact-note">Спасибо! Ваше письмо отправлено.<br />В ближайшее время мы с Вами свяжемся.</div>';
}}
if (!empty($_POST['submit'])) complete_mail();
else show_form();
И есть проверка капчи
Код:
if ($this->gd_loaded && ($_SESSION['captcha_code'] != $_POST['captcha_code'] || empty($_POST['captcha_code'])))
	{
	$this->error = 'Неверно введено число с картинки';
}
Я в PHP не секу, а методом "тыка" нечего не получается.
Как подправить проверку под эту форму? Да и вообще как на ваш взгляд сама форма?
Капчу выдернул из одного скрипта магазина. понравилась тем, что всего одиним файлом)

А то спам - "малость" надоел)

ЗЫ. и еще вопросик. как прописать определенные типы прикрепляемых файлов?
В форме нет проверки вообще не какой.

Заранее спасибо. БОЛЬШОЕ!
 
Заюзай Для просмотра ссылки Войди или Зарегистрируйся, там все с мануалом и пошагово
А по второму вопросу, афаик, нельзя задавать в хтмл допустимые типы файлов, надо на стороне сервера проверять
 
Предоставил оч мало данных, где сам скрипт капчи чтоб его инклудить? Где текстовое поле в скрипте чтоб с него постить введеный код и сравнивать его?
Если хочеш чтобы помогли, предоставь больше данных.
 
Предоставил оч мало данных, где сам скрипт капчи чтоб его инклудить? Где текстовое поле в скрипте чтоб с него постить введеный код и сравнивать его?
Если хочеш чтобы помогли, предоставь больше данных.

А какие еще данные нужны? Как инклудится я хз. я капчу выдернул из другого скрипта. Мне бы главное проверку воткнуть в форму и все.
 
скачать скрипт каптчи

в архиве есть файл с примером form_example.php

надо запустить сессию если нету где нибудь в начале скрипта
session_start();

добавить в форму картинку и поле для кода
<img src="kcaptcha/index.php?<?php echo session_name()?>=<?php echo session_id()?>">
<input type="text" name="keystring">

и при получении данных проверить код session с post в функции complete_mail() где нибудь в конце
PHP:
function complete_mail() {
//...


if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring']){
    //echo "Код правельный";
}else{
    $sendemail = 'No';
    echo "Код неправельный";
}
unset($_SESSION['captcha_keystring']);
}
 
Огромное спасибо! Все прекрасно заработало.
 
а с phpmailer эта капча работает?
 
в моем случае нужно было просто вставить
PHP:
if(count($_POST)>0){
	if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring']){
	include 'blabla.php';
		//echo "Correct";
	}else{
		echo "Не правильный код";
	}
}
unset($_SESSION['captcha_keystring']);
но возможно это просто детали...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху