[英]Php sessions aren't working
我是php的新手,而且對會話來說是新手,所以我不知道我在做什么錯。 我遵循了有關tizag的教程,並將此代碼放在我的網站上:
<?php
session_start();
echo SID . "<br><br>";
if(isset($_SESSION['views'])) {
$_SESSION['views'] = $_SESSION['views'] + 1;
} else {
$_SESSION['views'] = 1;
echo "views = ". $_SESSION['views'];
}
?>
每當刷新時,SID都會更改,並且該數目不會累加。
更新:網址: http : //121.73.150.105/PIA/
固定作者:將session_start()放在我的文檔類型,標題等之前。
瀏覽器中是否啟用了Cookie? phpsessid存儲為cookie,您可以為其設置不同的參數,在這種情況下可能有用的參數可以是session_get_cookie_params() ,然后查看會話cookie參數是否正常。
如果發生任何錯誤(例如到期日期),則可以使用session_set_cookie_params()設置參數
您不會在if語句之后輸出$_SESSION['view']
。 我認為這就是為什么它不會改變。
嘗試:
<?php
session_start();
echo SID . "<br><br>";
if(isset($_SESSION['views'])) {
$_SESSION['views'] = $_SESSION['views'] + 1;
} else {
$_SESSION['views'] = 1;
}
echo "views = ". $_SESSION['views'];
?>
因此,您始終輸出新的$_SESSION['views']
值。
編輯:我認為正確的答案是未設置會話。 但是我很好奇,代碼如何始終輸出“ view = 1”? 我可以打開一個新問題參考該問題,還是在這里討論?
您的PHP設置可能已配置為不將會話保存在Cookie中。
要驗證是否是這種情況,可以查看php.ini中的session.use_cookies或使用ini_get ,如下所示:
<?php echo ini_get('session.use-cookies'); ?>
您也可以在運行時使用ini_set對其進行更正,如下所示:
<?php ini_set('session.use-cookies', '1'); ?>
您是在調用會話開始之前向瀏覽器輸出了某些內容,還是禁用了Cookie。
在代碼中,如果看不到會話ID,則可以編寫session_id()
代替SID
。
ini_set("session.use_cookies",1);
ini_set("session.use_only_cookies",1);
如果您希望這兩個參數必須設置為gether
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.