[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с Катп рчей...
El` Mor
Приветствую.
Проблема соответственно в том, что дома (слизаный с онлайн урока) катпча работает... а вот на хостинге нет... не могу понять (не хватает знаний) в чем загвоздка...

Вот файл каптчи:

function getRandomStrings($length, $case = 'lower')
{
/*
create an array of banned latin chars - to similar to cirylic ones
both in lower & upper case
*/

$ban_chr = array('a', 'b', 'c', 'e', 'o', 'p', 'x', 'l',
'A','B','C','E','H','K','M','O','P','T','X' );

// depending on case of string define the range of choise
switch($case)
{
case 'both':
$rand_ch = array_merge(range('A','Z'),range('a','z') );
break;

case 'upper':
$rand_ch = range('A','Z');
break;

case 'lower':
default:
$rand_ch = range('a','z');
break;
}

// add numbers no 0 - it's similar to capital o - O0
$rand_ch = array_merge( range(1, 9),$rand_ch );

// delete the banned characters
$rand_ch = array_diff($rand_ch, $ban_chr);

//shuffle the array
shuffle($rand_ch);

// cutting from the array needed length
$chars = array_slice($rand_ch, 0, $length);

// implode — Join array elements with a string
return implode('', $chars);

}


///////////////////////////////////////////////////////////////////////////////////////////////////

// register captcha variable & start of session
session_register('captcha');
session_start();

$captcha_size = 5;



// get random string
$string = getRandomStrings($captcha_size, 'lower');

//captcha param hight & width
$cap_wid = 108;
$cap_hig = 25;


// pixels at the bottom for the string : press to change
$cap_low = 15;

// number of lines in captcha
$cap_lines = 4;

//build the empty image for captcha
$captcha = imagecreatetruecolor( $cap_wid, $cap_hig +$cap_low);

// get the random color for the background
$bg = imagecolorallocate($captcha, mt_rand(10,50),mt_rand(10,50),mt_rand(0,250));

//random color for the text of the captcha
//int mt_rand ( int $min , int $max ) - Generate a better random value

$font_color = imagecolorallocate( $captcha, mt_rand(220, 255), mt_rand(220, 255),mt_rand(220, 255) );

// create black & white images
$white = imagecolorallocate($captcha, 255,255,255);
$black = imagecolorallocate($captcha, 0,0,0);

//Performs a flood fill starting at the given coordinate (top left is 0, 0) with the given color in the image.
// leave bellow the space for the text

imagefill($captcha, 0,0, $white);
imagefilledrectangle($captcha, 0, 0, $cap_wid, $cap_hig, $bg);

// scatter the given number of random length lines
for( $i = 0; $i < $cap_lines; $i++)
{
//create the color different for every line
$color = imagecolorallocate($captcha, mt_rand(170,255), mt_rand(170,255), mt_rand(170,255) );

//draw the line between the random points
imageline( $captcha,
mt_rand(0, $cap_wid - 1),
mt_rand(0, $cap_hig - 1),
mt_rand(0, $cap_wid - 1),
mt_rand(0, $cap_hig - 1),
$color
);
}

// write the $string with captcha text to image
imagestring($captcha, 5, 33,4,$string, $font_color);

$how_ref = 'Press to change' ;

imagestring($captcha, 3, 2, 26, $how_ref, $black);

//save the string in the session
$_SESSION['captcha'] = $string;

// sending brouser headers,
header('Content-Type: image/png');

// sending the image to standart output
imagepng($captcha);


Ну соответственно проверка:

if(!empty($_SESSION['captcha']) && ($_SESSION['captcha'] == $_POST['txtCaptcha']) )

Дома при наборе правильном проходит...
На сервере нет ...




Спустя 41 секунда (22.09.2010 - 11:56) Basili4 написал(а):
а чего на серавере пишет то ?

Спустя 5 минут, 10 секунд (22.09.2010 - 12:02) El` Mor написал(а):
а ничего, просто при вводе правильной строчки реагирует как на неправильную...
Ну я сделал вывод - мол каптча неправильная...

if($ok)
if( !empty($_SESSION['captcha']) &&($_SESSION['captcha'] == $_POST['txtCaptcha']) )

{


$info[] ='bla bla bla';

}


}

else
$info[] = WRONG_CAPTCHA;

else
$info[] = GUESTBOOK_ENTER_MESSAGE;



Ps. бла бла бла я сейчас написал... как пример того, что оно НЕ выводит sad.gif
оно сразу на
else
$info[] = WRONG_CAPTCHA;
переходит... но опять же - тома все отлично работает..


Спустя 58 минут, 48 секунд (22.09.2010 - 13:00) Basili4 написал(а):
а $ок случайно не из $_POST или $_GET берется если да то как ?

Спустя 42 минуты, 35 секунд (22.09.2010 - 13:43) El` Mor написал(а):
$ok = !empty( $_POST['ok'] ) ? true : false;


Это кнопа типа сенд...

Спустя 21 минута, 22 секунды (22.09.2010 - 14:04) El` Mor написал(а):
Забыл сразу написать - выражение которым вы интересуетесь работает. проверено на практике smile.gif

Спустя 5 минут, 4 секунды (22.09.2010 - 14:09) Basili4 написал(а):
El` Mor
Ну значит только одно сессия не работает Это может быть но нескольким причинам
1. не указано session_satrt
2. браузер не принимает куки
3. Сессия открывается в другой группе см. session_name()

Спустя 7 минут, 33 секунды (22.09.2010 - 14:17) El` Mor написал(а):
Цитата (Basili4 @ 22.09.2010 - 11:09)
El` Mor
Ну значит только одно сессия не работает Это может быть но нескольким причинам
1. не указано session_satrt
2. браузер не принимает куки
3. Сессия открывается в другой группе см. session_name()

Это был конфликт сессий. Спасибо !
Поставил в одном месте

session_register('captcha');

session_start();

и зарботало!
Быстрый ответ:

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