首頁 >後端開發 >PHP問題 >php中 驗證碼不同步怎麼辦

php中 驗證碼不同步怎麼辦

藏色散人
藏色散人原創
2021-10-15 10:48:271571瀏覽

php中驗證碼不同步是因為頁面載入login.php頁面時,圖片的載入跟其他標籤載入是異步的,所以其他標籤資訊先加載,而後才會去載入圖片。

php中 驗證碼不同步怎麼辦

本文操作環境:windows7系統、PHP7.1版、DELL G3電腦

#php中驗證碼不同步怎麼辦?

完美解決php驗證碼session不同步的問題

#各位搞開發的人都經歷過被怪現象折磨的滋味,怎麼說呢?想找原因找不出來,想解決又解決不了,接下來我們就來談談php驗證碼這個怪僻。 。

先給大家上個圖,相信你們也似曾相識。 。

php中 驗證碼不同步怎麼辦

你會發現兩個值竟然不一樣,不一樣咋驗證? ? ? ? ?

於是乎,我就在網路上找到了原因:頁面載入login.php頁面時,圖片的載入跟其他標籤載入是異步的,所以其他標籤資訊先加載,而後才會去載入src(圖片),不同步導致「驗證碼」也不同步。

知道了原因,作為菜鳥的我看了別人寫的解決方案後仍然無從下手。 。

終於,在一個偶然的機會,我從一個專案中找到答案。 。

其實,解決方法很簡單,根本不用理會顯示的值相同不相同,舉例。 。

login.php 登入頁面

<form action="login_check.php" method="post">
验证码:
<input name="checkcode" type="text" /><img src="yan.php" alt="看不清?点击更换"    style="max-width:90%" onClick="this.src=this.src+&#39;?&#39;"  />//yan.php是生成验证码的页面。
</form>

login_check.php 驗證頁面

<?php 
    session_start();//开启session
    $checkcode= strtolower($_POST["checkcode"]);//获取验证码文本框的值
    echo $checkcode;//输出验证码文本框的值
    echo $_SESSION[&#39;VerifyCode&#39;]//输出yan.php输出的值
?>

提交後,你會驚訝的發現,如果我在login.php輸入與產生驗證碼的值一樣的話,那麼在login_check.php輸出的兩個值是除了大小寫不一樣,字母是一樣的。

當然大小寫的問題,我們都能解決。

講到這裡,我相信,不同步的問題就算解決了

當然,我知道有些最求完美的人喜歡用ajax,根據個人所好,屏閃來閃去,看起來也不太爽,不過,用ajax的話,不要提交到本頁面,不然驗證不了,通過一個外部文件進行異步驗證是沒有問題的。

推薦學習:《PHP影片教學

以上是php中 驗證碼不同步怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn