|
Постоянный
Регистрация: 19.02.2008
Сообщений: 438
С нами:
9591561
Репутация:
186
|
|
вернёмся к вопросу...
если написать:
for($i = 0; $i < 6; $i++) $fullRand = $rand[$i];
без точки, то естественно с каждым разом переменная $fullRand будет просто получать новые данные, но тогда всё работает, т.е. будет браться только последняя буква из капчи, а нужно, что бы всё буквы брались и заносились в одну переменную, для того, чтобы записать их в сессию. Это срабатывает, НО! Капча не выводится т.к. до неё не доходит $fullRand.
Ну и вот вам в общем капча, чтобы не разбегались в догадках...
PHP код:
<?php
session_start();
$image = imageCreate(100, 30);
imageColorAllocate($image, 255, 255, 255);
for($i = 0; $i < 10; $i++) $color[] = imageColorAllocate($image, mt_rand(0,240), mt_rand(0,240), mt_rand(0,240));
$abc = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','1','2','3','4','5','6','7','8','9');
for($i = 0; $i < 6; $i++) $rand[] = $abc[mt_rand(0,22)];
foreach($rand as $randOne) $fullRand .= $randOne;
//for($i = 0; $i < 6; $i++) $fullRand .= $rand[$i];
$_SESSION['captcha'] = $fullRand;
for($i = 0; $i < 6; $i++) imageTtfText($image,mt_rand(12,15),mt_rand(-20,20),15 * $i + mt_rand(4,8),mt_rand(20,25),$color[$i],'arial.ttf',$rand[$i]);
for($i = 0; $i < 3; $i++) imageArc($image, mt_rand(0,90), mt_rand(0,20), mt_rand(10,60), mt_rand(10,60), mt_rand(-380,0), mt_rand(0,380), $color[$i]);
header('Content-type: image/png');
imagePng($image);
?>
|