|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.09.2010, 20:32 | #1 |
Пользователь
Регистрация: 20.09.2010
Сообщений: 37
|
Каптча
Всем привет. Тут небольшая проблемка с каптчёй. Картинка выводится, но переменная $randgb не передаётся в индексный файл. Исправте ошибку пжл? (если можно, с комментариями)
Код: файл chislo.php: <?php header ("Content-type: image/gif"); $randgb = chr(mt_rand(65, 90)).chr(mt_rand(65, 90)).chr(mt_rand(65, 90)).chr(mt_rand(65, 90)); $image = imagecreate(mt_rand(65,68), mt_rand(38,34)); $col_fon = imagecolorallocate($image, mt_rand(200,255), mt_rand(200,255), mt_rand(200,255)); $col_text = imagecolorallocate($image, 0,0,0); $ttf = mt_rand(1,2).'.ttf'; $col_line = imagecolorallocate($image, $col_text1, $col_text2, $col_text3); $col_line2 = imagecolorallocate($image, $col_text1, $col_text2, $col_text3); $col_line3 = imagecolorallocate($image, mt_rand(0,250), mt_rand(0,250), mt_rand(0,250)); $x = 7; $y = 25; imagettftext($image, 20, 0, $x, $y, $col_text, $ttf, $randgb); ?> Файл ввода данных и каптчи (т.е. индексный файл): <?php require_once $_SERVER['DOCUMENT_ROOT'].'/connect.php'; echo '<form action="?add=addgb2" method="POST"> Имя:<br> <input type="text" name="namegb"><br> Сообщение:<br/> <textarea name="textgb" cols="29" rows="4">Текст</textarea><br> <img src="/gb/chislo.php" alt=""/><br> Введите число:<br/> <input type="text" name="chislogb"/><br/> <input type="submit" value="Отправить"/> </form>'; ?> |
21.09.2010, 22:38 | #2 |
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
Переменную $randgb необходимо сделать сессионной - $_SESSION['kapcha']. У Вас два запроса и связи между ними нет.
|
25.09.2010, 01:22 | #3 |
Пользователь
Регистрация: 20.09.2010
Сообщений: 37
|
Виталий Желтяков, спасибо. Вот, немного подправил файлы, но ничего тольком не изменилось chislo.php:
<?php session_start(); header ("Content-type: image/gif"); $randgb = mt_rand(1111, 9999); $_SESSION['randgb'] = $randgb; $image = imagecreate(mt_rand(65,68), mt_rand(38,34)); $col_fon = imagecolorallocate($image, mt_rand(200,255), mt_rand(200,255), mt_rand(200,255)); $col_text1 = mt_rand(0,150); $col_text2 = mt_rand(0,150); $col_text3 = mt_rand(0,150); $col_text = imagecolorallocate($image, $col_text1, $col_text2, $col_text3); $ttf = mt_rand(1,2).'.ttf'; $x = mt_rand(6, 9); $y = mt_rand(24, 25); imagettftext($image, 20, mt_rand(-4,4), $x, $y, $col_text, $ttf, $randgb); imagegif($image); ?> индекс: <form action="?add=addgb2" method="POST">'; echo 'Имя:<br> <input type="text" value="" name="namegb"><br> Сообщение:<br/> <textarea name="textgb" cols="29" rows="4">Текст</textarea><br> <img src="/gb/chislo.php" alt=""/><br> Введите символы с картинки выше:<br> <input type="text" name="chislogb"/><br/>'; echo $randgb; echo '<input type="submit" value="Отправить"/> </form> |
25.09.2010, 14:07 | #4 |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Было бы странно,если бы что-то изменилось.
Вам нужно почитать про сессии и их использование(Сессии (сеансы) в PHP) - потому что принципа вы,похоже,не понимаете. Ваш новый "индекс" - странная смесь HTML и команд PHP... Вот примерный принцип вашей реализации - разбирайтесь: index.php: PHP код:
PHP код:
Последний раз редактировалось Andkorol; 25.09.2010 в 14:19. |
26.09.2010, 21:09 | #5 |
Пользователь
Регистрация: 20.09.2010
Сообщений: 37
|
Спасибо. Подправил всё, теперь работает)))
|