Здравствуйте.
Вчера в 19.00 обнаружил что сайт и форум не распознают меня в качестве админа (не устанавливаются куки) на форуме (Бюллетень 3.6-ой) и на сайте мной никаких работ не производилось.
После того как залогинился просто белая страница и все.
Для подсказки - форум вообще вот что выдает :
Не удается добавить cookies. Header уже отправлен.
Файл: /home/vvint720/public_html/forum/includes/class_core.php
Строка: 3060
Помогите - где собака порылась?
Комментарии
Припопытке что-либо сделать требует авторизацию. Авторизуется, показывает мое имя и... при нажатии любой ссылки сообщает "Доступ запрещен" и опять авторизоваться.
Беда началась сегодня. До этого уже неделю ничего не делал
Друпал 4.7 ? Обновился PHP до 5.2 ? Если все это так, то есть лекарство.
Друпал 4.7 ? Обновился PHP до 5.2 хостинг от Slavhost.
Что за лекарство?
Нужно патчить файл session.inc вот этим патчем. Патч хороший, проверенный, и уже применен к последней версии друпала. Но, кажется еще не к 4.7.4, а к следующей.
<?php
--- includes/session.inc 11 Apr 2006 11:33:14 -0000 1.27
+++ includes/session.inc 10 Nov 2006 20:29:04 -0000
@@ -17,6 +17,11 @@ function sess_close() {
function sess_read($key) {
global $user;
+ // Write and Close handlers are called after destructing objects since PHP 5.0.5
+ // Thus destructors can use sessions but session handler can't use objects.
+ // So we are moving session closure before destructing objects.
+ register_shutdown_function('session_write_close');
+
// retrieve data for a $user object
$result = db_query("SELECT sid FROM {sessions} WHERE sid = '%s'", $key);
if (!db_num_rows($result)) {
?>
(только без тегов PHP, конечно, это я их для наглядности кода добавил)
Спасибо за оперативный ответ. Но прости чайника - Как этим патчем пользоваться? Создать php-файл или вставить в session.inc?
Можно просто вставить. В нужное место. Если стоит знак "+" в начале строки - значит эту строку нужно добавить. Если знака нет, то это просто чтобы ориентироваться куда именно добавлять.
А вообще для этого есть всякие умные программы.
Да, ее надо добавить.
А само сообщение об ошибке трудно сюда скопировать?!! Или что? Когда думать будем?
И хотелось бы видеть код который получился после вставки (не весь, а только часть!). И знать версию друпала!
Спасибо Ултра Бой!!!
Я видать поставил ее до
global $user;
Внимательнее гянул и поправил.
Еще раз огромное спасибо!!
Тоесть добавить вот эту строчку:
register_shutdown_function('session_write_close');
?Но тогда у меня начинает ругаться на что то в этой строке
$result = db_query("SELECT sid FROM {sessions} WHERE sid = '%s'", $key);
Спасибо и от меня!!!! А то уже подумывал о смене движка
Чего-то у меня ругнулся на mailfomed patch. Сделал патч заново, получилось так (прикладывается):
<?php
--- includes/session.inc.orig 2006-12-22 04:06:05.792933097 +0300
+++ includes/session.inc 2006-12-22 04:06:54.259265476 +0300
@@ -17,6 +17,11 @@
function sess_read($key) {
global $user;
+ // Write and Close handlers are called after destructing objects since PHP 5.0.5
+ // Thus destructors can use sessions but session handler can't use objects.
+ // So we are moving session closure before destructing objects.
+ register_shutdown_function('session_write_close');
+
// retrieve data for a $user object
$result = db_query("SELECT sid FROM {sessions} WHERE sid = '%s'", $key);
if (!db_num_rows($result)) {
?>
--
Администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!
Мне показалось, или Уважаемые и вправду пользуются одним хостингом? Попробуйте обратиться к хостеру, наверняка у него найдётся для Вас ответ.
---
http://drupal5.ru - информация для друпателей
качественные ответы только на качественные вопросы
ultraboy@drupal.org, а разработчики в курсе этого бага (и решения)?
2 Dan: Читай внимательно http://www.drupal.ru/node/3022#comment-14191
Спасибо все получилось. Хостинг мог бы и сообщить о том что сменили версию PHP. Сейчас наверно техподдержка мучится - пытается восстановить неработающие сайты...
"2 Dan: Читай внимательно"
Виноват, исправлюсь
Спасибо!
Удивительно, но для 4.6 тоже помогло.
А что там сломали в PHP5.2? обновил, главное дело, с 5.1.6 до 5.2 - и такая фигня!
Думал уже назад откатываться..
Обновил PHP до версии 5.2 и тоже столкнулся с этой проблемой.
Впрочем, в Drupal 4.7.5, как уже говорил ultraboy, этот баг пофиксили.
mem
Спасибо большое. На душе стало так легко. А то уже замучился с этим багом.
скорее уж пользуются одним PHP
P.S.: обычно решается патчами к продуктам.
Спасибо большое, очень помогло!