Добър ден съфорумници,
Интегрирам си една моя система със SMF форум , но се сблъсках с един доста неприятен проблем. В страничка, където се коментират разни неща съм сложил една capthca , която се намира във външен файл(кодовете ще постан най-отдолу). Слагам я по обичайния начин:
Имам и една javascript функцийка коята да рефрешва изображението.
Всичко OK, докато се стигне до момента със вземането на стойността на картинката от $_SESSION. Проблема е в това, дава че въпросния индекс на масива $_SESSION['cap'] не е дефиниран. Ок, когато си дам
си изкарва всички стойностти на SMF-то, но не и мойта капча. Това бих го преглътнал, ама и в бъдеще да ми се прецакват така сесиите ще ми създава много ядове. Ето тук ще сложа кода на капчата:
Благодаря предварително.
Поздрави
Интегрирам си една моя система със SMF форум , но се сблъсках с един доста неприятен проблем. В страничка, където се коментират разни неща съм сложил една capthca , която се намира във външен файл(кодовете ще постан най-отдолу). Слагам я по обичайния начин:
HTML:
<img src="captcha.php" alt="Код против ботове" />
Имам и една javascript функцийка коята да рефрешва изображението.
Всичко OK, докато се стигне до момента със вземането на стойността на картинката от $_SESSION. Проблема е в това, дава че въпросния индекс на масива $_SESSION['cap'] не е дефиниран. Ок, когато си дам
PHP:
print_r($_SESSION);
си изкарва всички стойностти на SMF-то, но не и мойта капча. Това бих го преглътнал, ама и в бъдеще да ми се прецакват така сесиите ще ми създава много ядове. Ето тук ще сложа кода на капчата:
PHP:
<?php
session_start();
header("Content-type:image/png");
define("WIDTH",80);
define("HEIGHT",25);
define("USE_UPPERCASE",false);
define("LENGTH",6);
$str = "abcdefghijklmnopqrstuvwxyz1234567890";
if(USE_UPPERCASE) $str .= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$str = substr(str_shuffle($str),0,LENGTH);
$_SESSION["cap"] = $str;
$captcha = imagecreate(WIDTH,HEIGHT);
$bg = imagecolorallocate($captcha,255,255,255);
$text = imagecolorallocate($captcha,0,0,0);
$dots = imagecolorallocate($captcha,0,0,0);
imagestring($captcha,5,15,5,$str,$text);
for($i = 0;$i<round(WIDTH*HEIGHT/10);$i++)
{
imagesetpixel($captcha,rand(0,WIDTH),rand(0,HEIGHT),$dots);
}
imagepng($captcha);
imagedestroy($captcha);
?>
Благодаря предварително.
Поздрави