ホームページ > バックエンド開発 > PHPチュートリアル > Cookieの設定が失敗するのはなぜですか?

Cookieの設定が失敗するのはなぜですか?

WBOY
リリース: 2016-06-23 14:10:04
オリジナル
2132 人が閲覧しました

次のようなプログラムがあります:
if(setcookie('me','mycookie'))
{
echo "cookie has been set";
}
echo "logged in"

実行結果は "logged" です。 「はい」ですが、「Cookieが設定されました」は表示されません。これは、Cookie の設定が失敗したことを示します。

このプログラムのセットアップが失敗した理由を教えてください。文法的な間違いはありますか?失敗の原因は何でしょうか? (私のブラウザはCookieに対応しています)


ディスカッションへの返信(解決策)

setcookiesより前に何か出力した場合はfalseを返します。

ここでのテストは問題ありません

setcookies の前に何かが出力された場合は false が返されます。
ああ、つまり、Cookie を設定するプログラムは出力ステートメントの前に置く必要があるということですか?これは本当にそうなのでしょうか?

setcookie() は、残りの HTTP ヘッダーと一緒に送信される Cookie を定義します。他のヘッダーと同様に、Cookie はスクリプトからの他の出力よりも前に送信する必要があります (これはプロトコルの制限です)。これには、 タグと タグ、および空白を含む出力の前にこの関数を呼び出す必要があります。 setcookie() を呼び出す前に出力がある場合、この関数は失敗し、FALSE を返します。 setcookie() 関数が正常に実行されると、TRUE が返されます。

しかし、プログラムの先頭に入れただけですが、うまくいきませんでした。最初の ステートメントは次のとおりです。



は下へスクロールすることを意味します。これは関係していますか?

setcookie() は、残りの HTTP ヘッダーと一緒に送信される Cookie を定義します。他のヘッダーと同様に、Cookie はスクリプトからの他の出力よりも前に送信する必要があります (これはプロトコルの制限です)。これには、 タグと タグ、および空白を含む出力の前にこの関数を呼び出す必要があります。 setcookie() を呼び出す前に出力がある場合、この関数は失敗し、FALSE を返します。 setcookie() 関数が正常に実行されると、TRUE が返されます。
あ!これは の前に配置されていることが判明しましたが、うまくいきました。ありがたい!あなたが私に教えてくれなかったら、私は自分でその理由を探していたでしょうが、いつその理由を見つけたのかわかりません。この本にはそのことについては書かれていませんでした。 (もしかしたらどこかのコーナーで取り上げられるかもしれませんが、初心者がこの本を全部じっくり読むのは不可能です)。ありがとう!


setcookie() は、残りの HTTP ヘッダーと一緒に送信される Cookie を定義します。他のヘッダーと同様に、Cookie はスクリプトからの他の出力よりも前に送信する必要があります (これはプロトコルの制限です)。これには、 タグと タグ、および空白を含む出力の前にこの関数を呼び出す必要があります。 setcookie() を呼び出す前に出力がある場合、この関数は失敗し、FALSE を返します。 setcookie() 関数が正常に実行されると、TRUE が返されます。
あ!これは の前に配置されていることが判明しましたが、うまくいきました。ありがたい!あなたが教えてくれなかったら、私は自分でその理由を探していたでしょうが、その本にはそのことが書かれていませんでした。 (もしかしたらどこかのコーナーで取り上げられるかもしれませんが、初心者がこの本を全部じっくり読むのは不可能です)。ありがとう!
マニュアルにはこれについて説明されています。
マニュアルはどの本よりも重要です

その本には著者がろくでなしであるとは記載されていません
しかし、マニュアルには明確に書かれています
私はマニュアルからその段落をコピーしました

その本には著者がろくでなしであるとは記載されていません
くそ野郎
でもマニュアルにははっきり書いてある
マニュアルからその段落をコピーしたんだ

どのマニュアルのことを言ってるの?ダウンロードしたいです。




setcookie() は、残りの HTTP ヘッダーと一緒に送信される Cookie を定義します。他のヘッダーと同様に、Cookie はスクリプトからの他の出力よりも前に送信する必要があります (これはプロトコルの制限です)。これには、 タグと タグ、および空白を含む出力の前にこの関数を呼び出す必要があります。 setcookie() を呼び出す前に出力がある場合、この関数は失敗し、FALSE を返します。 setcookie() 関数が正常に実行されると、TRUE が返されます。
あ!これは の前に配置されていることが判明しましたが、うまくいきました。ありがたい!あなたが教えてくれなかったら、私は自分でその理由を探していたでしょうが、その本にはそのことが書かれていませんでした。 (もしかしたらどこかのコーナーで取り上げられるかもしれませんが、初心者がこの本を全部じっくり読むのは不可能です)。ありがとう!
マニュアルにはこれについて説明されています。
マニュアルはどんな本よりも重要です

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