Chinaunix首页 | 论坛 | 博客
  • 博客访问: 986307
  • 博文数量: 150
  • 博客积分: 3017
  • 博客等级: 少校
  • 技术积分: 3829
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-19 14:40
个人简介

Now in Baidu WISE team

文章分类

全部博文(150)

文章存档

2014年(8)

2013年(31)

2012年(111)

分类: PHP

2014-03-10 20:57:51

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

登录页面:
  1. $("#signin_submit").click(function(e){
  2.                 e.preventDefault();
  3.                 var id = $("#username").val();
  4.                 var pwd = $.md5($("#password").val());
  5.                 var url = "login/loginverify.php";
  6.                 $.post(url,{name:id,password:pwd},function(data,status){
  7.                     $("#result").html(data);
  8.                     if( data == 'Success')
  9.                         window.location.href = "pet.php?uid="+id;
  10.                     }
  11.                     );
  12.             });
loginverify.php

  1. <?php
  2. session_start();
  3. $name = $_POST['name'];
  4. if($name == "test")
  5. {
  6.     $_SESSION['name'] = $name;
  7.     echo "Success";
  8. }
  9. else
  10. echo "Verify Failed";
  11. ?>




b.登录过的用户访问首页会自动跳转到个人页
登录页面中$session_start()--->判定$_SESSION['name']是否存在--->若存在,则跳转到pet.php?uid=$_SESSION['name']
                                                                                            ---->若不存在,显示登录窗口


PHP中的跳转使用:  header("Location:URL");

index.php:

  1. <?php
  2.     session_start();
  3.     if(isset($_SESSION['name'])){
  4.         header("Location:pet.php?uid=".$_SESSION['name']);
  5.         exit();
  6.     }
  7. ?>
  8. ...
  9. //登录页面内容
  10. ...



c.登出
点击登出--->调用logout.php--->session_start();----->清空所有变量session_unset();------>销毁session:  session_destroy();

logout.php

  1. <?php
  2.     session_start();
  3.     session_unset();
  4.     session_destroy();
  5.     header("location:index.php");
  6. ?>


注意:
session_unset() 
释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session_id 
session_destroy() 
删除当前用户对应的session文件以及释放session id,内存中的$_SESSION变量内容依然保留 

所以,要完全清除session,应该先session_unset(),再执行session_destroy().

Reference:



阅读(4354) | 评论(0) | 转发(0) |
0

上一篇:PHP+JQuery登录验证过程

下一篇:ul横排+边距

给主人留下些什么吧!~~