默认情况下,PHP将对同一域中的所有脚本使用相同的会话.请注意domain.com和www.domain.com之间的互动,因为他们可能没有相同的会话.
不是为每个部分创建完全独立的会话,为什么不为用户和部分使用单个全局会话? $_SESSION没有理由不能成为多维数组.
things needed in multiple sections could go into a common grouping:
$_SESSION['common']['user'] = 'josh';
$_SESSION['common']['privileges']['section_access'] = array( 'section1'=>"yes", 'section2'=>"no", 'section5'=>"security-prompt" );
while things that were section specific could be grouped by section:
$_SESSION['section1']['agreed_to_terms'] = true;
you could also group by logical functionality:
$_SESSION['staff']['badge_no'] = 44815;
使用这种结构,您可以在每个脚本中获得所有可用信息,但只能使用您需要的部分.
此外,这可以节省您在逻辑中处理session_name()和其他棘手位的麻烦.另外,这解决了如何在会话之间共享一些信息(例如当前用户)的问题.