PHP+Ajax驗證碼驗證使用者登入_php執行個體

來源:互聯網
上載者:User
用AJAX 驗證使用者登入的一個好處是不重新整理跳轉頁面,外加用到驗證碼就更安全了,摸索的寫了下。一共用到三個檔案:

yz.php: 產生驗證碼的PHP 檔案,將驗證碼將在SESSION 裡,供登入時對比調用
index.php: 使用者登入的HTML 檔案
loginCheck.php: 驗證使用者登入的檔案

下面一一解析:
yz.php 檔案

<?php session_start(); //產生驗證碼圖 Header("Content-type: image/PNG"); //長與寬 $im = imagecreate(44,18); // 設定背景色: $back = ImageColorAllocate($im, 245,245,245); // 填充背景色: imagefill($im,0,0,$back); srand((double)microtime()*1000000); $vcodes; //產生4位元字 for($i=0;$i<4;$i++){  $font = ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255));  $authnum=rand(1,9);  $vcodes.=$authnum;  imagestring($im, 5, 2+$i*10, 1, $authnum, $font); } //加入幹擾象素 for($i=0;$i<100;$i++){  $randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));  imagesetpixel($im, rand()%70 , rand()%30 , $randcolor); }   ImagePNG($im); ImageDestroy($im); // 將四位的驗證碼儲存在 SESSION 裡,登入時調用對比 $_SESSION["VCODE"]=$vcodes;?>

index.php: 注意,在這檔案裡不要取 $_SESSION["VCODE"], 否則會取晚一步的,重新整理後才能顯示上一個驗證碼

在 loginCheck.php 裡驗證就好了

 管理後台| 請登入    
 
使用者名稱: 密 碼: 驗證碼:

loginCheck.php 驗證使用者登入的檔案

<?php  session_start(); include("../conn/connDB.php");  // 取得POST過來的參數: $username=$_POST["username"]; $password=md5($_POST["password"]); $authCode=$_POST["authCode"];         $feedback="no";//對比是否==SESSION中的驗證碼,不能放在用戶端做,否則取不正確的值 if($authCode==$_SESSION["VCODE"]){   $SQL="select * from users where username='$username' and password='$password'";   $result=mysql_query($SQL);   $rows=mysql_num_rows($result);  if($rows==1)                       // 驗證成功   $feedback="ok";   $_SESSION["admin"]=true;           //為了後台安全,存入SESSION,表明 ADMIN 已登入,供後面調用  }   echo $feedback; ?>

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援指令碼之家。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.