php访问控制

 本次介绍利用php建立认证系统和对站点进行访问控制的机制

1.使用HTTP认证

使用php的header函数和几个预定义变量 实现 HTTP认证机制

例子:

  
  
  
  
  1. <?php 
  2. $user=array
  3. 'jack'=>'jack'
  4. 'tom'=>'tom' 
  5. ); 
  6. if(!isset($_SERVER['PHP_AUTH_USER'])){ 
  7.     header('HTTP/1.1 401 Unauthorized'); 
  8.     header('WWW-Authenticate:Basic realm="PHP Secured"'); 
  9.     exit('this page needs authenticated'); 
  10. if(!isset($user[$_SERVER['PHP_AUTH_USER']]){ 
  11.     header('HTTP/1.1 401 Unauthorized'); 
  12.     header('WWW-Authenticate:Basic realm="PHP Secured"'); 
  13.     exit('Unauthorized'); 
  14. if($user[$_SERVER['PHP_AUTH_USER']]!=$_SERVER['PHP_AUTH_PW']){ 
  15.     header('HTTP/1.1 401 Unauthoriezd'); 
  16.     header('WWW-Authenticate:Basic realm="PHP Secured"'); 
  17.     exit('Unauthorized'); 
  18. echo 'u\'re in !you were:<br>'
  19. echo "name is :".$_SERVER['PHP_AUTH_USER']."<br>"
  20. echo "pw is :".$_SERVER['PHP_AUTH_PW']; 
  21. ?> 

$_SERVER['PHP_AUTH_USER'] $_SERVER['PHP_AUTH_PW']分别用来获得填入的用户名和密码,

在这里我用数组存储用户名和密码,实际中用.ini 文件和 数据库

 realm="PHP Secured" 是一个域在这个域内用户不需要再次输入用户名,密码,即可访问

2.使用会话

会话允许存储一个页面的变量--该页的状态,并在另外一个页面中访问它

会话的机制如下:

php产生一个唯一的32位字符串来标记此会话

接下来php将此值传递给浏览器

同时在服务器上产生一个文件并将此会话的ID包含在文件名中。

php有两种方法来保持与此会话ID的联系:可向页面上所有相关的链接中的查询字符串添加ID,或将ID作为一个cookie发送,在存储于服务器中文件内部,php会为会话保存要存储的变量名称和值

浏览器请求另一个页面时,就通过URL查询字符串或返回cookie的方式告诉php它要指定的会话,启动会话后,php就查询创建的文件,并访问数据

例子 :

 

  
  
  
  
  1. <?php 
  2. session_start(); 
  3. if(!isset($_SESSION['t'])){ 
  4.     $_SESSION['t']='t'
  5. }else
  6.     echo $_SESSION['t']; 
  7. ?> 

在使用会话的时候要小心,当用户同时打开多个页面时,如果在一个页面中改变了变量,则其他的也会同改变

 

 

你可能感兴趣的:(职场,休闲,php访问控制)