php 用户登录验证码的实现方法
发布:smiling 来源: PHP粉丝网 添加日期:2014-09-11 10:50:13 浏览: 评论:0
下面我们用Mysql数据库来存储用户的身份,我们需要从数据库中提取每个帐号的用户名和密码以便与$PHP_AUTH_USER和$PHP_AUTH_PW变量进行比较,判断用户的真实性.
首先,在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))
- {//开源代码phpfensi.com
- //以下为身份验证成功后的相关操作
- ...
- }
- else
- {
- //身份验证不成功,提示用户重新输入
- header("WWW-Authenticate:Basic realm="身份验证功能"");
- header("HTTP/1.0 401 Unauthorized");
- echo "身份验证失败,您无权共享网络资源!";
- exit();
- }
程序说明:
在程序中,首先检查变量$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,代码如下:
- <form action="login1.php">
- 用户名:<input type="text" name="name"><br>
- 口 令:<input type="text" name="pass"><br>
- <input type="submit" value="登录">
- </form>
login1.php处理提交的表单,代码如下:
- $db=mysql_connect("localhost","root","");
- mysql_select_db("XinXiKu",$db);
- $result=mysql_query("SELECT * FROM user where name='$name' and password='$pass'",$db);
- if ($myrow = mysql_fetch_row($result))
- {//开源代码phpfensi.com
- //注册用户
- session_start();
- session_register("user");
- $user=$myrow["user"];
- // 身份验证成功,进行相关操作
- ...
- }
- else
- {
- echo"身份验证失败,您无权共享网络资源!";
- }
这里需要说明的是,用户可以使用在后续的操作中用**http://domainname/next.php?user=用户名 **来绕过身份验证,所以,后续的操作应先检查变量是否注册:已注册,则进行相应操作,否则视为非法登录,相关代码如下:
- session_start();
- if (!session_is_registered("user"))
- {
- echo "身份验证失败,属于非法登录!";
- }
- else
- {
- //成功登录进行相关操作
- ...
- }
Tags: php用户登录 php验证码
相关文章
- ·php用户登录实例教程代码(2014-08-16)
- ·php用户登录代码(2014-08-25)
- ·php用户登录代码,cookie,数据库(2014-09-11)
- ·php实现简单用户登录功能程序代码(2015-04-11)
- ·php网页生成验证码实现程序(2014-07-30)
- ·简单实例php验证码代码(2014-08-17)
- ·PHP验证码生成与验证例子(2014-08-22)
- ·PHP验证码生成程序几种方法(2014-08-22)
- ·PHP验证码实现代码简单示例(2014-08-22)
- ·php验证码程序代码(2014-08-22)
- ·PHP验证码之Ajax验证实现方法(2014-08-22)
- ·php中文汉字验证码程序(2014-08-23)
- ·一个完整php验证码实例程序(2014-08-25)
- ·php jquery 验证码代码(2014-09-20)
- ·php验证码生成器(2018-08-06)
- ·一个好用的PHP验证码类实例分享(2020-08-17)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)