關于驗證碼驗證的問題,很多人都不能驗證,直接進入了管理頁面,我來為大家解惑下
在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){
2015-11-26
我是跟著老師做的,代碼都一樣,但在填寫好驗證碼,點擊提交,它就提示驗證碼錯誤,請重新登錄,如圖:
提交后,就會出現:
代碼和老師的一樣?。何蚁胍欢ㄊ莍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");
}
2016-05-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里作相應修改即可。不過這種方式也會造成一些很麻煩的錯誤,所以說最好改掉這些錯誤警告,而不是一味的屏蔽
2015-11-27
為什么我include.php最后面加上connect();然后圖片就不顯示了。。
2015-11-24
為什么在提交登錄時總是跳到驗證碼頁面?
2015-11-24
上面代碼是我測試用的,
這圖是老師那下的源代碼,為了查看為什么無法驗證,我進行 了下列測試,,輸出echo $verify;echo $verify1,然后發現兩個一樣。,猜測估計是$verify自動調用$_SESSION['verify']的值,然后,我改為我自己的那樣,變為$verifys,當然結果就能驗證了