PHP和ASP的session (转载)

  • 2021-02-27 08:35
  • by 刘管家
  • 3755
  • 0
  • 0
  • php,asp,session

  

  ASP的SEssion就是启用的,需要使用,直接赋值就可以了! 但是:PHP一定要自己先用session_start()启动,才能赋值。(php.ini设置更改过的除外!) 

  在过期时间设置上,ASP设置比较灵活一些,默认是20分钟,要自定义,直接用session.timeout=时间间隔就可以了! 但是,PHP中,默认是24分钟,而且这个时间需要改变PHP.INI设置才行,但并不是每个人都能控制。

  今天看到一篇关于php的SESSION会话使用入门到文章,看到了一个函数:session_set_cookie_params();他必须在session_start()之前使用。例子: 

<?php 

//保存一天 

$lifeTime=24*3600; 

session_set_cookie_params($lifeTime); 

session_start(); 

$_SESSION["admin"]=true; 

?> 

  但是有的浏览器似乎不是很感冒:IE6.0下使用session_set_cookie_params()函数设置Cookie会有问题! 没有关系。我们可以使用SESSION和COOKIE结合的方式在做验证,例子: 

<?php 

session_start(); 

//保存一天 

$lifeTime=24*3600; 

setcookie(session_name(),session_id(),time()+$lifeTime,"/"); 

?> 

  在ASP中,session是直接保存在内存中的,而不是以文件的方式保存的,PHP是以文件的方式,默认保存在系统的临时文件夹中的,这个似乎不安全,因此,PHP提供一个函数让你可以改变它的保存位置:session_save_path();这个函数也和前面的session_set_cookie_params()一样,要在session_start()函数之前(要是在之后,你怎么保存-_-)! 

  如果客户端禁止了cookie,ASP方面:我还没见过有人解决过(估计是我孤陋寡闻!) PHP倒是提供函数session_id(),让我们通过URL的方式传递。好帅-_-! 使用的例子: 

<?php 

//取得当前Session名,默认为PHPSESSID 

$sessionName=session_name(); 

$sessionID=$_GET[$sessionName]; 

//使用session_id()设置获得的SessionID 

session_id($sessionID); 

session_set_cookie_params($lifeTime); 

session_start(); 

//一下注册SESSION?>

注:本文来源:转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。


评论