0 レビュー
2 回答
foreach後にPHPCookieが保存されない
foreachの後にCookieを保存できません。 foreachの前に、Cookieは完全に保存されます。
たとえば、これは正常に機能します:
<?php
setcookie('test', 'This is a test', time() + 3600 , '/', '.mydomain.com');
if(isset($_COOKIE['test'])){
echo 'The cookie is ' . $_COOKIE['test'];
} else {
echo 'No cookie has been set';
}
foreach ($values as $value){
// CODE
echo $value;
}
?>
しかし、このコードでは、Cookieを保存できません:
<?php
foreach ($values as $value){
// CODE
echo $value;
}
setcookie('test', 'This is a test', time() + 3600 , '/', '.mydomain.com');
if(isset($_COOKIE['test'])){
echo 'The cookie is ' . $_COOKIE['test'];
} else {
echo 'No cookie has been set';
}
?>
何かアイデアはありますか?
わからない
0
レビュー
答え :
解決策:
Cookieは出力前にのみ設定できます...したがって、foreachループで出力している場合、Cookieを後で設定することはできません。
ただし、実際には出力バッファーを使用してこの問題を回避できると思います...したがって、以下は問題なく機能するはずです...
ob_start();
setcookie(...);
ob_end_flush();
わからない
0
レビュー
答え :
解決策:
このコードで最終的に解決されました:
<?php
ob_start();
foreach ($values as $value){
// CODE
echo $value;
}
setcookie('test', 'This is a test', time() + 3600 , '/', '.mydomain.com');
ob_end_flush();
if(isset($_COOKIE['test'])){
echo 'The cookie is ' . $_COOKIE['test'];
} else {
echo 'No cookie has been set';
}
?>
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。