![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#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>'; ?> |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
![]()
Переменную $randgb необходимо сделать сессионной - $_SESSION['kapcha']. У Вас два запроса и связи между ними нет.
|
![]() |
![]() |
![]() |
#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> |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
![]()
Было бы странно,если бы что-то изменилось.
Вам нужно почитать про сессии и их использование(Сессии (сеансы) в PHP) - потому что принципа вы,похоже,не понимаете. Ваш новый "индекс" - странная смесь HTML и команд PHP... Вот примерный принцип вашей реализации - разбирайтесь: index.php: PHP код:
PHP код:
Последний раз редактировалось Andkorol; 25.09.2010 в 14:19. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 20.09.2010
Сообщений: 37
|
![]()
Спасибо. Подправил всё, теперь работает)))
|
![]() |
![]() |