亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于驗證碼驗證的問題,很多人都不能驗證,直接進入了管理頁面,我來為大家解惑下

在dologin。php頁面下有下列這些代碼

verifys=$_POST['verifys'];

$verify1=$_SESSION['verify'];

$autoFlag=$_POST['autoFlag'];//7天自動

echo $verify1."<br/>";

echo $username."<br/>";

echo $password."<br/>";

echo ?$verifys;

if($verifys==$verify1){


正在回答

5 回答

我是跟著老師做的,代碼都一樣,但在填寫好驗證碼,點擊提交,它就提示驗證碼錯誤,請重新登錄,如圖:http://img1.sycdn.imooc.com//565719bb0001902a07090458.jpg

提交后,就會出現:http://img1.sycdn.imooc.com//56571a220001a6fe06000406.jpg

代碼和老師的一樣?。何蚁胍欢ㄊ莍f($verify==$verify1)出了問題,不然驗證碼對了,還提示錯,我想就$verify,$verify1兩者不相等,可是我又不知道哪里錯了,都是跟著老師做的,請指教?。?!

<?php

require_once '../include.php';//與數據庫打交道,把它包含進來,它設置了鏈接數據庫的操作

//session_start();//下面用到session則這里要開啟一下

$username=$_POST['username'];

$password=md5($_POST['password']);//給密碼加密

$verify=$_POST['verify'];

$verify1=$_SESSION['verify'];//還要接受一下驗證碼的值

$autoFlag=$_POST['autoFlag'];//接收來自自動登陸復選框的name的值


if($verify==$verify1){

? ? $sql="select * from imooc_admin where username='{$username}' and password='{$password}'";

? ? $row=checkAdmin($sql);//調用一下在admin.inc.php中設置好的函數,并返回給row

? ? //var_dump($row);//打印管理員信息

? ? if($row){

? ? ? ? //如果選了一周內自動登陸

? ? ? ? if($autoFlag){

? ? ? ? ? ? setcookie("adminId",$row('id'),time()+7*24*3600);//當前時間戳加這么多秒,就是一周

? ? ? ? ? ? setcookie("adminName",$row('username'),time()+7*24*3600);

? ? ? ? }

? ? ? ? $_SESSION['adminName']=$row['username'];

? ? ? ? $_SESSION['adminId']=$row['id'];//也要判斷一下存儲管理員的id號,有的話就登陸成功

? ? ? ? alertMes("登陸成功", "index.php");

? ? }else{

? ? ? ? alertMes("登陸失敗,請重新登陸","login.php");

? ? }

}else{

? ? alertMes("驗證碼錯誤,請重新登陸", "login.php");

}


0 回復 有任何疑惑可以回復我~
#1

低語憶霖 提問者

遇到問題要先自己想想解決辦法,既然你覺得這兩個不同,你就先把if()判斷函數以下的部分都注釋掉,上面echo兩個驗證碼$verify,$verify1,看看一不一樣,或者再去login頁面把$_SESSION['verify'];輸出,看下和當前頁面的驗證碼值一不一樣
2015-12-02 回復 有任何疑惑可以回復我~

驗證時總是出現驗證碼錯誤,那是我們的語法不嚴格,使用$_SESSION的變量以及任何其他的變量前($_POST,$_GET..)需要檢測變量是否已經設置。
使用$uname = isset($_SESSION['MM_username']) ? $_SESSION['MM_username'] : '';
而不是$uname = $_SESSION['MM_username'];

這樣既可以消除那種沒有定義的警告,又能使驗證成功,而且還解決了無法接收到表單傳遞的數據。


當然實際項目中往往是屏蔽notice信息的,使用error_reporting(E_ALL ^ E_NOTICE);或者在php.ini里作相應修改即可。不過這種方式也會造成一些很麻煩的錯誤,所以說最好改掉這些錯誤警告,而不是一味的屏蔽

0 回復 有任何疑惑可以回復我~

為什么我include.php最后面加上connect();然后圖片就不顯示了。。

0 回復 有任何疑惑可以回復我~
#1

低語憶霖 提問者

connect是連接數據庫,如果連接數據庫出錯,產生致命錯誤,就不會顯示了,你去connect下仔細查看一下
2015-12-02 回復 有任何疑惑可以回復我~

為什么在提交登錄時總是跳到驗證碼頁面?


0 回復 有任何疑惑可以回復我~
#1

低語憶霖 提問者

alertMes()里的地址你看下 是哪個地址
2015-11-25 回復 有任何疑惑可以回復我~

上面代碼是我測試用的,http://img1.sycdn.imooc.com//5653e5cf0001421706280428.jpg這圖是老師那下的源代碼,為了查看為什么無法驗證,我進行 了下列測試,,輸出echo $verify;echo $verify1,然后發現兩個一樣。,猜測估計是$verify自動調用$_SESSION['verify']的值,然后,我改為我自己的那樣,變為$verifys,當然結果就能驗證了

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
手把手教你實現電商網站后臺開發
  • 參與學習       117253    人
  • 解答問題       2101    個

手把手教你用PHP搭建電子商務平臺,由淺入深教你搭建電商系統

進入課程

關于驗證碼驗證的問題,很多人都不能驗證,直接進入了管理頁面,我來為大家解惑下

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號