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


Posted in PHP onMarch 22, 2007

这两天受朋友的托付,要我帮他写一个使用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)   
); 
PHP 相关文章推荐
建立动态的WML站点(三)
Oct 09 PHP
让你同时上传 1000 个文件 (一)
Oct 09 PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
Mar 26 PHP
深入PHP nl2br()格式化输出的详解
Jun 05 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
Jan 17 PHP
php递归方法实现无限分类实例代码
Feb 28 PHP
php通过ajax实现双击table修改内容
Apr 28 PHP
PHP中in_array函数使用的问题与解决办法
Sep 11 PHP
PHP面向对象多态性实现方法简单示例
Sep 27 PHP
Laravel中的Blade模板引擎示例详解
Oct 10 PHP
PDO::getAvailableDrivers讲解
Jan 28 PHP
PHP进阶学习之类的自动加载机制原理分析
Jun 18 PHP
人尽可用的Windows技巧小贴士之下篇
Mar 22 #PHP
加速XP搜索功能堪比vista
Mar 22 #PHP
dedecms中常见问题修改方法总结
Mar 21 #PHP
dedecms后台验证码总提示错误的解决方法
Mar 21 #PHP
dedecms中显示数字验证码的修改方法
Mar 21 #PHP
PHP的分页功能
Mar 21 #PHP
完美解决dedecms中的[html][/html]和[code][/code]问题
Mar 20 #PHP
You might like
php中cookie的使用方法
2014/03/29 PHP
Joomla开启SEF的方法
2016/05/04 PHP
深入分析PHP设计模式
2020/06/15 PHP
checkbox 复选框不能为空
2009/07/11 Javascript
JavaScript 空位补零实现代码
2010/02/26 Javascript
JavaScript 设计模式 安全沙箱模式
2010/09/24 Javascript
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
2013/03/24 Javascript
javascript制作坦克大战全纪录(1)
2014/11/27 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
jquery实现的table排序功能示例
2017/03/10 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
详解服务端预渲染之Nuxt(介绍篇)
2019/04/07 Javascript
JavaScript从原型到原型链深入理解
2019/06/03 Javascript
JS正则表达式常见函数与用法小结
2020/04/13 Javascript
JavaScript async/await原理及实例解析
2020/12/02 Javascript
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
Python linecache.getline()读取文件中特定一行的脚本
2008/09/06 Python
Python中asyncore的用法实例
2014/09/29 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
python地震数据可视化详解
2019/06/18 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
编写用C语言实现的求n阶阶乘问题的递归算法
2014/10/21 面试题
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
行政经理岗位职责
2015/04/15 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
Python实现byte转integer
2021/06/03 Python