zoukankan      html  css  js  c++  java
  • php编程——验证码的实现(session方法)

    index.PHP(实现输入验证码页面)代码如下:

    <html>
    <head>
    <title>check code</title>
    </head>
    <body>
    <form name=check method=post action=check.php>
    <input type=hidden name=init value=1>
    验证码:<input type=text name=code maxlength=4 style="width=50px;">

    <!--得到验证码图片-->
    <img src=image.php>

    <p>
    <input type=submit value="提交">
    </form>
    </body>
    </html>

    image.php(验证码生成页面)代码如下:

    <?php
    session_start();
    srand((double)microtime()*1000000); 
    $authnum=rand(1000,9999);

    $_SESSION["authnum"]= $authnum;
    //session_register("authnum");  这个php4.2以上版本已经不支持了,修改城红色显示
    header("content-type:image/png");
            function creat_image($width,$height,$authnum)
            {
                    srand((double)microtime()*1000000); 
                    $im = imagecreate($width,$height); 
                    $black = ImageColorAllocate($im, 0,0,0); 
                    $white = ImageColorAllocate($im, 255,255,255); 
                    $gray = ImageColorAllocate($im, 200,200,200); 
                    imagefill($im,0,0,$gray);

                    //将四位整数验证码绘入图片 
                    imagestring($im, 5, 10, 3, $authnum, $black); 
                    for($i=0;$i<200;$i++)   //加入干扰象素 
                    {         
                        $randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
                        imagesetpixel($im, rand()%70 , rand()%30 , $randcolor); 
                    } 
                    ImagePNG($im); 
                    ImageDestroy($im); 
            }
    creat_image(60,20,$authnum);
    ?>

    check.php(验证界面)代码如下:

    <?php
    session_start();

    if(!isset($init)) $init=0;
    //if($init)

    echo ($_POST["code"]);
    echo $authnum;
    if (isset($_POST['dosubmit']))

    {
     if($_POST['code']==$authnum)
     {
      echo "验证码正确!";
     }

     else echo "验证码错误,请重新输入!";
    }
    else echo "调用页面错误!"
    ?>

    以上代码在调试过程中,出现以下错误提示:

    Fatal error: Call to undefined function session_register() 的解决方法

    1、PHP4.2以上版本不需要用session_register()注册SESSION变量,直接用: 
    $_SESSION["string"]=“string"; 
    赋值。 
    2、用$_SESSION["string"]获取变量值。 
    3、用$_SESSION["string"][$n]可传递SESSION数组。
  • 相关阅读:
    嵌入式开发之davinci--- spi 中的时钟极性CPOL和相位CPHA
    Setting up a Single Node Cluster Hadoop on Ubuntu/Debian
    Install Java JDK JRE on Ubuntu/Debian with Apt-Get
    使用WICleanup清理Windows Installer 冗余文件
    WinSxS文件夹瘦身
    Linux时间同步+国内常用的NTP服务器地址
    How to fix Mysql table crashes
    Monitorix:一款面向Linux的轻型系统和网络监测工具
    How To Secure Apache with Let's Encrypt on Ubuntu (Free SSL)
    Latex表格太宽处理方法 (How to shorten Latex table length)
  • 原文地址:https://www.cnblogs.com/snowhite/p/7119678.html
Copyright © 2011-2022 走看看