用PHP写的MySQL数据库用户认证系统代码

这两天受朋友的托付,要我帮他写一个使用MySQL数据库的用户认证系统。我当然不好推脱的,只得耗费了一晚上的休息时间,写了个很简单的PHP程序。 
用户认证的原理很简单:首先需要用户在页面上填入用户名和密码,当然没注册的用户需要先注册。然后调用数据库搜索是否有相应的用户。如果有就确认,没有则提醒用户先注册。使用PHP来完成这一切很简单,但需要注意的是如果想在以后的页面中都能确认用户身份,使用PHP3我只能想出使用cookie的方法。要想使用session,就只能等待PHP4正式版的发布了! 
第一步是做一个登录的页面,这儿就不多讲了。我只做了个极简单的,大家可以做得漂亮点。 
第二步开始登录后的确认程序的设计。 
login.php: 


代码如下:

mysql_connect("localhost","user","password")  
/*连接数据库,用户名和密码自行修改*/  
or die("无法连接数据库,请重试");  
mysql_select_db("userinfo")  
or die("无法选择数据库,请重试");  
$today=date("Y-m-d H:i:s");  
$query="  
select id  
from usertbl  
where name=$name and password=$password  
/*从数据库中搜索和登录用户相应的资料*/  
";  
$result=mysql_query($query);  
$numrows=mysql_num_rows($result);  
if($numrows==0){  
/*验证是否能找出相同资料的用户,不能则未注册*/  
echo 非法用户

echo 请注册先

echo 重试

}  
else{  
$row=mysql_fetch_array($result);  
$id=$row[0];  
$query="  
update usertbl  
set lastlogin=$today  
where id=$id";  
$result=mysql_query($query);  
SetCookie("usercookie", "欢迎你,$name"); 
 /*这里使用了cookie,以方便之后的页面认证。 
但我未开发完这一块。希望有兴趣的朋友指正*/  
echo 登录成功

echo 请进!

}  
?>

第三步当然是做好注册的页面,也不多讲了。 
第四步是注册后的身份确认和输入数据库。 
register.php: 


代码如下:

mysql_connect("localhost","user","password") /*请修改用户名和密码*/  
or die("无法连接数据库,请重试");  
mysql_select_db("userinfo")  
or die("无法选择数据库,请重试");  
$query="select id from usertbl where name=$name\"; 
 /*从数据库中搜索相同名字的用户资料*/  
$result=mysql_query($query);  
$numrows=mysql_num_rows($result);  
if($numrows!=0) /*找到了当然就是有人先注册了相同的名字*/  
{echo 已有人注册此名,请重新选择名字!;}  
else  
{$query="insert into usertbl values(0,$name,$password,\)"; 
 /*找不到相同的就输入新的用户资料*/  
mysql_query($query);  
echo 注册成功;  
echo 请登录!;}  
?>

下一步是cookie的使用,我原打算使用cookie来使每一页都能识别用户身份,但由于别的页面还没做好,不知道需要用到哪些资料。于是就只有一个很简单的使用,这里用到了php的引用: 

代码如下:

if(!$usercookie)  
{header("非法用户");  
}  
?>  
welcome.php:  
require("cookie.php"); /*调用cookie.php*/  
?>  
echo $usercookie;  
?>

到这儿便完成了一个很简单的用户认证系统,当然如果你要使用它还得建好数据库。下面是我的数据库表的结构,库的名字是userinfo。 


代码如下:

create table usertbl  
(  
ID int auto_increment primary key,  
Name varchar(30),  
Password varchar(20),  
Lastlogin varchar(20)  
);

(0)

