用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 相关文章推荐
我的论坛源代码(七)
Oct 09 PHP
基于mysql的bbs设计(五)
Oct 09 PHP
PHP与javascript的两种交互方式
Oct 09 PHP
PHP date函数参数详解
Nov 27 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
Jul 29 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
Dec 19 PHP
ioncube_loader_win_5.2.dll的错误解决方法
Jan 04 PHP
详解PHP中的Traits
Jul 29 PHP
PHP和Mysql中转UTF8编码问题汇总
Oct 10 PHP
php 使用curl模拟ip和来源进行访问的实现方法
May 02 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 PHP
Yii 框架使用Forms操作详解
May 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 mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
深入php list()函数的详解
2013/06/05 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
2015/12/14 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
javascript 清除输入框中的数据
2009/04/13 Javascript
javascript中怎么做对象的类型判断
2013/11/11 Javascript
js实现div拖动动画运行轨迹效果代码分享
2015/08/27 Javascript
javascript jquery对form元素的常见操作详解
2016/06/12 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
AngularJS 文件上传控件 ng-file-upload详解
2017/01/13 Javascript
ES6中参数的默认值语法介绍
2017/05/03 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
three.js实现圆柱体
2018/12/30 Javascript
JS实现从对象获取对象中单个键值的方法示例
2019/06/05 Javascript
layui表格数据复选框回显设置方法
2019/09/13 Javascript
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
vue同个按钮控制展开和折叠同个事件操作
2020/07/29 Javascript
JavaScript实现商品评价五星好评
2020/11/30 Javascript
Python实现发送email的几种常用方法
2014/08/18 Python
Python3实现Web网页图片下载
2016/01/28 Python
Python进阶篇之字典操作总结
2016/11/16 Python
用python写个自动SSH登录远程服务器的小工具(实例)
2017/06/17 Python
分析python切片原理和方法
2017/12/19 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
matplotlib.pyplot.matshow 矩阵可视化实例
2020/06/16 Python
Python进行统计建模
2020/08/10 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
2020/10/19 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
婚礼秀策划方案
2014/05/19 职场文书
工会换届选举方案
2014/05/21 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
光之国的四大叛徒:第一贝利亚导致宇宙毁灭,赛文奥特曼在榜
2022/03/18 日漫
MySQL 主从复制数据不一致的解决方法
2022/03/18 MySQL