setcookie php失效的解決方法:1、開啟對應的PHP檔案;2、查看網域參數是否規範;3、透過全域變數來實現即可,程式碼如「foreach ($_COOKIE["cookie" ] as $name => $value) {$name = htmlspecialchars($name);$value = htmlspecialchars($value);echo...」。
本教學操作環境:windows7系統、PHP8.1版、Dell G3電腦。
setcookie php 失效怎麼辦?
具體問題描述:
PHP setcookie指定domain參數後,在IE下設定cookie失效了?
解決方法
下面的程式碼:在chrome和firefox下可以產生三個cookie:
cookie[one]、cookie[two]、cookie[three]
在IE下,只能產生cookie[one]、cookie[ two]兩個cookie,第三個因為指定了”.65.la”,導致cookie[three]生成失敗。
程式碼如下:
<?php setcookie(“cookie[one]“, “cookieone”,time()+36000,”/”); setcookie(“cookie[two]“, “cookietwo”,time()+36000,”/”); setcookie(“cookie[three]“, “cookiethree”, time()+36000,”/”,”.65.la”); // 页面重新 if (isset($_COOKIE["cookie"])) { foreach ($_COOKIE["cookie"] as $name => $value) { $name = htmlspecialchars($name); $value = htmlspecialchars($value); echo “$name : $value <br />\n”; } } ?>
多次實驗之後,確認IE認為」.65.la」這種形式的網域參數是不規範的。如果要cookie在所有子網域通用的話,可以透過全域變數來變通的實作。
推薦學習:《PHP影片教學》
以上是setcookie php 失效怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!