2

現在、php セッションを使用して値を保存し、ページ間で渡しています。

すべてのページで呼び出しを確認するなどの基本的なチェックを行いsession_start()、セッション ID Cookie がブラウザーに設定されていることを確認しますが、値はページ間で永続的ではありません。

たとえば、$_SESSION["abc"]='abc'あるページに設定しましたが、別のページに印刷すると null になります。

file を使用して Cookie 値を保存すると、対応する Cookie ファイルが指定されたパスに作成されないことに気付きました。セッション ファイルが作成されない理由は何ですか?

4

4 に答える 4

2

すべてのページの最後で破棄している場合は注意してください。削除してください。すべてのページでセッションを破棄すると、セッションに永続性がなくなります。さらに、何らかのログアウト コードを使用している場合は、コードのその部分でそのセッションを破棄してください。

于 2012-05-25T06:24:25.623 に答える
2

これはうまくいきますか?

<?php

session_start();

if (!isset($_SESSION['foo']))
    $_SESSION['foo'] = 'hello';

var_dump($_SESSION['foo']);

そのページを複数回読み込むと、メッセージが表示されますhelloか?

はいの場合、問題はコードに関係しています。つまり、おそらくどこかでセッション値を破壊している可能性がありますが、上記が機能しない場合は、session.save_path書き込み可能ではない可能性があります。

これはあなたに何を与えますか?

<?php

var_dump(is_writable(ini_get('session.save_path')));
于 2012-05-25T05:55:10.603 に答える
0

セッション パスを変更し (許可されている場合)、.htaccess に 0777 パーミッションを設定できます。

php_value session.save_path  /home/your_domain.gr/public_html/tmp

エラーログにも何かありますか?

于 2012-05-25T05:59:26.977 に答える
0

サーバーディレクトリにディレクトリ名「tmp」があり、セッションの一時ファイルを保持するために使用されます。フォルダーに読み取りおよび書き込みアクセスが付与されていることを確認してください。

于 2012-05-25T05:52:44.403 に答える