新聞中心
PHP中模擬登錄的驗(yàn)證碼問(wèn)題應(yīng)該如何解決?
首先獲取一個(gè)cookies值,再帶著這個(gè)cookies去獲取驗(yàn)證碼圖片,你再帶著驗(yàn)證碼值和登錄數(shù)據(jù)去模擬post登錄。下面是一個(gè)模擬獲取驗(yàn)證碼的。這里忽略獲取cookies的過(guò)程。注意文件為UTF-8無(wú)BOM格式

“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是創(chuàng)新互聯(lián)公司的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個(gè)不僅審美在線,而且實(shí)用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對(duì)網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站開發(fā)、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無(wú)止境。
如何用PHP生成驗(yàn)證碼?
PHP生成驗(yàn)證碼的原理:使用PHP的GD庫(kù),生成一張帶驗(yàn)證碼的圖片,并將驗(yàn)證碼保存在Session中。PHP生成驗(yàn)證碼的大致流程有:
1、產(chǎn)生一張png的圖片;
2、為圖片設(shè)置背景色;
3、設(shè)置字體顏色和樣式;
4、產(chǎn)生4位數(shù)的隨機(jī)的驗(yàn)證碼;
5、把產(chǎn)生的每個(gè)字符調(diào)整旋轉(zhuǎn)角度和位置畫到png圖片上;
6、加入噪點(diǎn)和干擾線防止注冊(cè)機(jī)器分析原圖片來(lái)惡意破解驗(yàn)證碼;
7、輸出圖片;
8、釋放圖片所占內(nèi)存。
php生成的驗(yàn)證碼10分鐘內(nèi)有效如何做?
在進(jìn)行驗(yàn)證碼持久化的時(shí)候,我們可以設(shè)置一個(gè)有效時(shí)間,然后用戶在提交驗(yàn)證碼的時(shí)候,我們根據(jù)這個(gè)有效時(shí)間然后進(jìn)行判斷
(1)存儲(chǔ)在數(shù)據(jù)庫(kù)中,加一個(gè)過(guò)期時(shí)間
(2)存在redis里面,然后加入一個(gè)有效時(shí)間,查詢?yōu)榭站褪遣淮嬖?/p>
如何自動(dòng)檢測(cè)session過(guò)期?
個(gè)人認(rèn)為,能不用SESSION,盡量不用SESSION吧,因?yàn)镾ESSION有單機(jī)的問(wèn)題,不適合集群,而且SESSION的回收清理也不太方便,很容易受到攻擊,比如說(shuō)用SESSION記錄驗(yàn)證碼,如果有人CC攻擊驗(yàn)證碼,就會(huì)產(chǎn)生很多垃圾數(shù)據(jù).PHP默認(rèn)是一個(gè)SESSION對(duì)應(yīng)一個(gè)磁盤文件.Ubuntu/Debian上apt安裝的PHP會(huì)帶有一個(gè)定時(shí)任務(wù)/etc/cron.d/php5來(lái)清理會(huì)話文件.即使用Redis存儲(chǔ)PHP SESSION,并設(shè)置了過(guò)期時(shí)間,也只能依賴Redis周期性隨機(jī)檢測(cè)這種被動(dòng)的過(guò)期機(jī)制來(lái)清除會(huì)話記錄(有殘余).
Memcached作者說(shuō)過(guò),Memcached不適合存SESSION,因?yàn)镸emcached默認(rèn)的LRU清理機(jī)制會(huì)在內(nèi)存不足時(shí)清理掉一些記錄,可能會(huì)導(dǎo)致用戶無(wú)緣無(wú)故地掉線.Redis默認(rèn)設(shè)置是noeviction(不收回),內(nèi)存不夠直接報(bào)錯(cuò).
到此,以上就是小編對(duì)于php驗(yàn)證碼無(wú)法顯示怎么解決呢的問(wèn)題就介紹到這了,希望這4點(diǎn)解答對(duì)大家有用。
本文標(biāo)題:PHP中模擬登錄的驗(yàn)證碼問(wèn)題應(yīng)該如何解決?(PHP驗(yàn)證碼無(wú)法顯示怎么解決)
標(biāo)題網(wǎng)址:http://fisionsoft.com.cn/article/ccigoog.html


咨詢
建站咨詢
