用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 相关文章推荐
php中防止伪造跨站请求的小招式
Sep 02 PHP
php计算指定目录下文件占用空间的方法
Mar 13 PHP
详解PHP中的PDO类
Jul 06 PHP
Centos6.5和Centos7 php环境搭建方法
May 27 PHP
PHP封装函数实现生成随机的字符串验证码
Jan 24 PHP
PHP实现批量删除(封装)
Apr 28 PHP
thinkPHP分页功能实例详解
May 05 PHP
php实现数组纵向转横向并过滤重复值的方法分析
May 29 PHP
PHP机器学习库php-ml的简单测试和使用方法
Jul 14 PHP
php实现生成code128条形码的方法详解
Jul 19 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
May 23 PHP
php实现构建排除当前元素的乘积数组方法
Oct 06 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实现paypal整合方法
2010/11/28 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
2014/06/25 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
2016/04/17 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
捕获关闭窗口的脚本
2009/01/10 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
2015/08/26 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
Bootstrap前端开发案例一
2016/06/17 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
深入理解ES7的async/await的用法
2017/09/09 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
JS正则表达式封装与使用操作示例
2019/05/15 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
Vue3配置axios跨域实现过程解析
2020/11/25 Vue.js
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2014/08/22 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
python实现学生成绩测评系统
2020/06/22 Python
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
管道维修工岗位职责
2013/12/27 职场文书
干部现实表现材料
2014/02/13 职场文书
分家协议书
2014/04/21 职场文书
MySQL sql_mode的使用详解
2021/05/08 MySQL
golang中字符串MD5生成方式总结
2021/07/04 Golang
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python
Python 如何利用ffmpeg 处理视频素材
2021/11/27 Python
鸿蒙3.0体验感怎么样? 鸿蒙3.0系统评测向
2022/08/14 数码科技