相关推荐

  • php.ini 启用disable_functions提高安全

    Q. I run a small Apache based webserver for my personal use and it is shared with friends and family. However, most script kiddie try to exploit php application such as wordpress using exec() , passthru() , shell_exec() , system() etc functions. How

  • 通过PHP修改Linux或Unix口令的方法分享

    需要的工具和安装: 你必须安装下面的工具和软件: –修改口令的Shell脚本; – Sudo访问权; – Apache or Lighttpd web服务器; – PHP服务端程序. 步骤1:安装可以修改用户口令的shell脚本 该脚本可以实际用于修改Linux用户的口令(已在Linux和FreeBSD测试). 例子: shell脚本代码 #!/bin/sh # \ exec expect -f "$0″ ${1+"$@"} set password [lindex $arg

  • ThinkPHP权限认证Auth实例详解

    本文以实例代码的形式深入剖析了ThinkPHP权限认证Auth的实现原理与方法,具体步骤如下: mysql数据库部分sql代码: -- ---------------------------- -- Table structure for think_auth_group -- ---------------------------- DROP TABLE IF EXISTS `think_auth_group`; CREATE TABLE `think_auth_group` ( `id` m

  • PHP开发不能违背的安全规则 过滤用户输入

    作为最基本的防范你需要注意你的外部提交,做好第一面安全机制处理防火墙. 规则 1:绝不要信任外部数据或输入 关于Web应用程序安全性,必须认识到的第一件事是不应该信任外部数据.外部数据(outside data) 包括不是由程序员在PHP代码中直接输入的任何数据.在采取措施确保安全之前,来自任何其他来源(比如 GET 变量.表单 POST.数据库.配置文件.会话变量或 cookie)的任何数据都是不可信任的. 例如,下面的数据元素可以被认为是安全的,因为它们是在PHP中设置的. 复制代码 代码如

  • php集成动态口令认证

    大多数系统目前均使用的静态密码进行身份认证登录,但由于静态密码容易被窃取,其安全性无法满足安全要求. 动态口令采用一次一密.用过密码作废的方式防止了密码被窃取带来的安全问题. 动态口令分为HOTP(基于事件计数的动态口令,RFC4226).TOTP(基于时间计数的动态口令,RFC6238).OCRA(挑战应答式动态口令,RFC6287)等方式. 本文介绍了集成TOTP方式的动态口令认证的方案,PHP框架采用Thinkphp3.2.3,动态口令生成器使用的是google authtication.

  • PHP中对用户身份认证实现两种方法

    当访问者浏览受保护页面时,客户端浏览器会弹出对话窗口要求用户输入用户名和密码,对用户的身份进行验证,以决定用户是否有权访问页面.下面用两种方法来说明其实现原理. 一.用HTTP标头来实现 标头是服务器以HTTP协议传送HTML信息到浏览器前所送出的字串.HTTP采用一种挑战/响应模式对试图进入受密码保护区域的用户进行身份验证.具体来说,当用户首次向WEB服务器发出访问受保护区域的请求时,挑战进程被启动,服务器返回特殊的401标头,表明该用户身份未经验证.客户端浏览器在检测到上述响应之后自动弹出对

  • 理解php Hash函数,增强密码安全

    1.声明 密码学是一个复杂的话题,我也不是这方面的专家.许多高校和研究机构在这方面都有长期的研究.在这篇文章里,我希望尽量使用简单易懂的方式向你展示一种安全存储Web程序密码的方法. 2."Hash"是做什么的? "Hash将一段数据(小数据或大数据)转换成一段相对短小的数据,如字符串或整数." 这是依靠单向hash函数来完成的.所谓单向是指很难(或者是实际上不可能)将其反转回来.一个常见的hash函数的例子是md5(),它流行于各种计算机语言和系统. 复制代码 代

  • php中安全模式safe_mode配置教程

    (1) 打开php的安全模式 php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如system(), 同时把很多文件操作函数进行了权限控制,也不允许对某些关键文件的文件,比如/etc/passwd, 但是默认的php.ini是没有打开安全模式的,我们把它打开: safe_mode = on (2) 用户组安全 当safe_mode打开时,safe_mode_gid被关闭,那么php脚本能够对文件进行访问,而且相同 组的用户也能够对文件进行访问. 建议设置为: safe_

  • PHP实现用户认证及管理完全源码

    -- begin auth.inc --   <?php   $id = "xxxCOM";   if(!isset($PHP_AUTH_USER)) {   Header("WWW-Authenticate: Basic realm="$id"");   Header("HTTP/1.0 401 Unauthorized");   require('error.inc');   exit;   }   $name = 

  • PHP防注入安全代码

    简述:/*************************    说明:    判断传递的变量中是否含有非法字符    如$_POST.$_GET    功能:防注入    **************************/ 复制代码 代码如下: <?php //要过滤的非法字符      $ArrFiltrate=array("'",";","union");      //出错后要跳转的url,不填则默认前一页      $StrG

随机推荐