Подскажите, пожалуйста, почему вызов класса KCAPTCHA (формирование картинки) в браузере Opera и Explorer происходит одинаково, а вот назначение сессии в организованной форме, в Opera происходит один раз. Вот исходник вызываемого файла: Код (Text): include('kcaptcha.php'); if(!isset($_REQUEST[session_name()])){ session_start(); } $captcha = new KCAPTCHA(); if($_REQUEST[session_name()]){ $_SESSION['captcha_keystring'] = $captcha->getKeyString(); } если вызывать этот файл без формы, сессия назначается нормально. В чем причина?
в скрипте построения картинки задаются: Код (Text): header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', FALSE); header('Pragma: no-cache'); разве это не решает проблемы?
Это может создавать проблемы, если отправка заголовков происходит после любого вывода данных. Если в kcaptcha.php есть какой-нибудь вывод, то сессия не запустится. Для старта сессии тоже требуется отправка заголовка.
причем, заметил одну особенность: НА локальном сервере, всё работает прекрасно, а вот при перенесении на виртуальный хостинг в браузере Opera сессия обновляться прекращает.
я уже убирал - не помогает решению задачки. Причем, повторюсь, на локальном сервере прокатывает и то и другое, а вот после заливки на виртуальный хостинг, работать перестает. если на прямую вызвать генерацию картинки - www.site.ru/img.php то работает нормально и сессии назначаются правильно. а встроенная в форму, не хочет! может мета тэги какие-то нужны?
PHP: <? session_start(); include('kcaptcha.php'); $captcha = new KCAPTCHA(); if($_REQUEST[session_name()]){ $_SESSION['captcha_keystring'] = $captcha->getKeyString(); } ?> Попробуй перепеши скрипт таким образом...