编写MySQL数据库的用户认证系统实例
这两天受朋友的托付,要我帮他写一个使用MySQL数据库的用户认证系统。我当然不好推脱的,只得耗费了一晚上的休息时间,写了个很简单的PHP程序。由于赶的很仓卒,可能会太简陋了些,而且可能还会有错误和漏洞。 用户认证的原理很简单:首先需要用户在页面上填
这两天受朋友的托付,要我帮他写一个使用MySQL数据库的用户认证系统。我当然不好推脱的,只得耗费了一晚上的休息时间,写了个很简单的PHP程序。由于赶的很仓卒,可能会太简陋了些,而且可能还会有错误和漏洞。
用户认证的原理很简单:首先需要用户在页面上填入用户名和密码,当然没注册的用户需要先注册。然后调用数据库搜索是否有相应的用户。如果有就确认,没有则提醒用户先注册。使用PHP来完成这一切很简单,但需要注意的是如果想在以后的页面中都能确认用户身份,使用PHP3我只能想出使用cookie的方法。要想使用session,就只能等待PHP4正式版的发布了!
第一步是做一个登录的页面,这儿就不多讲了。我只做了个极简单的,大家自己做得漂亮点。
第二步开始登录后的确认程序的设计。
<p>login.php: <br>mysql_connect("localhost","user","password") <br>/*连接数据库,用户名和密码自行修改*/ <br>or die("无法连接数据库,请重试"); </p><p>mysql_select_db("userinfo") <br>or die("无法选择数据库,请重试"); <br>$today=date("Y-m-d H:i:s"); </p><p>$query=" <br>select id <br>from usertbl <br>where name=$name and password=$password <br>/*从数据库中搜索和登录用户相应的资料*/ <br>"; <br>$result=mysql_query($query); <br>$numrows=mysql_num_rows($result); </p><p>if($numrows==0){ <br>/*验证是否能找出相同资料的用户,不能则未注册*/ <br>echo 非法用户<br>; <br>echo 请注册先<br>; <br>echo 重试<br>; <br>} </p><p>else{ <br>$row=mysql_fetch_array($result); <br>$id=$row[0]; <br>$query=" <br>update usertbl <br>set lastlogin=$today <br>where id=$id"; <br>$result=mysql_query($query); <br>SetCookie("usercookie", "欢迎你,$name");<br> /*这里使用了cookie,以方便之后的页面认证。<br>但我未开发完这一块。希望有兴趣的朋友指正*/ <br>echo 登录成功<br>; <br>echo 请进!<br>; <br>} <br>?> </p> 登录后复制 |
第三步当然是做好注册的页面,也不多讲了。
第四步是注册后的身份确认和输入数据库。
<p>register.php: <br>mysql_connect("localhost","user","password") /*请修改用户名和密码*/ <br>or die("无法连接数据库,请重试"); </p><p>mysql_select_db("userinfo") <br>or die("无法选择数据库,请重试"); <br>$query="select id from usertbl where name=$name\";<br> /*从数据库中搜索相同名字的用户资料*/ <br>$result=mysql_query($query); <br>$numrows=mysql_num_rows($result); <br>if($numrows!=0) /*找到了当然就是有人先注册了相同的名字*/ <br>{echo 已有人注册此名,请重新选择名字!;} <br>else <br>{$query="insert into usertbl values(0,$name,$password,\)";<br> /*找不到相同的就输入新的用户资料*/ <br>mysql_query($query); <br>echo 注册成功; <br>echo 请登录!;} <br>?> </p> 登录后复制 |
下一步是cookie的使用,我原打算使用cookie来使每一页都能识别用户身份,但由于别的页面还没做好,不知道需要用到哪些资料。于是就只有一个很简单的使用,这里用到了PHP的引用:
<p>if(!$usercookie) <br>{header("非法用户"); <br>} <br>?> </p><p>welcome.php: </p><p>require("cookie.php"); /*调用cookie.php*/ <br>?> </p><p>echo $usercookie; <br>?> </p> 登录后复制 |
到这儿便完成了一个很简单的用户认证系统,当然如果你要使用它还得建好数据库。下面是我的数据库表的结构,库的名字是userinfo。
<p>create table usertbl <br>( <br>ID int auto_increment primary key, <br>Name varchar(30), <br>Password varchar(20), <br>Lastlogin varchar(20) <br>);</p> 登录后复制 |
(责任编辑 火凤凰 sunsj@51cto.com QQ:34067741 TEL:(010)68476636-8007)

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

MySQL和phpMyAdmin是强大的数据库管理工具。1)MySQL用于创建数据库和表、执行DML和SQL查询。2)phpMyAdmin提供直观界面进行数据库管理、表结构管理、数据操作和用户权限管理。

Oracle不仅是数据库公司,还是云计算和ERP系统的领导者。1.Oracle提供从数据库到云服务和ERP系统的全面解决方案。2.OracleCloud挑战AWS和Azure,提供IaaS、PaaS和SaaS服务。3.Oracle的ERP系统如E-BusinessSuite和FusionApplications帮助企业优化运营。

在MySQL中,外键的作用是建立表与表之间的关系,确保数据的一致性和完整性。外键通过引用完整性检查和级联操作维护数据的有效性,使用时需注意性能优化和避免常见错误。

MySQL和MariaDB的主要区别在于性能、功能和许可证:1.MySQL由Oracle开发,MariaDB是其分支。2.MariaDB在高负载环境中性能可能更好。3.MariaDB提供了更多的存储引擎和功能。4.MySQL采用双重许可证,MariaDB完全开源。选择时应考虑现有基础设施、性能需求、功能需求和许可证成本。

SQL是一种用于管理关系数据库的标准语言,而MySQL是一个使用SQL的数据库管理系统。SQL定义了与数据库交互的方式,包括CRUD操作,而MySQL实现了SQL标准并提供了额外的功能,如存储过程和触发器。

Redis是一种内存数据结构存储系统,主要用作数据库、缓存和消息代理。它的核心特点包括单线程模型、I/O多路复用、持久化机制、复制与集群功能。 Redis在实际应用中常用于缓存、会话存储和消息队列,通过选择合适的数据结构、使用管道和事务、以及进行监控和调优,可以显着提升其性能。

安全地处理JSON中的函数和正则表达式在前端开发中,经常需要将JavaScript...

MySQL和phpMyAdmin可以通过以下步骤进行有效管理:1.创建和删除数据库:在phpMyAdmin中点击几下即可完成。2.管理表:可以创建表、修改结构、添加索引。3.数据操作:支持插入、更新、删除数据和执行SQL查询。4.导入导出数据:支持SQL、CSV、XML等格式。5.优化和监控:使用OPTIMIZETABLE命令优化表,并利用查询分析器和监控工具解决性能问题。
