PHP $_SESSION 超级全局变量 的使用

PHP $_SESSION 超级全局变量 的使用

SESSION 变量,是给每个不同的用户分配一个不同的UID然后把相应的变量的值存储在服务器端,画个图就是这样的:

如这个图片所示,有两个用户接入了某个服务器 一个是User1 UID=001 一个是User2 UID=002 那么,他们同时向服务器发出请求的时候,服务器端要对身份进行认证,只有username=admin的用户才有权限访问,这时候,在服务器端就要用到下面的代码 :

<?php
session_start();
check_login(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd";>

<html>

 <head>

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<?php
      //OTHER CODES ..........

	function check_login()
	{
		if(!isset($_SESSION['username']))
		{
			header("Location:index.php");
			exit();
		}
		return ;
	}
?>

	</head>

 </html>

这段代码的作用是:当用户访问了该页面的时候,先检测用户的username是否为admin 如果是的话,执行其它代码 否则返回登录页面 。具体的识别机制就是上面的那样,首先,要使用 session_start()函数,而且,这个函数要用在所有输出操作未进行之前,不然就没法建立会话了,建立会话之后,服务器端在login页面会给用户分配一个UID如上图,当然,分配的是加密的ID 然后并且在服务器端给这个UID建立相应的PHPSESSION 数组,具体实现是给用户发送了一个SESSION Cookie 在关闭浏览器的时候,就会把Cookie销毁,然后,在用户向服务器发送访问页面请求的时候,服务器端会根据这个用户的UID找到这个用户的SESSION 变量,并且该用户的SESSION变量不会被别人访问到。然后 当用户存在 $_SESSION[‘username’]这个变量时,就登录成功,否则失败。

Leave a Reply

Your email address will not be published. Required fields are marked *

eleven + twelve =

This site uses Akismet to reduce spam. Learn how your comment data is processed.