2

以下を修正私の問題は、「すでに送信された」ヘッダーとは何の関係もありませんでした。それは単に問題の兆候でした。GoDaddy側でフォルダーが見つからなかったため、問題はサーバー側の問題になりました。

質問の名前を編集して「GoDaddy サイト」を含め、将来同じ問題を抱えている人を助けることができるようにしました。

@KennyPowers の提案に従って、Go Daddy に電話しました。私はもともと Windows でホストされていたアカウントを持っていて、Linux に切り替えました。どうやら、session_start()デフォルトで保存するフォルダは、私のサイトの残りの部分と一緒に移行されませんでした.デフォルトのフォルダを変更することはできません..少なくとも私のサイトでは..

GoDaddy が最後にフォルダーを置き換え、すべてが正常に動作するようになりました


元の質問:

session_start()を使用して少しヘルプを使用できます

サイトの流れ:

  • page1.htmlには、 page2.php に POSTするフォームがあります
  • 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() がページの適切な場所にあるとは思わないが、あるべきだと思う上部にあると思う。とはいえ、明らかな理由から、 「 No such file or directory 」が問題の始まりである可能性が高いと言えます。誰かが私が間違っている方向に私を向けることができれば幸いです。

編集


<?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'); を試しました
  • また、 php.inisession_save_path('/home/content/04/8260904/html/tmp'); として保存したテキストファイルを作成 し、ルートにアップロードしました
  • また、 php5.ini として
    session_save_path('/home/content/04/8260904/html/tmp'); 保存したテキストファイルを作成し、ルートにアップロードしました

まだ同じエラーが発生します

 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 に切り替えました。どうやらそのフォルダーは私のサイトの残りの部分と一緒に移行されなかったようで、デフォルトのフォルダーを変更することはできません..少なくとも私のサイトでは..

4

5 に答える 5

4

問題は、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: No such file or directory (2) in..」を参照してください。

/var/chroot/home/content/08/10125908/tmp/そのディレクトリに読み取り/書き込み権限を作成して設定する必要があります。PHP スクリプトの次の関数を使用して、セッションの一時ディレクトリを変更できます。

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

この後に表示される警告は、ブラウザに送り返されたデータがあったことを示しています。実際には、これが最初の警告テキストでした。tmp ディレクトリの問題を修正するとすぐに修正されます。

于 2013-01-30T13:08:24.737 に答える
1

PHP がセッション情報の保存に使用しようとしているディレクトリが存在しないか、書き込み可能ではありません。

問題のディレクトリは次のとおりです。

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

この場所は に設定されPHP.iniていsession.save_pathます。

このディレクトリが存在し、PHP を実行しているユーザーが書き込み可能であることを確認する必要があります。

于 2013-01-30T13:01:29.730 に答える
1

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

既に送信されたヘッダーに関するエラー: エラー レポート レベルが原因で、セッション データを書き込もうとしているときに警告が生成されました。この自動生成された警告は、ヘッダーが既に送信されたエラーのトリガーです。権限の問題を修正すると、表示されなくなります。

于 2013-01-30T13:08:26.450 に答える
0

おそらく、 please check any text の前にいくつかの出力がありsession_start();ます( の前のスペースを含むsession_start();。ドキュメントの最初にある必要があります。

于 2013-01-30T13:00:34.903 に答える
0

問題は、現在サーバーで 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- line -line -2/

于 2013-01-30T13:13:49.677 に答える