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 1 <form action="login1.php">
2 用户名:<input type="text" name="name"><br>
3 口 令:<input type="text" name="pass"><br>
4 <input type="submit" value="登录">
5 </form>

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 ?>

时间: 2024-10-28 11:56:26

php 用户登录验证码的实现方法的相关文章

AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)_AngularJS

本文实例讲述了AngularJS实现用户登录状态判断的方法.分享给大家供大家参考,具体如下: 使用AngularJS的单页面应用时,由于是本地路由在控制页面跳转,但是有的时候我们需要判断用户是否登录来判断用户是否能进入界面. angularjs是mvc架构所以实现起来很容易也很灵活,我们只MainController里增加一个路由事件侦听并判断,这样就可以避免未登录用户直接输入路由地址来跳转到登录界面地址了 代码中的 $rootScope.user是登录后把用户信息放到了全局rootScope上

Yii框架用户登录session丢失问题解决方法

本文实例讲述了Yii框架用户登录session丢失问题解决方法.分享给大家供大家参考,具体如下: 最近做项目,使用的是YII框架,用户的登录总是出现有时候能登录,有时候不能登录的情况.调试了很多次,开始以为是服务器配置问题,后来怎么测试都不行,还是出现有时候登录session丢失的情况,没办法,在群里面问,发帖,请教大拿,最后都没有发现什么问题. 无意间在网上看到一个人说yii session丢失的问题.终于解决了,解决方法: 初步解决方法: 打开文件 yii\framework\web\aut

php 利用cookie记住用户登录名与密码方法

php教程实现记住密码自动登录方法不止一个,下面出现有二个emptyempty,其实是一个,那是因为代码高亮有bug.希望对大家有帮助. 一,用户登录的check  代码如下: //检查用户是否登录 function checklogin(){ if(emptyempty($_session['user_info'])){ //检查一下session是不是为空 if(emptyempty($_cookie['username']) || emptyempty($_cookie['password

win7系统禁止显示用户登录信息的设置方法

  win7系统功能强大,有着xp系统不可比拟的其他功能,不过有些功能虽然强大,但为了保障系统安全信息,最好还是禁用掉为好.比如当用户登录系统桌面时,可以查看上次具体登录情况,包括时间和使用账号.虽然此功能可以方便查看上次登录的具体信息,但为了防止信息泄露,保障系统安全信息,我们可以把显示用户登录信息的功能禁用掉,那么应该如何禁用掉呢?下面就跟小编一起来了解下吧! 方法如下: 1.按"win+r"组合键打开"运行"选项,输入"gpedit.msc"

登录口令加密函数、用户登录主Form实现方法和具体代码

函数|加密 create函数PWD: create FUNCTION PWD(sdpassword varchar2) RETURN varchar2 IS    len   number;    szpwd varchar2(20);  BEGIN     len:=length(sdpassword);     for i in 1..len loop       szpwd:=szpwd||                   chr(ascii(substr(sdpassword,i,1

PHP+Ajax验证码验证用户登录_php实例

用AJAX 验证用户登录的一个好处是不刷新跳转页面,外加用到验证码就更安全了,摸索的写了下.一共用到三个文件: yz.php:  生成验证码的PHP 文件,将验证码将在SESSION 里,供登录时对比调用index.php: 用户登录的HTML 文件loginCheck.php: 验证用户登录的文件 下面一一解析:yz.php 文件 <?php session_start(); //生成验证码图 Header("Content-type: image/PNG"); //长与宽 $

php使用cookie保存用户登录的用户名实例_php技巧

本文实例讲述了php使用cookie保存用户登录的用户名的方法.分享给大家供大家参考.具体实现方法如下: 用户登录文件:login.php 复制代码 代码如下: <html> <head> <title>用户登录</title> </head> <body> <?php function getCookieUsername(){  if(empty($_COOKIE['username'])){   return "&

php用户登录之cookie信息安全分析_php技巧

本文实例讲述了php用户登录之cookie信息安全.分享给大家供大家参考,具体如下: 大家都知道用户登陆后,用户信息一般会选择保存在cookie里面,因为cookie是保存客户端,并且cookie可以在客户端用浏览器自由更改,这样将会造成用户cookie存在伪造的危险,从而可能使伪造cookie者登录任意用户的账户. 下面就说说平常一些防止用户登录cookie信息安全的方法: 一.cookie信息加密法 cookie信息加密法即用一种加密方法,加密用户信息,然后在存入cookie,这样伪造者即使

.Net 如何限制用户登录的方法

 这篇文章主要介绍了.Net 如何限制用户登录的方法,有需要的朋友可以参考一下 名词解析        1.Cookies 按照英文单词翻译过来是"甜点"的意思.这个和我们计算机貌似没有什么关系.我们这里说的Cookies是指服务器在暂存在计算机上的一段资料.          2.Session 按照英文单词翻译过来是"会话"的意思.存在于服务器的内存中.    限制用户登录的一下场景         1.比如QQ 我们在一处登录QQ之后.如果我们在另一台电脑上再