PHP用户登录与退出
登录页面
login.html负责收集用户填写的登录信息。
用户登录
用户名:
密 码:
javascript检测及CSS样式可参考reg.html,本部分略去,可直接查看最后附录的完整代码。
登录处理
login.php负责处理用户登录与退出动作。
//登录
if(!isset($_POST[‘submit‘])){
exit(‘非法访问!‘);
}
$username = htmlspecialchars($_POST[‘username‘]);
$password = MD5($_POST[‘password‘]);
?
//包含数据库连接文件
include(‘conn.php‘);
//检测用户名及密码是否正确
$check_query = mysql_query("select uid from user where username=‘$username‘ and password=‘$password‘ limit 1");
if($result = mysql_fetch_array($check_query)){
//登录成功
$_SESSION[‘username‘] = $username;
$_SESSION[‘userid‘] = $result[‘uid‘];
echo $username,‘ 欢迎你!进入 用户中心
‘;
echo ‘点击此处 注销 登录!
‘;
exit;
} else {
exit(‘登录失败!点击此处 返回 重试‘);
}
该段代码首先确认如果是用户登录的话,必须是POST动作提交。然后根据用户输入的信息去数据库核对是否正确,如果正确,注册session信息,否则提示登录失败,用户可以重试。
该段代码需要在页面开头启用session_start()函数,参见下面退出处理代码部分。
退出处理
处理用户退出的代码跟处理登录的代码都在login.php里。
session_start();
?
//注销登录
if($_GET[‘action‘] == "logout"){
unset($_SESSION[‘userid‘]);
unset($_SESSION[‘username‘]);
echo ‘注销登录成功!点击此处 登录‘;
exit;
}
该段代码在处理用户登录的代码之前,只允许以login.php?action=logout的方式访问,其他方式都认为是检测用户登录。具体逻辑参看附录完整代码。
用户中心
my.php是用户中心,列在教程里作为用户登录检测参考。
session_start();
?
//检测是否登录,若没登录则转向登录界面
if(!isset($_SESSION[‘userid‘])){
header("Location:login.html");
exit();
}
//包含数据库连接文件
include(‘conn.php‘);
$userid = $_SESSION[‘userid‘];
$username = $_SESSION[‘username‘];
$user_query = mysql_query("select * from user where uid=$userid limit 1");
$row = mysql_fetch_array($user_query);
echo ‘用户信息:
‘;
echo ‘用户ID:‘,$userid,‘
‘;
echo ‘用户名:‘,$username,‘
‘;
echo ‘邮箱:‘,$row,‘
‘;
echo ‘注册日期:‘,date("Y-m-d", $row[‘regdate‘]),‘
‘;
echo ‘注销 登录
‘;
?>
提示用户注册登录涉及到用户信息与数据库的交互,因此要特别注意用户提交的信息不能为非法信息,本例中注册部分已经使用正则表达式做了限制,对登录部分只简单使用了htmlspecialchars()处理,实际应用时可更严格一些。
本教程只是简单演示用户注册与登录的过程,其代码仅供学习参考,不可直接用于项目生产。
本教程中对于用户登录成功后采用session来管理,也可以采用cookie来管理,尤其对于有时限要求的情况。
为了提高用户体验,用户注册部分可以结合AJAX来检测用户输入的信息而不必等点击提交后再检测。
?
?
摘抄自:http://www.5idev.com/p-php_user_login.shtml
原文:http://www.cnblogs.com/BruceLone/p/4264909.html