php实现用户登录验证码,php 用户登录验证码的实现方法_PHP教程

下面我们用Mysql数据库教程来存储用户的身份。我们需要从数据库中提取每个帐号的用户名和密码以便与$PHP_AUTH_USER和$PHP_AUTH_PW变量进行比较,判断用户的真实性。

首先,在MySql中建立一个存放用户信息的数据库

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

View Code 1 create table user(

2 ID INT(4) NOT NULL AUTO_INCREMENT,

3 name VARCHAR(8) NOT NULL,

4 password CHAR(8) NOT NULL,

5 PRIMARY KEY(ID)

6 )

说明:

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

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

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

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

View Code 1 //判断用户名是否设置

2 if(!isset($PHP_AUTH_USER))

3 {

4 header("WWW-Authenticate:Basic realm="身份验证功能"");

5 header("HTTP/1.0 401 Unauthorized");

6 echo "身份验证失败,您无权共享网络资源!";

7 exit();

8 }

9 /*连接数据库*/

10 $db=mysql教程_connect("localhost","root","");

11 //选择数据库

12 mysql_select_db("XinXiKu",$db);

13 //查询用户是否存在

14 $result=mysql_query("SELECT * FROM user where name='$PHP_AUTH_USER' and password='$PHP_AUTH_PW'",$db);

15 if ($myrow = mysql_fetch_row($result))

16 {

17 //以下为身份验证成功后的相关操作

18 ...

19 }

20 else

21 {

22 //身份验证不成功,提示用户重新输入

23 header("WWW-Authenticate:Basic realm="身份验证功能"");

24 header("HTTP/1.0 401 Unauthorized");

25 echo "身份验证失败,您无权共享网络资源!";

26 exit();

27 }

28 ?>

程序说明:

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

函数说明:

1、isset():用于确定某个变量是否已被赋值。根据变量值是否存在,返回true或false

2、header():用于发送特定的HTTP标头。注意,使用header()函数时,一定要在任何产生实际输出的HTML或PHP代码前面调用该函数。

3、mysql_connect():打开 MySQL 服务器连接。

4、mysql_db_query():送查询字符串 (query) 到 MySQL 数据库。

5、mysql_fetch_row():返回单列的各字段。

二、用session实现服务器验证

对于需要身份验证的页面,使用apache服务器验证是最好不过的了。但是,apache服务器验证的界面不够友好。而且,cgi模式的php,iis下的php,都不能使用apache服务器验证。这样,我们可以利用session在不同页面间保存用户身份,达到身份验证的目的。

在后端我们同样利用上面的Mysql数据库存放用户信息。

我们先编写一个用户登录界面,文件名为login.php,代码职下:

View Code 12 用户名:

3 口 令:

4

5

login1.php处理提交的表单,代码如下:

View Code 1 $db=mysql_connect("localhost","root","");

2 mysql_select_db("XinXiKu",$db);

3 $result=mysql_query("SELECT * FROM user where name='$name' and password='$pass'",$db);

4 if ($myrow = mysql_fetch_row($result))

5 {

6 //注册用户

7 session_start();

8 session_register("user");

9 $user=$myrow["user"];

10 // 身份验证成功,进行相关操作

11 ...

12 }

13 else

14 {

15 echo"身份验证失败,您无权共享网络资源!";

16 }

17 ?>

这里需要说明的是,用户可以使用在后续的操作中用**http://domainname/next.php?user=用户名 **来绕过身份验证。所以,后续的操作应先检查变量是否注册:已注册,则进行相应操作,否则视为非法登录。相关代码如下:

View Code 1 session_start();

2 if (!session_is_registered("user"))

3 {

4 echo "身份验证失败,属于非法登录!";

5 }

6 else

7 {

8 //成功登录进行相关操作

9 ...

10 }

11 ?>

http://www.bkjia.com/PHPjc/630746.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/630746.htmlTechArticle下面我们用Mysql数据库教程来存储用户的身份。我们需要从数据库中提取每个帐号的用户名和密码以便与$PHP_AUTH_USER和$PHP_AUTH_PW变量进行比较...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值