как правильно использовать session_start () на сайте GoDaddy

Fix Ниже Моя проблема не имела ничего общего с заголовками, которые уже были отправлены. Это было просто симптомом проблемы. Проблема закончилась тем, что проблема была связана с GoDaddy, поскольку папка отсутствовала на их конце.

Я редактировал имя моего вопроса, чтобы включить «сайт GoDaddy», чтобы помочь кому-то в будущем иметь такую ​​же проблему.

По предложению @KennyPowers я назвал Go Daddy. Первоначально у меня была учетная запись Windows, и я переключился на Linux. По-видимому, папка, которую сохраняет session_start() по умолчанию, не переносилась с остальной частью моего сайта, и вы не можете изменить папку по умолчанию … по крайней мере, на моем сайте.

GoDaddy заменил папку на их конце, и теперь все работает нормально


Оригинальный вопрос:

Я мог бы немного помочь с помощью session_start ()

Поток сайта:

  • page1.html имеет форму POSTs для page2.php
  • page2.php делает некоторые вещи с данными и представляет ссылку на page3.php
  • когда page3.php загружает, он также должен что-то сделать с данными из формы

Все страницы находятся в одном домене, поэтому я пытаюсь сделать это с помощью session_start ()

Это то, что я пытался:

Страница 2:

 <?php // page2.php session_start(); echo 'Welcome to page #2'; $_SESSION["guest1Last"] = $_POST["guest1Last"]; $_SESSION["guest1First"] = $_POST["guest1First"]; $_SESSION["guest1Middle"] = $_POST ["guest1Middle"]; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Title</title> // more HTML and PHP stuff down here 

Страница 3:

 <?php // page3.php session_start(); echo 'Welcome to page #3<br />'; echo $_SESSION["guest1First"]; echo $_SESSION["guest1Middle"]; echo $_SESSION["guest1Last"]; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> // more HTML and PHP stuff down here 

Это предупреждения, которые я получаю при загрузке страницы 2 (то же самое на стр. 3)


 Warning: session_start() [function.session-start]: open(/var/chroot/home/content/08/10125908/tmp/sess_3dt4c7etqd6hr28dls0bludiv4, O_RDWR) failed: No such file or directory (2) in /home/content/08/10125908/html/_php/page2.php on line 4 Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/content/08/10125908/html/_php/page2.php:4) in /home/content/08/10125908/html/_php/page2.php on line 4 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/content/08/10125908/html/_php/page2.php:4) in /home/content/08/10125908/html/_php/page2.php on line 4 Welcome to page #2 Warning: Unknown: open(/var/chroot/home/content/08/10125908/tmp/sess_3dt4c7etqd6hr28dls0bludiv4, O_RDWR) failed: No such file or directory (2) in Unknown on line 0 Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct () in Unknown on line 0 

Часть «заголовки уже отправлены» заставляет меня думать, что session_start () находится не в нужном месте на странице, но вверху, где я считаю, что это должно быть. Тем не менее, очевидно, что « Нет такого файла или каталога », где проблема начинается, по очевидным причинам. Я был бы очень признателен, если бы кто-нибудь мог указать мне в сторону того, что я делаю неправильно.

РЕДАКТИРОВАТЬ


 <?php session_start(); ini_set('session.save_path', '/var/chroot/home/content/08/10125908/html/tmp'); echo 'Welcome to page #1'; $_SESSION["guest1Last"] = $_POST["guest1Last"]; $_SESSION["guest1First"] = $_POST["guest1First"]; $_SESSION["guest1Middle"] = $_POST ["guest1Middle"]; ?> 
  • Я создал папку tmp и дал ей все разрешения
  • Я добавил ini_set('session.save_path', '/var/chroot/home/content/08/10125908/html/tmp');
  • и попытался ini_set ('session.save_path', 'html / tmp');
  • Я также создал текстовый файл с session_save_path('/home/content/04/8260904/html/tmp'); сохранил его как php.ini и загрузил его в мой корень
  • Я также создал текстовый файл с
    session_save_path('/home/content/04/8260904/html/tmp'); сохранил его
    как php5.ini и загрузил его в мой корень

Я все еще получаю ту же ошибку

  Warning: session_start() [function.session-start]: open(/var/chroot/home/content/08/10125908/tmp/sess_3659a32a50e33e5f918a9e39d70a1668, O_RDWR) failed: No such file or directory 

Я не правильно настроил папку?


Настройка моей папки сейчас введите описание изображения здесь

По предложению @KennyPowers я назвал Go Daddy. Первоначально у меня была учетная запись Windows, и я переключился на Linux. По-видимому, эта папка не переносилась с остальной частью моего сайта, и вы не можете изменить папку по умолчанию … по крайней мере, на моем сайте.

Related of "как правильно использовать session_start () на сайте GoDaddy"

Проблема в том, что у вас нет tmp. Первая ошибка говорит об этом:

 Warning: session_start() [function.session-start]: open(/var/chroot/home/content/08/10125908/tmp/sess_3dt4c7etqd6hr28dls0bludiv4, O_RDWR) failed: No such file or directory (2) in /home/content/08/10125908/html/_php/page2.php on line 4 

Вот почему сессия не может начаться. См. « … failed: нет такого файла или каталога (2) в .. "

Вам необходимо создать /var/chroot/home/content/08/10125908/tmp/ и установить права на чтение и запись в этом каталоге. Вы можете изменить директиву temp temp, используя следующую функцию из вашего php-скрипта:

 ini_set('session.save_path', '/session/directory/goes/here'); 

Предупреждения, которые вы получаете после этого, говорят вам, что некоторые данные были отправлены обратно в ваш браузер – это был первый предупреждающий текст. Он будет исправлен сразу после устранения проблемы с каталогом tmp.

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

 Warning: session_start() [function.session-start]: open(/var/chroot/home/content/08/10125908/tmp/sess_3dt4c7etqd6hr28dls0bludiv4, O_RDWR) failed: No such file or directory (2) in /home/content/08/10125908/html/_php/page2.php on line 4 

в отношении уже отправленных ошибок заголовков : из-за уровня отчетности об ошибках было создано предупреждение при попытке записать данные сеанса. Это автоматически сгенерированное предупреждение является триггером для уже отправленных ошибок заголовков. Исправьте проблему с разрешением, и она должна исчезнуть.

Каталог PHP пытается использовать для хранения информации о сеансе либо не существует, либо не может быть записан.

Справочник:

/var/chroot/home/content/08/10125908/tmp/

Это местоположение задано в PHP.ini как session.save_path .

Вы должны убедиться, что этот каталог существует и доступен для записи пользователем, на котором работает PHP.

Вероятно, у вас есть функция ountput перед session_start(); пожалуйста, проверьте любой текст (включая пробелы перед session_start(); он должен быть первым в вашем документе.

Проблема в том, что сеансы PHP в настоящее время не работают на вашем сервере, и cookie не может быть установлен. PHP-сервер не разрешает запуск сеанса, и ошибка заключается в том, как вы узнаете. Ошибка сообщает вам, что она не может открыть временную папку временного сеанса, потому что папка не существует.

Пожалуйста, проверьте эту ссылку: http://tclayson.com/2012/03/08/how-to-fix-error-warning-session_start-function-session-start-openpathtofile-o_rdwr-failed-permission-denied-13-in -pathtoscript-php-on- lineline -2 /