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プロトコルのパッケージが破壊されるため、コンテンツ出力後のヘッダ出力は動作しなくなります。 (契約に基づいて推測します。具体的かどうかはわかりません)
------その他の解決策------ -
の下に PHP の一部があります
そうですね、バッファの問題です...