|
|
|
| //////////// Файл first.php /////////////////
session_start();
echo '<img src="second.php" >';
echo "Hello!";
echo $_SESSION['code'];
if (isset($_SESSION['code'])) echo "Yes"; else echo "No";
|
//////////// Файл second.php /////////////////
session_start();
$code = "1234567";
$_SESSION['code'] = $code;
$image = ImageCreateFromJpeg("images/codeimg.jpg");
$text_color = ImageColorAllocate($image, 100, 100, 100);
Header("Content-type: image/jpeg");
ImageString($image, 5, 12, 2, $code, $text_color);
ImageJpeg($image, "", 50);
ImageDestroy($image);
|
В сессионном файле имеется запись:
При выполнении сценария файле first.php значение $_SESSION['code'] отсутствует, на экран
выводится изображение, строка "Hello!" и результат оператора условия "No".
Совершенно непонятно, почему не работает механизм сессий. В других сценариях с сессиями проблем нет.
Пробовал в файле second.php и first.php убирать строку session_start(); , но это на результат не повлияло.
Возможно как-то заголовок Header("Content-type: image/jpeg"); влияет, но, как я понимаю, не должен.
Кто может что подсказать по этому поводу?
Заранее спасибо. | |
|
|
|
|
|
|
|
для: Jodler
(27.12.2007 в 14:20)
| | Всё верно, так как сначала выполняется файл first.php, и лишь когда результат его выполнения загружается клиентом и клиент обращается к изображению - выполняется файл second.php. Более того, если изображения будут отключены, файл second.php вообще не выполнится. | |
|
|
|
|
|
|
|
для: Jodler
(27.12.2007 в 14:20)
| | Потому что, вы пытаетесь использовать переменную $_SESSION['code'] до того, как инициализируете ее. | |
|
|
|
|
|
|
|
для: Drago
(27.12.2007 в 14:44)
| | Спасибо большое. Теперь я понял, в чем была ошибка. | |
|
|
|