使用discuz的加密函數authcode來防刷票

修改php中的session過期時間可以修改php配置文件php.ini中的session.gc_maxlifetime即可晌区。

當php每發(fā)出一次請求時乌逐,會有1/100的概率(默認值)觸發(fā)"session回收"始腾。如果"session回收"發(fā)生梭冠,那就會檢查/tmp/sess_*的文件,如果最后的修改時間到現在超過了1440秒(gc_maxlifetime的值)矿酵,就將其刪除唬复,意味著這些session過期失效。

session在server端(一般是Apache with PHP module)如何存在的全肮?

默認的敞咧,php會將session保存在/tmp目錄下,文件名為這個樣子:

sess_01aab840166fd1dc253e3b4a3f0b8381辜腺。每一個文件對應了一個session(會話)休建。

more /tmp/sess_01aab840166fd1dc253e3b4a3f0b8381

username|s:9:”phpzixue.cn”;admin|s:1:”0″;

#變量名|類型:長度:值

刪除這里的session文件,就表示對應的session失效了评疗。

session在client端(一般是瀏覽器)如何存在的测砂?

session在瀏覽器端,只需要保存session ID(由server端生成的唯一ID)就可以了壤巷。有兩種保存方式:在cookie中、在url里面瞧毙。如果cookie中保存session ID胧华,就可以看到瀏覽器的cookie中有一個PHPSESID變量。如果是URL傳遞的宙彪,就可以看到形如:

index.php?PHPSESID=01aab840166fd1dc253e3b4a3f0b8381的URL矩动。(在server端通過session.use_cookies來控制使用哪一種方式)

在server端,php如何判斷session文件是否過期释漆?

如果”最后的修改時間”到”現在”超過了gc_maxlifetime(默認是1440)秒悲没,這個session文件就被認為是過期了,在下一次session回收的時候男图,如果這個文件仍然沒有被更改過示姿,這個session文件就會被刪除(session就過期了)甜橱。

簡單的說,如果我登錄到某網站栈戳,如果在1440秒(默認值)內沒有操作過岂傲,那么對應的session就認為是過期了。

所以子檀,修改php.ini文件中的gc_maxlifetime變量就可以延長session的過期時間了:(例如镊掖,我們把過期時間修改為86400秒)

session.gc_maxlifetime = 86400

然后,重啟你的web服務(一般是apache)就可以了褂痰。

注意:php5里面session過期使用了回收機制亩进。這里設置時間為86400秒,如果session在86400秒內沒有被修改過缩歪,那么在下一次“回收”時才真的被刪除归薛。

session“回收”何時發(fā)生?

默認情況下驶冒,每一次php請求苟翻,就會有1/100的概率發(fā)生回收,所以可能簡單的理解為“每100次php請求就有一次回收發(fā)生”骗污。這個概率是通過以下參數控制的

#概率是gc_probability/gc_divisor

session.gc_probability = 1

session.gc_divisor = 100

注意1:假設這種情況gc_maxlifetime=120崇猫,如果某個session文件最后修改時間是120秒之前,那么在下一次回收(1/100的概率)發(fā)生前需忿,這個session仍然是有效的诅炉。

注意2:如果你的session使用session.save_path中使用別的地方保存session,session回收機制有可能不會自動處理過期session文件屋厘。這時需要定時手動(或者crontab)的刪除過期的session:cd

/path/to/sessions; find -cmin +24 | xargs rm

一些特殊情況

因為回收機制會檢查文件的“最后修改時間”涕烧,所以如果某個會話是活躍的,但是session的內容沒有改變過汗洒,那么對應的session文件也就沒有改變過议纯,回收機制會認為這是一個長時間沒有活躍的session而將其刪除。這是我們不愿看到的溢谤,可以通過增加如下的簡單代碼解決這個問題:

<?php

if(!isset($_SESSION['last_access'])||(time()-$_SESSION['last_access'])>60)

$_SESSION['last_access'] = time();

?>

代碼會每隔60秒瞻凤,嘗試修改修改一次session。

總結:如果想修改session過期時間世杀,修改變量gc_maxlifetime就可以了阀参。php5的session采用被動的回收機制(garbage collection)。過期的session文件不會自己消失瞻坝,而是通過觸發(fā)“回收”來處理過期的session蛛壳。

你是否有這樣的煩惱,想學習高級技術,缺乏好的高級學習資料衙荐,收集了部分12年網站架構師授課的TP5捞挥、laravel、swoole赫模、swoft树肃、高并發(fā)、分布式等資料瀑罗,現在免費分享給大家胸嘴,官方群:820469789,大牛帶你裝逼帶你飛

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末斩祭,一起剝皮案震驚了整個濱河市劣像,隨后出現的幾起案子,更是在濱河造成了極大的恐慌摧玫,老刑警劉巖耳奕,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異诬像,居然都是意外死亡屋群,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門坏挠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芍躏,“玉大人,你說我怎么就攤上這事降狠《钥ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵榜配,是天一觀的道長否纬。 經常有香客問我,道長蛋褥,這世上最難降的妖魔是什么临燃? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮烙心,結果婚禮上膜廊,老公的妹妹穿的比我還像新娘。我一直安慰自己弃理,他們只是感情好溃论,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布屎蜓。 她就那樣靜靜地躺著痘昌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上辆苔,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天算灸,我揣著相機與錄音,去河邊找鬼驻啤。 笑死菲驴,一個胖子當著我的面吹牛,可吹牛的內容都是我干的骑冗。 我是一名探鬼主播赊瞬,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼贼涩!你這毒婦竟也來了巧涧?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤遥倦,失蹤者是張志新(化名)和其女友劉穎谤绳,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體袒哥,經...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡缩筛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了堡称。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞎抛。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖粮呢,靈堂內的尸體忽然破棺而出婿失,到底是詐尸還是另有隱情,我是刑警寧澤啄寡,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布豪硅,位于F島的核電站,受9級特大地震影響挺物,放射性物質發(fā)生泄漏懒浮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一识藤、第九天 我趴在偏房一處隱蔽的房頂上張望砚著。 院中可真熱鬧,春花似錦痴昧、人聲如沸稽穆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舌镶。三九已至柱彻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間餐胀,已是汗流浹背哟楷。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留否灾,地道東北人卖擅。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像墨技,于是被迫代替她去往敵國和親惩阶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內容