[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Немогу понять почему не формируется переменная
GET
Здравствуйте, не могу понять такую вещь

есть капча....которая в скрипте вызывается:

<img src="<?php echo "kap.php?".rand(0,time())?>" />


внутри kap.php формируется переменная $_SESSION['k']

так вот сразу после вывода картинки в скрипт ее почему - то нет...но она появляется при повоторном запуске скрипта при чем с опозданием...т.е. картинка уже новая, а $_SESSION['k'] предыдущая. Не могу понять, что за эффект. При новом объявлении картинка третья, а $_SESSION['k'] вторая т.е. опаздвает от картинки на 1 раз.

kap.php:

if (!isset ($_SESSION))
{
session_start ();
}
error_reporting(E_ALL);
$image_p = @imagecreatetruecolor(150, 150);
$_SESSION['k']='';//правильный ответ
imagejpeg($image_p);//выводим капчу



проверочный скрипт 1.php:

if (!isset ($_SESSION)){session_start ();}
//показываем все ошибки
error_reporting(E_ALL);

$_SESSION['m']='m проходит, k-';
echo "<img src='kap.php?".rand(0,time())."'/>";
echo $_SESSION['m'];
if (isset($_SESSION['k']))echo'Ok';else echo'No';




Спустя 1 час, 54 минуты, 20 секунд (19.12.2011 - 05:46) Игорь_Vasinsky написал(а):
блин.. была такая история.. не помню как решил.....тоже с капчей...

Спустя 9 минут, 24 секунды (19.12.2011 - 05:55) GET написал(а):
Вот здесь нашел чего-то похожее, но ссылка на которую автор ссылается нерабочая:

http://otvety.google.ru/otvety/thread?tid=1390bca82711d3d0

Спустя 24 минуты, 50 секунд (19.12.2011 - 06:20) Guest написал(а):
Убери условие вокруг старта сессии!

Спустя 2 минуты, 34 секунды (19.12.2011 - 06:23) GET написал(а):
Guest

так?

session_start ();
//показываем все ошибки
error_reporting(E_ALL);

$_SESSION['m']='m-';
echo "<img src='cwapcha2.php?".rand(0,time())."'/>";
echo $_SESSION['m'];
if (isset($_SESSION['k']))echo'Ok';else echo'No';


нет не робит (в том, генераторе картинке тоже ставил и убирал...)

Спустя 7 минут, 55 секунд (19.12.2011 - 06:31) Guest написал(а):
Полностью файл покажи.

Спустя 1 минута, 26 секунд (19.12.2011 - 06:32) GET написал(а):
Guest

в первом верхнем посту выложил

Спустя 2 минуты, 42 секунды (19.12.2011 - 06:35) inpost написал(а):
A.B.C.
А как ты убеждаешься, что сессия неправильная?
То есть нажимаешь обновить картинку, ПОТОМ отправляешь форму, и уже НА НОВОЙ СТРАНИЦЕ тебе пишется, что СЕССИЯ СТАРАЯ?

Спустя 1 минута, 29 секунд (19.12.2011 - 06:36) GET написал(а):
Да...inpost именно так, при первом нажатии сессия с скрипта-картинки вообще не приходит, но потом при обновлении приходит "старый ответ"...а картинка уже другая

Спустя 1 час, 21 минута, 23 секунды (19.12.2011 - 07:58) twin написал(а):
Почсему
$_SESSION['m']='m-';
определяется в файле с картинкой? Естественно она перезапишется.

Спустя 1 час, 36 минут, 44 секунды (19.12.2011 - 09:34) Гость_xes написал(а):
Есть сайт captcha.ru помоему я оттуда взял скрипт месяц назат на своей сайт прикрутил все прекрасно работает. Возми отуда.

Спустя 30 минут, 29 секунд (19.12.2011 - 10:05) sergeiss написал(а):
Цитата (A.B.C. @ 19.12.2011 - 04:51)
но она появляется при повоторном запуске скрипта при чем с опозданием...т.е. картинка уже новая, а $_SESSION['k'] предыдущая

Давай включим логику и подумаем.

1. Страница загружается в браузер. Капча еще не создана. А переменные $_SESSION уже есть!!!
2. Страница загрузилась, только затем формируется картинка для капчи. О-па... Получаем, что данные сессии внутри капчи сформировались позднее! Так что всё логично.

Тебе надо изменить логику, чтобы данные для капчи были известны ранее, еще до загрузки страницы в браузер. Как именно - подумай wink.gif

Спустя 30 минут, 14 секунд (19.12.2011 - 10:35) GET написал(а):
sergeiss

Цитата
1. Страница загружается в браузер. Капча еще не создана. А переменные $_SESSION уже есть!!!


все правильно...есть да не те...а может их и нет...нужные переменные сессии появляются внутри скрипта генерирующие картинку

капча картинки вставляется в конец странички, внутри сформированны переменные сессии, почему после картинки я их не вижу?

Спустя 1 минута, 6 секунд (19.12.2011 - 10:36) GET написал(а):
twin

Цитата
$_SESSION['m']='m-';


это другая переменная ..переменная внутри скрипта-капчи- $_SESSION['k']

Спустя 9 минут, 50 секунд (19.12.2011 - 10:46) Guest написал(а):
>почему после картинки я их не вижу?
Потому что весь скрипт уже на серваке отработан и отправлен тебе.
И только потом запускается скрипт kap.php формируя в браузере картинку.

sergeiss, правильно сказал.

Спустя 1 минута, 1 секунда (19.12.2011 - 10:47) sergeiss написал(а):
Цитата (A.B.C. @ 19.12.2011 - 11:35)
капча картинки вставляется в конец странички, внутри сформированны переменные сессии, почему после картинки я их не вижу?

Потому что я тебе уже написал чуть ранее: браузер сначала скачивает страницу, а потом уже начинает качать данные для картинок, указанные в ней. Поэтому тебе нужно пересмотреть логику работы с капчей:
Цитата (sergeiss @ 19.12.2011 - 11:05)
Тебе надо изменить логику, чтобы данные для капчи были известны ранее, еще до загрузки страницы в браузер.


Спустя 5 минут, 22 секунды (19.12.2011 - 10:52) GET написал(а):
sergeiss

ok...спасибо буду думать

Спустя 36 минут, 39 секунд (19.12.2011 - 11:29) sergeiss написал(а):
A.B.C. - ну так что, надумал? smile.gif

На самом деле, всё просто. Сначала ты определяешь все параметры капчи, затем записываешь этот параметр в сессию. А уже из капчи обращаешься к сессии, считываешь этот параметр, и показываешь правильную капчу.

Спустя 16 минут, 9 секунд (19.12.2011 - 11:45) GET написал(а):
sergeiss

ну не получается...решил отказаться вообще от инклюда, а сделать капчу прямо в скрипте теперь дело в том, что картинка показвается в бинарном виде...т.е.

<img src="<?php  imagejpeg($image_p);?>" />


или

<img src="<?php  echo imagejpeg($image_p);?>" />


вылазит все в виде текста...

Спустя 2 минуты, 49 секунд (19.12.2011 - 11:48) GET написал(а):
sergeiss

посмотри пожалуйста мой первый пост...там два скрипта там ...$_SESSION['k'] как раз определяется до картинки

Спустя 2 минуты, 21 секунда (19.12.2011 - 11:50) sergeiss написал(а):
A.B.C. - забудь про свою последнюю (и совершенно неправильную) идею smile.gif и вернись к тому, что ты начал делать раньше. Но с учетом того, что я говорил.

Спустя 1 минута, 29 секунд (19.12.2011 - 11:52) sergeiss написал(а):
Цитата (A.B.C. @ 19.12.2011 - 12:48)
.там два скрипта там ...$_SESSION['k'] как раз определяется до картинки

Да ну? wink.gif

А это чьи слова???
Цитата (A.B.C. @ 19.12.2011 - 04:51)
внутри kap.php формируется переменная $_SESSION['k']


Спустя 2 минуты, 38 секунд (19.12.2011 - 11:54) GET написал(а):
sergeiss

Блин...все верно...!...там просто капча мной придуманная ...все верно надо вынести вычисления за скрипт создания изображения...все даже проще вырисовывается!


спасибо!!!

Спустя 57 секунд (19.12.2011 - 11:55) GET написал(а):
там массив просто ассоциативный надо разделить на два простых

Спустя 13 минут, 25 секунд (19.12.2011 - 12:09) GET написал(а):
sergeiss

Блин, а как предать в файл то эти вычисленые значения...сессии там не работают при подключении инклюдом

Спустя 48 секунд (19.12.2011 - 12:10) GET написал(а):
в файл-где образуется imagejpeg($image_p);

Спустя 4 минуты, 11 секунд (19.12.2011 - 12:14) GET написал(а):
sergeiss

извини я дико затупил!...все в порядке...smile.gif))))) вторые сутки уже не сплю


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.