教你几个PHP实例:用PHP实现表单验证码登陆校验

    作者:课课家更新于: 2015-11-13 22:43:13

    大神带你学编程,欢迎选课

    欢迎来到小编的文章进行学习阅读,想必大家又有很多问题吧,在这里会有你想要收获的答案,请大家慢慢学习吧。excel2010视频教程

    原理:生成一个图片,并且保存图片中显示的字符到SESSION.在登陆时判断输入的校验码是否和SESSION中校验码相同。
    这是生成校验码和图片的文件checkNumber.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();
    }
    /*
    使用方法: excel2010教程
    在HTML文件中加入在登陆校验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();
            }

     

    高级语言的出现使得计算机程序设计语言不再过度地依赖某种特定的机器或环境。这是因为高级语言在不同的平台上会被编译成不同的机器语言,而不是直接被机器执行。最早出现的编程语言之一FORTRAN的一个主要目标,就是实现平台独立。[1]
    虽然大多数的语言可以既可被编译又可被解译,但大多数仅在一种情况下能够良好运行。在一些编程系统中,程序要经过几个阶段的编译,一般而言,后阶段的编译往往更接近机器语言。这种常用的使用技巧最早在1960年代末用于BCPL,编译程序先编译一个叫做“0代码”的转换程序(representation),然后再使用虚拟器转换到可以运行于机器上的真实代码。这种成功的技巧之后又用于Pascal和P-code,以及Smalltalk和二进制码,在很多时候,中间过渡的代码往往是解译,而不是编译的。[1]
    如果所使用的翻译的机制是将所要翻译的程序代码作为一个整体翻译,并之后运行内部格式,那么这个翻译过程就被成为编译。因此,一个编译器是一个将人可阅读的程序文本(叫做源代码)作为输入的数据,然后输出可执行文件(object code)。所输出的可执行文件可以是机器语言,由计算机的中央处理器直接运行,或者是某种模拟器的二进制代码。[1]
    如果程序代码是在运行时才即时翻译,那么这种翻译机制就被称作直译。经直译的程序运行速度往往比编译的程序慢,但往往更具灵活性,因为它们能够与执行环境互相作用。[1]excel2010

    更多视频课程文章的课程,可到课课家官网查看。我在等你哟。

课课家教育

未登录

1