Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.08.2011, 14:39   #1
AVF83
 
Регистрация: 26.04.2011
Сообщений: 7
По умолчанию Проблемы с kcaptcha (php)

Была прикручена ckaptcha (Круглов С.) к сайту на локальном хосте (linux apache) в форме обратной связи. Всё работало, письма с локального хоста отправлялись. При размещении сайта на хостинге возникла проблема: письма не отправляются по причине того, что постоянно "неправильно введён код". При этом код отображается, обновляется, но при его введении (в форме) и попытке отправить письмо пишет "неправильный код". В чём может быть проблема? Ведь если на локальном сервере всё работает, значит, программа правильная! Хостер говорит, что все логи нормальные, настройки позволяют работать с формами обратной связи и с каптчами. Получается, что session неправильно работает? Пути вроде бы правильные.

Здесь привожу участки кода:

- файл шаблона страницы:
Код HTML:
............................
<div id="a-c-t-form">
<?php include(GSTHEMESPATH.$TEMPLATE.'/mail/index.php'); ?>
<div class="form-text">
<p id="emailSuccess"><strong style="color: green;"><?php echo "$statusSuccess" ?></strong></p>
<p id="emailError"><strong style="color: red;"><?php echo "$statusError" ?></strong></p>
</div>
<form action="./" method="post">
<p><input type="hidden" name="act" value="act"></p>
<p><input class="text" type="text" value="Ваше имя" name="posName" id="posName"></p>
<p><input class="text" type="text" value="Ваш E-mail" name="posEmail" id="posEmail"></p>
<p><input class="text" type="text" value="Ваша тема" name="posRegard" id="posRegard"></p>
<p><textarea value="Ваш вопрос" name="posText" id="posText">Ваш вопрос</textarea></p>

<p><img class="imgcod" src="<?php get_theme_url(); ?>/mail/kcaptcha?<?php echo session_name() ?> = <?php echo session_id() ?>"></p>

<p><input class="cod" type="text" value="Код на картинке" name="keystring" id="keystring"></p>

<p><input class="submit" type="submit" name="selfCC" id="selfCC" value="Отправить"></submit></p>
</form>
..........................
- файл контактной формы (лежит в папке mail)

PHP код:
<?php include('kcaptcha/kcaptcha.php');
session_start();

$mailto "pochta@domen.ru";
$subject $_POST['posRegard'];
$message $_POST['posText'];
$statusError "";
$statusSuccess "";
$errors_name 'Введите Ваше имя!';
$errors_mailfrom 'Введите Ваш E-mail!';
$errors_incorrect 'Неверный E-mail!';
$errors_message 'Пустое сообщение!';
$errors_subject 'Пустая тема письма!';
$captcha_error 'Неверный код!';
$send 'Сообщение отправлено!';

if(
$_POST['act']== "act")
{ if(isset(
$_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring'])
{ if(isset(
$_POST['posName']) && $_POST['posName'] == "") {$statusError "$errors_name";}
elseif(isset(
$_POST['posEmail']) && $_POST['posEmail'] == "") {$statusError "$errors_mailfrom";}
elseif(isset(
$_POST['posEmail']) && !preg_match("/^[a-z0-9_\.\-]+@([a-z0-9\-]+\.)+[a-z]{2,6}$/i"$_POST['posEmail'])) {$statusError "$errors_incorrect"; unset($_POST['posEmail']);}
elseif(isset(
$_POST['posRegard']) && $_POST['posRegard'] == "") {$statusError "$errors_subject";}
elseif(isset(
$_POST['posText']) && $_POST['posText'] == "") {$statusError "$errors_message";}
elseif(!empty(
$_POST))
$headers "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/plain; charset=utf-8\r\n";
$headers .= "Date: ".date("Y-m-d (H:i:s)",time())."\r\n";
$headers .= "From: \"".$_POST['posName']."\" <".$_POST['posEmail'].">\r\n";
$headers .= "X-Mailer: My Send E-mail\r\n";
$body iconv("koi8-r""koi8-r"$message);
mail("$mailto","$subject","$body","$headers");
unset(
$name$posText$mailto$subject$posRegard$message);
$statusSuccess "$send";
}
}
else {
$statusError "$captcha_error"; unset($_SESSION['captcha_keystring']);}
}
?>
- главный файл капчи (лежит в папке mail/kcaptcha)

PHP код:
<?php error_reporting (E_ALL);

/* Using (как бы оригинал...):

<?php session_start(); ?>
<form action="./" method="post">
<p>Enter text shown below:</p>
<p><img src="PATH-TO-THIS-SCRIPT?<?php echo session_name()?>=<?php echo session_id()?>"></p>
<p><input type="text" name="keystring"></p>
<p><input type="submit" value="Check"></p>
</form>
<?php
if(count($_POST)>0)
{ if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring'])
{echo "Correct";}
else {echo "Wrong";}
}
unset($_SESSION['captcha_keystring']);
?>

*/

include('kcaptcha.php');
if(isset(
$_REQUEST[session_name()])){session_start();}
$captcha = new KCAPTCHA();
if(
$_REQUEST[session_name()]){$_SESSION['captcha_keystring'] = $captcha->getKeyString();}

?>
Делай что должен, и будь что будет!
AVF83 вне форума Ответить с цитированием
Старый 01.08.2011, 20:58   #2
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Переменная капчи обнуляется после использования?
Виталий Желтяков вне форума Ответить с цитированием
Старый 01.08.2011, 22:57   #3
AVF83
 
Регистрация: 26.04.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Виталий Желтяков Посмотреть сообщение
Переменная капчи обнуляется после использования?
А где это посмотреть, обнуляется переменная или нет? Сама капча изменяется после перезагрузки страницы, но пишет "неправильный код", хотя я его ввожу правильный. Т.е. тут капча как бы работает, но при этом код воспринимает как неправильный...
Делай что должен, и будь что будет!
AVF83 вне форума Ответить с цитированием
Старый 02.08.2011, 07:48   #4
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
А где это посмотреть, обнуляется переменная или нет?
Я почём знаю? Это ваши скрипты.

У Вас либо значение капчи не обнуляется после использования, либо значения сессии сбрасываются.
Попробуйте вывести через echo значение $_SESSION['captcha_keystring']
Виталий Желтяков вне форума Ответить с цитированием
Старый 02.08.2011, 23:07   #5
AVF83
 
Регистрация: 26.04.2011
Сообщений: 7
По умолчанию

Ок! Сейчас попробую, спасибо!
Делай что должен, и будь что будет!
AVF83 вне форума Ответить с цитированием
Старый 20.01.2012, 19:38   #6
cop999
Новичок
Джуниор
 
Регистрация: 20.01.2012
Сообщений: 1
По умолчанию

Цитата:
Сообщение от AVF83 Посмотреть сообщение
Ок! Сейчас попробую, спасибо!
Здравствуйте, AVF83
Подскажите пожалуйста как вы решили эту проблему?

С уважением,

Алекс
cop999 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
KCaptcha и Firefox KPEATuBHO PHP 1 31.05.2011 03:24
Проблемы с кодировкой в php+MySql Anoobis PHP 1 21.01.2011 15:40
kcaptcha и ajax vvzone PHP 3 02.06.2010 19:20
Не работает kcaptcha Ruska882009 PHP 1 12.11.2009 16:43
проблемы с cсылками в php vanDJ PHP 2 22.08.2008 14:37