设置密码

验证码错误,请重新填写

免费建站旅程马上开始

开始建站
建站中

已有帐号?直接登录

首页>森动学院>网站建设教程 > 建站程序教程:如何实现表单验证码登陆校验?
建站程序教程:如何实现表单验证码登陆校验?
发布时间: 2014-08-14
验证码是表单验证的一种重要形式,是当前许多表单3图片验证码两种实现方式的原理
服务器验证方式
行讨论,并且结合图片验证码的实现,分别对其在服务器端用户在进入登陆页时(index.aSp),页面程序按照一定实现和客户端的实现进行详细的分析。算法生成一组数据,并存储到Sesssion变量中以便提交后
验证码的作用验证比较,然后编成合理的HTML字符串用Response.Write
(1)防止使用特定破解程序进行不断的非法登陆尝试写入,形成页面显示的与Sesssion变量数据对应的图片排,如:发送垃圾邮件或通过同时反复登录多个帐户延缓、阻列,即:图片验证码。
塞甚至使某个Web应用崩溃。用户提交页面后,交与后台验证程序(check-asp)并与
(2)防止非法批量注册,生成大量垃圾帐户。存储的Sesssion变量进行验证比较,成功和失败分别进行(3)防止利用机器人非法向BBS等Web应用灌水,提不同处理和引导。
交垃圾数据。3.2客户端验证方式
(4)培养用户谨慎、负责的操作态度。该验证方式在网页提交到后台之前通过客户端脚本验
证。生成验证码图片与上面的方法相同,但不在服务器端存。


以下为引用的内容:
<?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=http://edu.136z.com/developer/checkNumber.php?act=init>在登陆校验PHP页面中加入以下代码(注意:在加入代码前不能有输出,因为使用了SESSION) 
//$number  是你输入的校验码的值   
include_once("./http://edu.136z.com/developer/checkNumber.php");   
//检验校验码   
if($number  !=  $login_check_number  ||  empty($number)) 
        print("校验码不正确!"); 
        die(); 
*/ 
?>
使用SESSION的问题:
如果打开登陆页在SESSION的失效后才进行登陆,那么登陆会失败。 中国站长_站,为中文网站提供动力
使用COOKIE的问题:
COOKIE是保存在客户端的,所以如果使用COOKIE的话还不如不用。
针对VBB论坛。保存http://edu.136z.com/developer/checkNumber.php后。修改MYSQL数据库template数据表的title  为  logincode  forumhome_logincode  username_loggedout的template  内容。
然后在member.php的
if  ($action=="login")
后加入
以下为引用的内容:
       //检验校验码
        include_once("./http://edu.136z.com/developer/checkNumber.php");
        if($number  !=  $login_check_number  ||  $number  ==  "")
        {
                print("校验码不正确!");
                die();
        }
 
以下为引用的内容:
//*****************************************************************
// *.php 使用文件,看清楚了,怎么使用在这里
//
//*****************************************************************
<?php 
//require (FILE_DIR."smtp.php");
$smtpserver = "smtp.163.com";//SMTP服务器
$smtpserverport =25;//SMTP服务器端口
$smtpusermail = "webjx@163.com";//SMTP服务器的用户邮箱
$smtpemailto = "webjx@163.com";//发送给谁
$smtpuser = "webjx";//SMTP服务器的用户帐号
$smtppass = "webjx";//SMTP服务器的用户密码
$mailsubject = "Test Subject";//邮件主题 
$mailbody = "<h1>This is a test mail</h1>";//邮件内容
$mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件
$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.
$smtp->debug = TRUE;//是否显示发送的调试信息
$smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype);


文章来源:森动网小鱼儿,转载请注明出处!