• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    使用PHP實現登陸驗證碼

    發布: 2007-7-14 19:53 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 15次 | 進入軟件測試論壇討論

    領測軟件測試網 原理:生成一個圖片,并且保存圖片中顯示的字符到SESSION.在登陸時判斷輸入的校驗碼是否和SESSION中校驗碼相同.
    演示地址:

    http://www.bingdu.net/bbs/

    這是生成校驗碼和圖片的文件checkNumber.php

    <?php
    session_start();

    if($act == "init")
    {
        Header("Content-type: image/png");
        srand(microtime() * 100000);
        $login_check_number = strval(rand("1111","9999"));

        session_register("login_check_number");
        //這里是使用了SESSION來保存校驗碼.
        //當然也可以用COOKIE
        //setcookie("login_check_number",$login_check_number);
        //然后將第一行的session_start()刪除;
        //不推薦使用COOKIE,因為使用COOKIE并不能進行安全的驗證.

        $h_img = imagecreate(40,17);
        $c_black = ImageColorAllocate($h_img, 0,0,0);
        $c_white = ImageColorAllocate($h_img, 255,255,255);
        imageline($h_img, 1, 1, 350, 25, $c_black);
        imagearc($h_img, 200, 15, 20, 20, 35, 190, $c_white);
        imagestring($h_img, 5, 2, 1, $login_check_number, $c_white);
        ImagePng($h_img);
        ImageDestroy($h_img);

        die();
    }
    /*
    使用方法:
    在HTML文件中加入<input type=text name=number maxlength=4><img src=checkNumber.php?act=init>

    在登陸校驗PHP頁面中加入以下代碼(注意:在加入代碼前不能有輸出,因為使用了SESSION)

    //$number 是你輸入的校驗碼的值

    include_once("./checkNumber.php");

    //檢驗校驗碼

    if($number != $login_check_number || empty($number))
    {
        print("校驗碼不正確!");
        die();
    }
    */
    ?>

    使用SESSION的問題:
    如果打開登陸頁在SESSION的失效后才進行登陸,那么登陸會失敗.
    使用COOKIE的問題:
    COOKIE是保存在客戶端的,所以如果使用COOKIE的話還不如不用.

    針對VBB論壇.保存checkNumber.php后.修改MYSQL數據庫template數據表的title 為 logincode forumhome_logincode username_loggedout的template 內容.
    然后在member.php的
    if ($action=="login")
    后加入

        //檢驗校驗碼
        include_once("./checkNumber.php");
        if($number != $login_check_number || $number == "")
        {
            print("校驗碼不正確!");
            die();
        }

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>