В настоящее время я работаю над небольшой CMS для своего сайта, и при вызове session_start () я получаю следующую ошибку:
Неустранимая ошибка: Исключение выбрано без рамки стека Неизвестно в строке 0
- Сессия потеряна при переключении с HTTP на HTTPS в PHP
- Идентификаторы сеанса PHP - как они генерируются?
- Как получить доступ к сессии клиента Magento извне Magento?
- Как хранить сеансы базы данных в CodeIgniter с несколькими базами данных?
- Создать сеанс сеанса на 1 странице или на всех страницах?
- Как получить имя пользователя в joomla 3.2
Я храню подключение базы данных PDO в $ _SESSION, поэтому мне нужно вызвать session_start () непосредственно после запуска скрипта. Вот фрагмент:
function initDB($config){ //initalizes the database connection try{ @session_start(); }catch (Exception $e){ } $dsn = 'mysql:dbname='.$config['db'].';host='.$config['host']; $user = $config['usr']; $password = $config['pw']; try { $db = new PDO($dsn, $user, $password); $_SESSION['db'] = $db; } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); }
Назад прослеживает ошибку до «@session_start ()», поэтому я не могу сгладить ошибку с помощью @ или даже с помощью try-catch.
Надеюсь, ты поможешь мне. большое спасибо
Вы не можете хранить ресурсы (объект PDO – фактически ресурс) в сеансе. При повторной инициализации это прерывается и выдает исключение «вне» области вашего PHP-файла.
Вероятно, вы выбрали исключение из деструктора из обработчика исключений.
Ресурсы :
По той же теме:
Итак, как мне сказали, сохранение объекта PDO в сеансе вызывает эту ошибку. Я использовал обходной путь, теперь я настраиваю соединение da для каждого запроса вместо хранения соединений в сеансе.
Спасибо за вашу помощь !