PHP - SESSION没有注册

时间:2012-06-29 17:52:00

标签: php

我尝试制作管理员面板而我正在使用sessions,但有问题,会话不起作用,

的index.php

$r=mysql_fetch_array($result);
$login=$r["login"];
session_register('login');
Header("Location: protected.php");

protected.php

<?php 
session_start();
if (!isset($_SESSION['login'])) { 
  echo "Not work";
}
else{
  echo "Work";
}
?>

我不知道是什么问题,因为在index.php我注册会话,但是在protected.php这个会话没有设置。

3 个答案:

答案 0 :(得分:6)

请勿使用session_register()。它已在PHP 5.4.0中删除。 在index.php中,将session_start();添加到顶部,并将您的注册号码替换为$_SESSION['login'] = 'val';

答案 1 :(得分:2)

自5.3.0起,session_register()的使用已弃用,自4.1.0以来未推荐使用。

相反,使用$_SESSION[]创建会话变量的格式与引用它相同:

$_SESSION['login'] = $r["login"];

使用此方法无需初始化$login变量,因为结果集中的登录值直接设置为会话变量。

<?php // Use of session_register() is deprecated 
$barney = "A big purple dinosaur."; session_register("barney");

// Use of $_SESSION is preferred, as of PHP 4.1.0 
$_SESSION["zim"] = "An invader from another planet.";

// The old way was to use $HTTP_SESSION_VARS 
$HTTP_SESSION_VARS["spongebob"] = "He's got square pants."; ?>

此外,建议不要使用mysql_fetch_array,而应使用MySQLiPDO_MySQL扩展名。

答案 2 :(得分:2)

不推荐使用

session_register(),请在此处阅读以获取更多信息:

http://php.net/manual/en/function.session-register.php