ホームページ >バックエンド開発 >PHPチュートリアル >PHP セッションの問題の解決策集_PHP チュートリアル
PHP のセッション関数は、多くの初心者にとって常に難しいものでした。ベテランでも時々混乱する人もいます。この記事では、みんなの参考のためにこれらの問題を簡単にまとめます。
1.
エラー メッセージ
警告: セッション Cookie を送信できません - ヘッダーはすでに送信されています
警告: セッション キャッシュ リミッターを送信できません - ヘッダーはすでに送信されています
分析と解決策
この種の問題の原因は、プログラム session_start()の際、実際のHTMLコンテンツは先に出力されています。おそらく、私はそれを持っていないので、メッセージをエコーするか印刷するだけだと言うかもしれません。申し訳ありませんが、echo または print ステートメントによって生成される出力は、実際の HTML コンテンツ出力です。この種の問題を解決する方法は、session_start() をプログラムの最初の行に移動することです。
2.
エラー メッセージ
警告: open(F:/689phpsessiondatasess_66a39376b873f4daecf239891edc98b5, O_RDWR) が失敗しました
分析と解決策
このようなエラー ステートメントは通常、php.ini の session.save_ によって引き起こされます。正しく設定する解決策は、session.save_path と session.cookie_path を
session_save_path = c: emp
session.cookie_path = c: emp に設定することです
次に、c: ディレクトリに temp ディレクトリを作成します。警告:
分析と解決策
で初期化されていないセッションを破棄しようとしています このようなプロンプトは通常、session_destroy() 関数を直接調整することによって発生します。多くの友人は、session_destroy() 関数が独立して実行できると考えていますが、そうではありません。解決策は、session_destroy() 関数を呼び出す前に session_start() を使用してセッション関数を有効にすることです。
4. 質問: 現在のセッションの ID 値を取得するにはどうすればよいですか?
最も簡単な方法は次のとおりです:
SID をエコーする
すぐにわかります。
5. 質問: ヘッダー関数を呼び出す前にプログラムに出力がありません。config.php ファイルをインクルードしているにもかかわらず、セッションで同じエラーが報告されるのはなぜですか。質問 1、ヘッダーの前に session_start() を使用したためですか?
回答: おそらく、php プログラムを注意深くチェックしましたが、確かに header() を参照する前にエラーはなく、インクルード ファイルには出力がありません。しかし、カーソルキーを使用して、PHP コードの end ステートメントの後にチェックを移動しますか?>?すると、?> の後に空白行またはいくつかのスペースがあることがわかります。これらの空白行またはスペースを削除すると、問題は解決します。
http://www.bkjia.com/PHPjc/445211.html
www.bkjia.com