Cookie はクライアント側に存在し、サーバーとは何の関係もありません。Linux では大文字と小文字が区別されます。また、register_globals の構成など、PHP チュートリアルの構成にも注意してください。 = オフは両側で同じ、など。
PHP における @ 記号と # 記号の意味
関数 foo($n)
{
$result = 1/$n;
$result を返します;
}
echo @foo(0); // 関数内で0による除算エラーが発生しますが、@を付けるとエラーは表示されません。
echo "end" // 出力終了
# コメント記号
// と同様に、# は単一行のコメント文字です (複数行のコメント文字は /* */ です)。
@setcookieを使用しているため、Cookie書き込み時にエラーが発生しても出力されず、問題を検出することができません。最後に、@setcookie を setcookie に変更すると、プログラムは次のエラー メッセージを出力します:
警告: ヘッダー情報は変更できません - ヘッダーはすでに送信されています (出力は
で開始されました)インターネットで検索したところ、cookie を設定する前に何も出力されていないことがわかりました。その後、コードを確認したところ、setcookie を実行する前に何も出力されていないことがわかりました。詳細は次のとおりです。
今日は WordPress の中国語フォーラムを覗いてみました。フォーラムはあまり人気がありませんが、まだ多くのマスターがいます。プラグインやテンプレートを書ける専門家と、ファイル編集もできない初心者が混在するフォーラムです(笑)。これと同じエラーがいくつかの投稿で言及されていました。「警告: ヘッダー情報は変更できません - ヘッダーは既に送信されました (出力は c:program fileseasyphp1-8wwwwp-config.php:1 で開始されました) in c:program fileseasyphp1」 -8wwwp-login.php 9 行目
これは非常に典型的な質問です。 WordPress プログラムが実行されると、最初に wp-config.php などの設定ファイルが呼び出され、さらに wp-db.php を呼び出して、後で使用するためのデータベース チュートリアル接続を確立します。これらのファイルはいくつかの設定を行うだけであり、HTML コードは出力されません。設定が完了すると、プログラム自体が実行を開始します。プログラムによっては、header コマンドを使用して HTTP ヘッダーを設定します。 HTML コードが出力される前に HTTP ヘッダーを設定する必要があるため、そうしないと、HTML コードはすでにクライアントへの送信が開始されており、HTTP ヘッダーはすでに送信されているため、戻ってリセットする方法はありません。この問題は、WordPress CodeX で説明されています:「ヘッダーが送信済みの警告問題を解決するにはどうすればよいですか?」。この記事では次のように指摘しています。各ファイル、特に頻繁に編集される wp-config.php ファイルが で終わり、その前後に他の文字が存在してはいけないことを確認してください。上記の例に特有のことですが、プロンプト メッセージには、wp-config.php の最初の行で HTML 出力が開始されることが示されており、これは最初の行の 解決策
WordPress の中国語フォーラムには全文検索機能がありません。タイトルのみを検索できるので、「ヘッダー情報サイトを変更できません:wordpress.org.cn」を検索してみると、多くの人がこの問題に遭遇しているようです。現在皆さんが使用しているWordPressは主にオリジナルの英語版WordPressといくつかの中国語版WordPressです。私の中国語パッケージには wp-config-sample.php ファイルが含まれていないため、これは私の仕事ではありません。WordPress の元のバージョンで使用されている ASCII コードには当然 BOM が含まれていないため、そのようなエラーは発生しません。 xigang が作成した WordPress のバージョンが WordPress の中国語フォーラムにあります。WordPress 2.0.4 と 2.0.3 をダウンロードして確認しました。Diandianyou の WordPress 2.0.4 の中国語版では問題ありませんでした。 config-sample.php ファイルが使用されています。これは GB2312 エンコーディングと DOS 行末です。しかし、それは問題ありません。誰かがこのファイルを変更するのに DOS 行末が原因で編集の問題が発生することはなく、GB2312 エンコーディングによって BOM が発生することもありません。問題
クッキーの使用状況
Cookie の削除手順を開始します-----
Cookie を削除するには、ブラウザの削除メカニズムをトリガーするために、Cookie の有効期限が過去であることを確認する必要があります。
次の例は、設定したばかりの Cookie を削除する方法を示しています。 //有効期限を 1 時間前に設定します
Cookie を削除する方法は、Cookie の有効期間を現在時刻より前に設定することです。これは、ほとんどすべての PHP プログラマーが行っていることです。
その後、PHP を初めて使用した友人が、プログラム内で Cookie の値を空に設定したいと言いましたが、Cookie は直接削除されました。その時の私の最初の反応は、信じられないということでしたので、試してみました
しばらくすると:
setcookie("testcookie", '');
print_r($_COOKIE);
その結果、$_COOKIE['testcookie'] だけでなく、$_COOKIE 配列全体が空になります。そこで、winsock を使用してパケットをキャプチャし、返された http ヘッダーを観察したところ、http ヘッダーが「Set-Cookie: testcookie=deleted;expires=Mon, 18-Jun-2007 02:42:33 GMT」であることがわかりました。これは、「setcookie("testcookie ", '');」を意味し、実際に testcookie Cookie を直接削除しますが、この状況については PHP マニュアルにはまったく説明がありません。