Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ввод цифр с картинки 
:(
    Опции темы
mr.Anderson
Дата 24.5.2007, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Покажите, пожалуйста, пример вывода какой-нить формы с отдельным полем для ввода цифр с искаженной картинки. Картинку тож надо формировать динамически через PHP.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
teroni
Дата 24.5.2007, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



PM MAIL   Вверх
Golda
Дата 24.5.2007, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 20
Всего: 42



Скачайте проект с http://captcha.ru/


--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
PARROT
Дата 25.5.2007, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Поиск!


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 25.5.2007, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Благодарю. smile


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
MoLeX
Дата 25.5.2007, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



приведу пример которым я когда то пользовался, может он тебе и поможет:
создаем сесию - 
Код

<?php
error_reporting(0);
$sid    =    session_id();
if(!$sid)
{
    session_start();
    $sid    =    session_id();
}
require("./config/session_config.php");
$noautomationcode = "";
for($i=0; $i<$config_max_digits;$i++)    $noautomationcode = $noautomationcode.rand(0,9);
$HTTP_SESSION_VARS["noautomationcode"] = $noautomationcode;
?>


сам код вызывается вот так - 
Код

<img src=./templas/mod/images.php?sid=<?=$sid ?>alt="Регистрационный код" title="Регистрационный код">


со скрытым полем:
Код

<input type='hidden' name='sid' value=<?=$sid ?>>


Скрипт генерирующий картинку выглядит так - 
Код

<?php
    error_reporting(85);

    $config_back_image    =    "fon_koda.jpg";
    $config_font        =    800;
    $config_code_color    =    "2b6081";
    $sid=trim($HTTP_GET_VARS["sid"]);

    session_id($sid);
    session_start();
    $noautomationcode = $HTTP_SESSION_VARS["noautomationcode"];
    $img_path    = dirname(__FILE__)."/$config_back_image";
    $img        = ImageCreateFromJpeg($img_path    );
    $img_size    = getimagesize($img_path );

    $fw = imagefontwidth ( $config_font );
    $fh = imagefontheight ( $config_font );

    $x = ($img_size[0] - strlen($noautomationcode) * $fw )/2;
    $y = ($img_size[1] - $fh) / 2;

    $color = imagecolorallocate($img,
                                hexdec(substr($config_code_color,1,2)),
                                hexdec(substr($config_code_color,3,4)), 
                                hexdec(substr($config_code_color,5,6))
                                );
    imagestring ( $img, $config_font, $x, $y, $noautomationcode, $color);
    imagejpeg($img);

?>


скрипт проверяющий правильность ввода кода - 
Код

<?php
    error_reporting(85);

    require("./config/session_config.php");
    $sid=trim($HTTP_POST_VARS["sid"]);

    session_id($sid);
    session_start();
    $noautomationcode = $HTTP_SESSION_VARS["noautomationcode"];

    $code = trim($HTTP_POST_VARS["code"]);
    if($code != $noautomationcode)
        {
            die("<br><br><h4><center>Произошла <font color='red'>ошибка</font> при воде кодового слова!!!<br> 
Пожалуйста, вернитесь назад и исправьте данные.</h4><br> <b><a href=# onClick='history.back()' title='вернуться назад'><<вернуться назад>></a></b> </center>");
        }
?>


Вот и фсе, по идее его нужно доработать.... smile 


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
mr.Anderson
Дата 26.5.2007, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Благодарю. smile Если CAPTCHA не подойдет, воспользуюсь вашим методом.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
mr.Anderson
Дата 27.5.2007, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Гм. Не стал постить новую тему, все равно перекликается по смыслу.

Так. Скачал KCAPTCHA. И сразу возникла проблема: как вывести какой-то текст на страницу, потом эту картинку с циферками, а после нее еще текст или другой контент? Ведь вывод картинки подразумевает отправку заголовка через header(), а если в браузере уже что-то есть, то возникает ошибка [i]headers already send by ...[/b]
Так как же этого избежать?

Вопрос 2. При нажатии на кнопку Отправить (тип кнопки submit), страница вроде обновляется, а картинка остается прежней. Я подозреваю, что она берется из кэша. Как запретить кэш?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Replicator
Дата 27.5.2007, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 30.4.2006
Где: Outer Heaven

Репутация: нет
Всего: нет



Ответ 1.

Скрипт, выдающий картинку вставляется через тег <img>


Ответ 2.

Отправь заголовки, запрещающие кешировать картинку. Или, как вариант, <img src="image.php?random_number" alt="" />
--------------------
 
PM WWW ICQ   Вверх
mr.Anderson
Дата 27.5.2007, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Replicator, а поподробнее о вставке рисунка через <img>, получая рисунок в скрипте? Только плз с объяснениями.

Это сообщение отредактировал(а) mr.Anderson - 27.5.2007, 17:50


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
teroni
Дата 28.5.2007, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



В HTML страницы <img src="image.php" alt="Проверочный код" />, а в этом самом image.php - генерация картинки и отправка её в браузер.
PM MAIL   Вверх
Golda
Дата 28.5.2007, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 20
Всего: 42



В решении задачи участвуют 2 скрипта (можно, конечно, и одним, вызывая с разными параметрами запроса, но обычно смысла нет).  Один скрипт формирует каритинку, в нем генерируется текст будущей captcha, собирается соответствующая картинка, выдаются заголовки  "Content-type" и т.д. и сама картика. Кроме картинки в его выводе ничего нет.

Вторая страница (она не обязательно должна быть динамической) содержит html,  в контексте которого должна быть выведена captcha. В месте, где Вам нужна картинка, пишете тег <img>, а в его src указываете URL скрипта, генерирующего captcha


Упс, опоздала  smile 

Это сообщение отредактировал(а) Golda - 28.5.2007, 00:20


--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
mr.Anderson
Дата 28.5.2007, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Цитата
Ведь вывод картинки подразумевает отправку заголовка через header(), а если в браузере уже что-то есть, то возникает ошибка headers already sent by

Цитата
выдаются заголовки  "Content-type"

Вот в этом и проблема. Нельзя отправить Content-type, если на странице уже есть содержание. Как тут быть?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Golda
Дата 28.5.2007, 22:07 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 20
Всего: 42



mr.Anderson, еще раз. Проблемы НЕ возникаетб поскольку в решении участвуют 2 файла. Когда Вы отправляете заголовки в файле, генерирующем captcha,  ЭТОТ файл еще ничего не выводил. Выводил другой, который его подключает в виде src, но это не имеет значения. Проблема возникает не при выводе в одно окно броузера, а при выводе одним и тем же скриптом при его последовательном выполнении. 


--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
mr.Anderson
Дата 29.5.2007, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Golda, понятно. Сейчас проэкспериментирую. smile


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0662 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.