[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Captcha
kss
Здравствуйте, скажите, пожалуйста, что не так в этом скрипте каптчи. проблема вот в чем - скрипт выводит картинку с буквами не теми, которые записывает в сессию. Т.е. код всегда не верен. Скрипт построен на проверке jquery
вот код генерации

session_start();
$string = '';
for ($i = 0; $i < 5; $i++) {
$string .= chr(rand(97, 122));
}
$_SESSION['random_number'] = $string;
$dir = 'fonts/';
$image = imagecreatetruecolor(165, 50);
// random number 1 or 2
$num = rand(1,2);
if($num==1)
{
$font = "Capture it 2.ttf"; // font style
}
else
{
$font = "Molot.otf";// font style
}
// random number 1 or 2
$num2 = rand(1,2);
if($num2==1)
{
$color = imagecolorallocate($image, 113, 193, 217);// color
}
else
{
$color = imagecolorallocate($image, 163, 197, 82);// color
}
$white = imagecolorallocate($image, 255, 255, 255); // background color white
imagefilledrectangle($image,0,0,399,99,$white);
imagettftext ($image, 30, 0, 10, 40, $color, $dir.$font, $_SESSION['random_number']);
header("Content-type: image/png");
imagepng($image);


Затем проверка правильности кода

session_start();

if (!isset($_SESSION['random_number']))
{
echo 1;

} else {
echo 0;};
?>


И собственно скрипт который запускает проверку при нажатии кнопки

$(document).ready(function() { 

$('#Send').click(function() {

$.post("post.php?"+$("#MYFORM").serialize(), {

}
, function(response){

if(response==1)
{
$("#after_submit").html('');
$("#Send").after('<label class="success" id="after_submit">Your message has been submitted.</label>');
change_captcha();

}
else
{
$("#after_submit").html('');
$("#Send").after('<label class="error" id="after_submit">Error ! invalid captcha code .</label>');
}


}
);

return false;
});

// refresh captcha
$('img#refresh').click(function() {

change_captcha();
});

function change_captcha()
{
document.getElementById('captcha').src="get_captcha.php?rnd=" + Math.random();
}

function clear_form()
{
$("#name").val('');
$("#email").val('');
$("#message").val('');
}
}
);




Спустя 13 минут, 26 секунд (18.03.2012 - 16:15) GET написал(а):
А что 1 пишет? Если нет, то попробуй вместо echo 0; поставь echo $_SESSION['random_number']; сто будет писать?

по идее session_start(); достаточно только на главной прописать если остальные к ней инклюдами цепляются.

Может скрипт с генерацией повторно как-то запускается?

Спустя 2 минуты, 2 секунды (18.03.2012 - 16:17) kss написал(а):
я вывел сессию и получил что изображение отличается от того. что есть на самом деле

Спустя 5 минут, 17 секунд (18.03.2012 - 16:22) Visman написал(а):
session_start();

if (!isset($_SESSION['random_number']))
{
echo 1;

} else {
echo 0;};
?>

Это ни как не тянет на проверку правильности кода.

Спустя 5 минут, 33 секунды (18.03.2012 - 16:28) kss написал(а):
Цитата (Visman @ 18.03.2012 - 13:22)
session_start();

if (!isset($_SESSION['random_number']))
{
echo 1;

} else {
echo 0;};
?>

Это ни как не тянет на проверку правильности кода.

Как это не тянет? Точно такая же проверка сессии у меня в скрипте регистрации стоит и все работает

Спустя 1 минута, 40 секунд (18.03.2012 - 16:29) GET написал(а):
т.е. сессия - код есть, но не совпадает, как - то было у меня чо-то подобное...помоему оказалось, что показывает предидущую сессию т.е. предидущего изображения

Как это не тянет? Точно такая же проверка сессии у меня в скрипте регистрации стоит и все работает

если эта вся проверка то это конечно не тянет я решил это упрощенный вариант у тебя просто...

Спустя 2 минуты, 32 секунды (18.03.2012 - 16:32) kss написал(а):
Ну а почему же в скрипте авторизации такая проверка пашет?

Спустя 1 минута, 52 секунды (18.03.2012 - 16:34) GET написал(а):
а где сверка с тем, что юзер ввел?

Спустя 1 минута, 55 секунд (18.03.2012 - 16:36) Visman написал(а):
Цитата (kss @ 18.03.2012 - 21:28)
Точно такая же проверка сессии у меня в скрипте регистрации стоит и все работает

Угу. В $_SESSION['random_number'] что записано? Текст с картинки?
Ты его сверил с тем, что юзер ввел?
Или простое существование переменной $_SESSION['random_number'] уже приравнивается к тексту с картинки?

Спустя 5 минут, 16 секунд (18.03.2012 - 16:41) kss написал(а):
if(@$_REQUEST['code'] || @strtolower($_REQUEST['code']) == strtolower($_SESSION['random_number']))
{

// insert your name , email and text message to your table in db

echo 1;// submitted

}
else
{
echo 0; // invalid code
}

Спустя 1 минута, 23 секунды (18.03.2012 - 16:42) kss написал(а):
Ребята не пашет сам код java, потому что я уже ввел вместо условия проверки просто echo 1 - НЕ ПАШЕТ

Спустя 1 минута, 52 секунды (18.03.2012 - 16:44) kss написал(а):
Ладно, решу пробЛЕМУ СООБЩУ! Еще вся ночь впереди

Спустя 1 час, 26 минут, 50 секунд (18.03.2012 - 18:11) kss написал(а):
Забил, Прочитал на английском форуме что она не работает. Скачаю другую. Не секу в Java, проблема в том что он как-то не так передают данные в php
Быстрый ответ:

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