Здравствуйте, я не могу найти способ передать идентификатор капчи клиенту, для того, что бы он отправил ее обратно серверу POST запросом вместе с введенной капчей. В моем вопросе можно было бы использовать куки файл, но проблема в том, что капча обновляется каждый раз при нажатии на нее, не обновляя страницы, вот код: HTML: <img src='' onClick="InpCapt();" id="InpCaptcha"> <p><strong>Введите капчу</strong></p> <p><input maxlength="25" size="25" name="inpcap"></p> <input id="Send" type="submit" value="Отправить"> так же используется javascript: Код (Javascript): function InpCapt() { $('#InpCaptcha').attr('src', 'Captcha.php?r=' + Math.random()); } С помощью него капча обновляется. сам файл Captcha.php выглядит так: PHP: <?php $width = 200; //Ширина изображения $height = 100; //Высота изображения $font_size = 30; //Размер шрифта $let_amount = 5; //Количество символов, которые нужно набрать $fon_let_amount = 30; //Количество символов на фоне $font = "cour.ttf"; //Путь к шрифту //набор символов $letters = array("a","b","c","d","e","f","g","2","4","3","5","7","0","w","x","k","h"); //цвета $colors = array("90","110","130","150","170","190","210"); $src = imagecreatetruecolor($width,$height); //создаем изображение $fon = imagecolorallocate($src,255,255,255); //создаем фон imagefill($src,0,0,$fon); //заливаем изображение фоном for($i=0;$i < $fon_let_amount;$i++) //добавляем на фон буковки { //случайный цвет $color = imagecolorallocatealpha($src,rand(0,255),rand(0,255),rand(0,255),100); //случайный символ $letter = $letters[rand(0,sizeof($letters)-1)]; //случайный размер $size = rand($font_size-2,$font_size+2); imagettftext($src,$size,rand(0,45), rand($width*0.1,$width-$width*0.1), rand($height*0.2,$height),$color,$font,$letter); } for($i=0;$i < $let_amount;$i++) //то же самое для основных букв { $color = imagecolorallocatealpha($src,$colors[rand(0,sizeof($colors)-1)], $colors[rand(0,sizeof($colors)-1)], $colors[rand(0,sizeof($colors)-1)],rand(20,40)); $letter = $letters[rand(0,sizeof($letters)-1)]; $size = rand($font_size*2-2,$font_size*2+2); if($i<$let_amount/2) $x = ($i+1)*$font_size + rand(2,7); else $x = ($i+1)*$font_size - rand(2,7); //даем каждому символу случайное смещение $y = (($height*2)/3) + rand(0,5); $cod[] = $letter; //запоминаем код imagettftext($src,$size,rand(0,15),$x,$y,$color,$font,$letter); } $cod = implode("",$cod); //переводим код в строку session_start(); $_SESSION['code']=$cod; header ("Content-type: image/gif"); //выводим готовую картинку imagegif($src); ?> Ну и картинка, на всякий случай :
Добавь один инпут типа hidden. В функции сначала создай переменную, присвой в нее значение от math.random, затем добавь еще одну строчку, которая будет вставлять в инпут хидден значение этой переменной. Без компа мне неудобно написать это, но вообще суть ясна?