この記事では、thinkphp の無効なセッションと Cookie の解決方法を中心に、BOM ヘッダーの分析と削除方法を紹介します。必要な方は、この記事の例を参照してください。 thinkphp での無効なセッションと Cookie の解決策について説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです。
問題の説明:ローカルでデバッグする場合、セッションと Cookie に問題はありません。現在の情報を保存するためにセッションを使用します。アカウントにログインしてアップロードした後、ジャンプ後にセッションが存在していないことがわかりました。なぜでしょうか。現在のページにある出力セッションは存在します。
私は独学なので、アドバイスを求める先生も周りにもいません。 PHP を実行しているので、それは本当に悲劇的です...Baidu と Baidu 上の多くの人がナンセンスなことを話しており、問題を解決できるものは何もありません。3 日間の修正を経て、最終的に根本原因が判明しました。 thinkphp をサポートするサーバーの大部分は Linux システムであり、私たちのプログラミングは基本的に Windows と同じです。これにより BOM ヘッダーの問題が発生し、PHP は BOM ヘッダーを解析できず、BOM ヘッダーを直接削除するため、セッションと Cookie が失われます。
解決策:BOM とは何ですか? UTF-8 でエンコードされたファイルでは、BOM はファイルのヘッダーにあり、3 バイトを占めます。これは、ファイルが UTF-8 エンコードに属していることを示すために使用されます。現在、BOM ヘッダーを認識するソフトウェアは数多くありますが、 BOM ヘッダーを認識できないものもあります (PHP など)。このため、メモ帳で UTF-8 エンコードを編集するとエラーが発生します。
BOM を削除する簡単な方法。 header は次の 2 つです:
1 、BOM ヘッダーを削除する Editplus メソッド
エディターが UTF8 エンコード形式に調整されると、隠し文字の文字列 (つまり、BOM) が表示されます。これは、ファイルが UTF8 でエンコードされているかどうかを識別するためにエディターによって使用されます。
Editplus を実行し、[ツール] をクリックし、[環境設定] を選択し、ファイルを選択して、常に削除する UTF-8 識別を選択します。 .
2. BOM ヘッダーを削除する Ultraedit メソッド
ファイルを開いた後、[名前を付けて保存] オプションでエンコード形式を選択します ( BOM ヘッダーのない utf-8) を確認したら、それを削除してみてはいかがでしょうか。
utf8 の BOM 情報について説明します。 PHP ファイル自体は BOM 付きの UTF-8 です。通常のページの中国語文字化けは、通常はこの理由によるものではありません。
header("Content-type: text/html; charset=utf-8");
この文は次のとおりです。 HTML 出力ページのエンコード方法を制御します。BOM は、WINDOWS の「メモ帳」を使用して UTF-8 としてのみ保存されます。WINHEX を使用して最初の 2 バイトを削除できます。
thinkPHP5.0 フレームワーク構成スコープ メソッド
thinkPHP5 フレームワーク カスタム バリデーターの実装
以上がthinkphp で無効なセッションと Cookie の問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。