求验证码代码

blworker 2003-12-26 03:53:38
初学乍用,不怎么会.

求一个完整的验证码程序,只要能运行,100分相送
...全文
940 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cain 2003-12-27
  • 打赏
  • 举报
回复
up
jiakingcool 2003-12-26
  • 打赏
  • 举报
回复
给你一个我个人认为比较实用的:
1.--------------
基于数据库
首先,在MySql中建立一个存放用户信息的数据库

数据库名为XinXiKu ,表名为user;表定义如下:

create table user(
ID INT(4) NOT NULL AUTO_INCREMENT,
name VARCHAR(8) NOT NULL,
password CHAR(8) NOT NULL,
PRIMARY KEY(ID)
)


说明:

1、ID为一个序列号,不为零而且自动递增,为主键;

2、name为用户名,不能为空;

3、password为用户密码,不能为空;

以下是用户验证文件login.php

//判断用户名是否设置
if(!isset($PHP_AUTH_USER))
{
header("WWW-Authenticate:Basic realm="身份验证功能"");
header("HTTP/1.0 401 Unauthorized");
echo "身份验证失败,您无权共享网络资源!";
exit();
}
/*连接数据库*/
$db=mysql_connect("localhost","root","");
//选择数据库
mysql_select_db("XinXiKu",$db);
//查询用户是否存在
$result=mysql_query("SELECT * FROM user where name='$PHP_AUTH_USER' and password='$PHP_AUTH_PW'",$db);
if ($myrow = mysql_fetch_row($result))
{
//以下为身份验证成功后的相关操作
...
}
else
{
//身份验证不成功,提示用户重新输入
header("WWW-Authenticate:Basic realm="身份验证功能"");
header("HTTP/1.0 401 Unauthorized");
echo "身份验证失败,您无权共享网络资源!";
exit();
}
?>




程序说明:

在程序中,首先检查变量$PHP_AUTH_USER是否已经设置。如果没有设置,说明需要验证,脚本发出HTTP 401错误号头标,告诉客户端的浏览器需要进行身份验证,由客户端的浏览器弹出一个身份验证窗口,提示用户输入用户名和密码,输入完成后,连接数据库,查询该用用户名及密码是否正确,如果正确,允许登录进行相关操作,如果不正确,继续要求用户输入用户名和密码。

------------------------------
下载是不用数据库的
<?

  /* 检查$PHP_AUTH_USER和$PHP_AUTH_PW中的值*/

  if ((!isset($PHP_AUTH_USER)) || (!isset($PHP_AUTH_PW))) {

    /* 如果没有值,则发送一个能够引发对话框出现的头部*/

    header('WWW-Authenticate: Basic realm="My Private Stuff"');

    header('HTTP/1.0 401 Unauthorized');

    echo 'Authorization Required.';

    exit;

  } else if ((isset($PHP_AUTH_USER)) && (isset($PHP_AUTH_PW))){

    /* 变量中有值,检查它们是否正确*/

    if (($PHP_AUTH_USER != "validname") || ($PHP_AUTH_PW != "goodpassword")) {

     /* 如果输入的用户名和口令中有一个不正确,则发送一个能够引发对话框出现的头部 */

     header('WWW-Authenticate: Basic realm="My Private Stuff"');

     header('HTTP/1.0 401 Unauthorized');

     echo 'Authorization Required.';

     exit;

    } else if (($PHP_AUTH_USER == "validname") || ($PHP_AUTH_PW == "goodpassword")) {

     /* 如果二个值都正确,显示成功的信息 */

     echo "<P>You're authorized!</p>";

    }

  }

  ?>

  需要注意的是,如果你使用的是基于文件的保护机制,它并不能保证目录中所有的文件的安全。它可能保护大部分的文件,如果你认为它能够保护给定目录中的所有文件,你的这种认识就需要变变了。

八、PHP和COM
  如果你喜欢冒险,并且在Windows上运行CGI、ISAPI或Apache模块版本的PHP,就可以访问COM的函数。好了,详细解释COM的工作就交给微软和许多大部头的书了,为了能简单地了解一下COM的功能,下面是一小段常见的脚本。

  这一段PHP脚本在后端启动微软的字处理Word,打开一个新的文档,输入一些文字,保存文档,并关闭Word。

  <?

  // 建立一个指向新COM组件的索引

  $word = new COM("word.application") or die("Can't start Word!");

  // 显示目前正在使用的Word的版本号

  echo "Loading Word, v. {$word->Version}<br>";

  // 把它的可见性设置为0(假),如果要使它在最前端打开,使用1(真)

  // to open the application in the forefront, use 1 (true)

  $word->Visible = 0;

  // 在Word中创建新的文档

  $word->Documents->Add();

  // 在新文档中添加文字

  $word->Selection->TypeText("Testing 1-2-3...");

  //把文档保存在Windows临时目录中

  $word->Documents[1]->SaveAs("/Windows/temp/comtest.doc");

  // 关闭与COM组件之间的连接

  $word->Quit();

  // 在屏幕上显示其他信息

  echo "Check for the file...";

  ?>
zzh26 2003-12-26
  • 打赏
  • 举报
回复
<?php

/*
* Filename: authimg.php
* Author: hutuworm
* Date: 2003-04-28
* @Copyleft hutuworm.org
*/
//生成验证码图片
Header("Content-type: image/PNG");
session_start();

srand((double)microtime()*1000000);
$_SESSION[authnum]=rand(10000,99999);
//srand((double)microtime()*1000000);
$im = imagecreate(62,20);
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
$gray = ImageColorAllocate($im, 200,200,200);
imagefill($im,68,30,$gray);
//while(($authnum=rand()%100000)<10000);
//将五位整数验证码绘入图片
imagestring($im, 5, 10, 3, $_SESSION[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);
?>
ustb 2003-12-26
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2171/2171093.xml?temp=.9089624

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