Intereting Posts
остановить прямой доступ (.htaccess) и разрешить запрос ajax в подпапку Чтение php-файла с использованием php-файла и экспорт excel Сохранять порядок ключей (стабильный сортировка) при сортировке с помощью uasort PHP PHP, SOAP, .NET – ссылка на объект не установлена ​​в экземпляр объекта WordPress Сохранить форму Option Customizer Совместная сессия между двумя веб-сайтами Добавить HTML-коды в XML-файл с помощью PHP Неустранимая ошибка: допустимый размер памяти в PHP при распределении меньше Ошибка пространства имен Symfony2 DoctrineFixturesBundle MAMP / PHP.INI: параметр date.timezone в phpinfo () показывает «нет значения», даже если значение установлено в php.ini Как обновить расширение curl PHP в Linux / Mac? Как сохранить изображение, созданное pChart, в файл? Отдельные значения, разделенные запятыми, из таблицы mysql TokenMismatchException в строке VerifyCsrfToken.php 53: (браузер Firefox) в laravel 5.1? Найти соответствующие скобки, используя регулярное выражение

PHP-скрипт, вызываемый ajax, не может выполнить start_session ()

У меня есть сценарий A, который вызывает session_start () вверху и создает некоторые переменные сеанса. Затем скрипт создает вызов ajax, вызывающий скрипт B:

$("#galleryContent").load("B.php", {op : 'get_thumbs' }, function() { $('.galleryThumb').draggable(thumb_dragOps); } s); 

B нуждается в доступе к скрипту переменных сеанса. Создайте так, чтобы session_start () попытался получить переменные. Но B session_start () зависает.

Я здесь что-то не так?

благодаря

Solutions Collecting From Web of "PHP-скрипт, вызываемый ajax, не может выполнить start_session ()"

Это связано с блокировкой; PHP блокирует файл сеанса во время его записи. Чтобы исправить это, закройте файл сеанса, когда вы закончите изменение переменных сеанса с помощью session_write_close() .

У меня была именно эта проблема в прошлом, и проблема была в блокировке. Просто не забудьте явно указать PHP, что вы сделали изменение сеанса, используя session_write_close() , и все должно быть в порядке.

Из документации :

Данные сеанса обычно сохраняются после завершения вашего сценария без необходимости вызова session_write_close() , но поскольку данные сеанса заблокированы для предотвращения одновременной записи, только один скрипт может работать в сеансе в любое время. При использовании наборов фреймов вместе с сеансами вы будете наблюдать за загрузкой кадров по одной из-за этой блокировки. Вы можете сократить время, необходимое для загрузки всех кадров, завершив сеанс, как только будут выполнены все изменения в переменных сеанса.

Примечание. Вы также можете настроить собственный обработчик сеанса и полностью исключить эту проблему блокировки файлов, сохраняя информацию о сеансе в базе данных. В любых масштабах это в значительной степени необходимо.