1.需求
a.用户登录成功后直接跳转的个人页
b.登录过的用户访问首页会自动跳转到个人页
c.登出后登录用户访问首页不会跳转。
2.
Session的工作原理请看这里:
http://www.cnblogs.com/kucongzhi/archive/2010/07/13/1776728.html
3.流程
a.登录成功后跳转
登录页面--->发送用户名密码到loginverify.php----->loginverify.php中调用session_start()---->判定登录信息是否合法------->合法的话向$_SESSION中写如$_SESSION['name']--->返回成功------->登录框中判定loginverify.php的返回信息---->如果成功跳转至个人页pet.php?uid=usrname
Javascript中的跳转使用 window-location.href = URL
登录页面:
-
$("#signin_submit").click(function(e){
-
e.preventDefault();
-
var id = $("#username").val();
-
var pwd = $.md5($("#password").val());
-
var url = "login/loginverify.php";
-
$.post(url,{name:id,password:pwd},function(data,status){
-
$("#result").html(data);
-
if( data == 'Success')
-
window.location.href = "pet.php?uid="+id;
-
}
-
);
-
});
loginverify.php
-
<?php
-
session_start();
-
$name = $_POST['name'];
-
if($name == "test")
-
{
-
$_SESSION['name'] = $name;
-
echo "Success";
-
}
-
else
-
echo "Verify Failed";
-
?>
b.登录过的用户访问首页会自动跳转到个人页
登录页面中$session_start()--->判定$_SESSION['name']是否存在--->若存在,则跳转到pet.php?uid=$_SESSION['name']
---->若不存在,显示登录窗口
PHP中的跳转使用: header("Location:URL");
index.php:
-
<?php
-
session_start();
-
if(isset($_SESSION['name'])){
-
header("Location:pet.php?uid=".$_SESSION['name']);
-
exit();
-
}
-
?>
-
...
-
//登录页面内容
-
...
c.登出
点击登出--->调用logout.php--->session_start();----->清空所有变量session_unset();------>销毁session: session_destroy();
logout.php
-
<?php
-
session_start();
-
session_unset();
-
session_destroy();
-
header("location:index.php");
-
?>
注意:
session_unset()
释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session_id
session_destroy()
删除当前用户对应的session文件以及释放session id,内存中的$_SESSION变量内容依然保留
所以,要完全清除session,应该先session_unset(),再执行session_destroy().
Reference:
阅读(4422) | 评论(0) | 转发(0) |