• <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-07-14來源:作者:點擊數: 標簽:
    原理:生成一個圖片,并且保存圖片中顯示的字符到SESSION.在登陸時判斷輸入的校驗碼是否和SESSION中校驗碼相同. 演示地址: http://www.bingdu.net/bbs/ 這是生成校驗碼和圖片的文件checkNumber. php ?php session_start(); if($act == init) { Header(Content-
    原理:生成一個圖片,并且保存圖片中顯示的字符到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

    老湿亚洲永久精品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>