javascript - 透過session會話,php產生的驗證碼點擊就可以刷新,為什麼?
PHP中文网
PHP中文网 2017-05-16 12:59:41
0
3
438

透過php產生驗證碼,然後用img標籤輸出。

請問,為什麼有session_start()的話,onclick事件這樣寫,點選就會有刷新驗證碼的效果? (會出現新的驗證碼)
沒有session會話,點選無效。

html代碼

<img src="verifyCode.php" onclick="this.src='verifyCode.php'"/>

php

//省略验证码生成代码...

imagepng($image);//输出图片

session_start();//开始会话
PHP中文网
PHP中文网

认证0级讲师

全部回覆(3)
某草草

onclick="this.src='verifyCode.php?id='+Math_random()"/>
這樣應該就行了。給圖片加個隨機數,每次產生的都不一樣 就能刷新了

曾经蜡笔没有小新

這段程式碼session_start()是不是在圖片製作之前?
如果是之前的話,一般製作畫布的時候需要注入驗證資訊到$_SESSION,可能因為沒有開啟session導致注入失敗,終止製作驗證碼圖片。

给我你的怀抱

利用session來校驗圖形驗證碼,一般的原理是先在session裡面儲存目前的驗證碼a,再透過a來產生圖形驗證碼,並回傳給客戶端。 客戶端透過輸入驗證碼a給伺服器,伺服器再根據目前session儲存的資料進行校驗。

如果你用的是這種方法,又沒有啟用session,就沒辦法在session裡對驗證碼a進行儲存替換,當然會出錯。
(備註:圖片的輸出和session的啟用無關)

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板