php 用户登陆
今天我没什么事,就把我自己写的博客系统的php用户登录代码贴出来和大家分享一下,先来看看原理,原理很简单的,就是用户输入用户名与密码然后用php文件进行判断是否存在数据库中,如果在存的话就把用户名相关信息保存到session中,这只是最简单的.也是比较常用的方法.好了费话不多说了,先看代码:
<input name="myname" type="text" id="myname" style="border:solid 0px;" /> <input name="mypass" type="password" id="mypass" style="border:solid 0px;" />
它们的名称分别是 myname 与 mypass,好了下面为了让用户体验更好一些我们就来个简单的js客户端效验:
<script language="javascript"> <!-- function check() { var myname = document.getElementById('myname').value; var mypass = document.getElementById('mypass').value; if (!myname.match(/^w{3,15}/) || myname.length < 3 || myname.length > 15) { alert('管理员名称必须由字母或组字组成!'); form1.myname.select(); return false; } if (!mypass.match(/^w{6,15}/) || mypass.length < 6 || mypass.length > 15) { alert('登录密码必须是数字和英语字母下线等,密码长度为6-15!'); form1.mypass.select(); return false; } } --> </script>
这个函数的功能就是判断用户输入的是不是合法的用户名密码这里就不多说了,最关键的还是php代码怎么处理了.
<?php session_start(); //这个一定要申明喽,给个小提示:在session之前不能有任何输出哦,在php.5以下的版本会有问题. $myname = get_value('myname', post); $mypass = get_value('mypass', post); if (!preg_match("/^\w+$/", $myname) || strlen($myname) < 3 || strlen($myname) > 15) { alert('输入的用户名信息有误!用户名必须由数字下划线英语字母组成,长度为3-15个字符!', ''); } if (!preg_match("/^w+$/", $mypass) || strlen($mypass) < 6 || strlen($mypass) > 15) { alert('输和的用户密码!密码必须由数字下划线英语字母组成,长度为6-15个字符!', ''); } $sql = "select * from tbn where admin_name='$myname' and admin_pwd='" . md5($mypass) . "'"; $result = mysql_query($sql); if (mysql_num_rows($result)) { $my = mysql_fetch_array($result); $_SESSION['uid'] = $myname; //$_SESSION['auth']=return_auth($my['group_id']); //这里是因为用到用户组取得用户组的权限 header("location:main.php"); } else { alert('提示:你输入的用户名与密码不一致!', ''); } ?>
本文地址:http://www.phprm.com/develop/fs1306.html
转载随意,但请附上文章地址:-)