3

我试图制作管理面板并且我正在使用sessions,但是有问题,会话不起作用,

索引.php

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

受保护的.php

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

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

4

3 回答 3

6

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

于 2012-06-29T17:54:02.687 回答
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扩展。

于 2012-06-29T17:54:50.887 回答
2

session_register()已弃用,请阅读此处了解更多信息:

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

于 2012-06-29T17:55:37.697 回答