ホームページ > バックエンド開発 > PHPチュートリアル > Setcookie 事前に何かを入力してください

Setcookie 事前に何かを入力してください

WBOY
リリース: 2016-06-13 13:04:50
オリジナル
1108 人が閲覧しました

setcookie の前に、何かを入力します
インターネットで Cookie 関連のものを調べています
多くの人がこう言います
tcookie() は、残りの HTTP ヘッダーとともに送信される Cookie を定義します。他のヘッダーと同様に、Cookie はスクリプトからの他の出力よりも前に送信する必要があります (これはプロトコルの制限です)。これには、 タグと タグ、および空白を含む出力の前にこの関数を呼び出す必要があります。 setcookie() を呼び出す前に出力がある場合、この関数は失敗し、FALSE を返します。 setcookie() 関数が正常に実行されると、TRUE が返されます。これは、ユーザーが Cookie を受け入れたかどうかを示すものではありません。

つまり、setcookie の前に出力があってはなりません。そうしないと、Cookie は正常に設定されません

でも、自分で試してみると、いつも成功します
どこで間違えたのでしょうか。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br />
<?php<br />
var_dump(setcookie("axvvvva","xxxx"));<br />
?><br />
<html xmlns="http://www.w3.org/1999/xhtml"><br />
<head><br />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><br />
<title></title><br />
</head><br />
<br />
<body><br />
<br />
</body><br />
</html>
ログイン後にコピー

-----最良の解決策---------
これは出力バッファが開いていることを表します
php5.3のデフォルトのoutput_buffering = 4096

のみ 出力バッファリング = 0
閉じた場合にのみ、これらのエラーが表示されます
php5.2以下ではデフォルトでオフになっているようですが、思い出せません
-----その他の解決策----- ----
php には出力バッファがあるため
------その他の解決策------ -
時間協定の制限があるのはナンセンスであり、セッションを前に出力することは許可されていません。このように @session_start(); を使用するだけで、多くの時間と手間が節約されます~
------他の解決策------ --- --
lz で指定されたコードは PHP コードではないようです。確認のためにコードを投稿してください。 。 。

httpプロトコルでは、プロトコルヘッダを出力する前にエンティティを出力すると、httpプロトコルのパッケージが破壊されるため、コンテンツ出力後のヘッダ出力は動作しなくなります。 (契約に基づいて推測します。具体的かどうかはわかりません)
------その他の解決策------ -

引用:
lz で指定されたコードは PHP コードではないようです。確認のためにコードを投稿してください。 。 。

httpプロトコルでは、プロトコルヘッダを出力する前にエンティティを出力すると、httpプロトコルのパッケージが破壊されるため、コンテンツ出力後のヘッダ出力は動作しなくなります。 (契約書に基づいて推測します。具体的かどうかはわかりません)



の下に PHP の一部があります そうですね、バッファの問題です...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート