2009-07-02 7 views
0

Я новичок в PHP.Предупреждение: разрешения разрешений на сеанс/заголовки уже отправлены в PHP

Я получаю следующие ошибки. Я не могу просмотреть ошибку с моего компьютера в FF, IE и Chrome, но все же я вижу ошибку вверху при просмотре с браузера другого компьютера.

Warning: session_start() [function.session-start]: open(/tmp/sess_c464nadk4jsn4u43mpqipkjbr7, O_RDWR) failed: Permission denied (13) in "file location" on line X 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at "file location":line X) in "file location" on line X 

Любые идеи кто-нибудь?

У меня есть session_start() перед включениями, который означает перед любым html, а сеанс используется только для переноса одной переменной.

Я попытался поместить его перед тем

Header("Cache-control: private, no-cache"); 
Header("Pragma: no-cache"); 

, но это только породило больше Предупреждающие знаки. Любая помощь будет оценена!

+0

также все работает правильно, но сообщение об ошибке беспокоит меня! – Juan

+0

Я не понимаю, почему ошибка не отображается в моем браузере на моем компьютере .... – Juan

+0

Можете ли вы дать некоторые сведения о том, какую настройку сервера вы используете? Поскольку это сообщение появляется только на удаленных подключениях не на вашем локальном компьютере. – LizB

ответ

0

Первая ошибка, кажется, указывает на отсутствие разрешения на запись в каталоге temp, но также может быть связана со вторым.

Вторая ошибка, как правило, происходит только тогда, когда какой-то вывод отправляется с вашего php-скрипта перед вызовом session_start(), поскольку он автоматически отправляет HTTP-заголовки. Это может быть любой вид html или даже пустых строк или пробелов в файле перед фактическим вызовом или перед открывающей скобкой <?php. Как указывает Шейн в комментарии, причиной второй ошибки вполне может быть то, что сообщение об ошибке из первой ошибки (неспособной записать сеанс в файл в/tmp) вызывает отправку заголовков, и, следовательно, слишком поздно отправьте их с помощью звонка header().

+0

«строка X» i заменена на «строка 4» – Juan

+0

1: Juan

+0

Вы должны поместить session_start() перед любым из этих заголовков. – AndyMcKenna

4

Кажется, что/tmp/dir недоступен для чтения или записи пользователем php работает как.

+0

страница не должна быть доступна для записи, я использую только сеансы для проверки строки, поскольку форма отправляется на той же странице. – Juan

+0

Это не та страница, на которую пытается писать, PHP хранит всю информацию о сеансе в структуре папок, определенной в INI под session.save_path. Независимо от того, какая информация хранится в сеансе, будет создан файл.Проблема разрешения - это первая ошибка, за которой следует вторая ошибка, которая, по-видимому, связана с первым. – LizB

+0

Я согласен с ShaneB - ошибка, вызванная первым, вызывает вторую ошибку. Исправьте проблему с правами на доступ к каталогам, и все готово. –

1
  • Есть ли пробелы или любые другие символы до <?php начального тега?
  • Действительно ли первое заявление в блоке php является session_start()?
+0

в верхней части страницы У меня есть: Juan

1

Ошибка «заголовки уже отправлены» вызвана первым. Другие ответы здесь, пытаясь отладить, не помогут вам. Исправьте первую ошибку, а вторая уйдет. Первая ошибка сообщает вам, что ваша проблема уже есть - каталог/tmp недоступен для записи веб-сервером./tmp обычно составляет 777 (rwxrwxrwx).

+0

Я только что изменил его каталог и права доступа к файлу, не работал. – Juan

Смежные вопросы