会话变量未显示在特定页面上

时间:2011-07-15 10:56:06

标签: php

我不是这里的PHP开发人员。

我有一个页面无法显示会话值,即使它们肯定存在。我可以在另一个页面上查看它们,但由于某种原因,它们无法在某个页面上看到!?

编辑: 以下是页面顶部的脚本

<?php
    require_once('eu_gl.php'); // <- includes session_start() in it
    if(!session_id()) session_start(); // added this in case, but should not be needed
?>

包含的内容:

<?php
/*** Global include file **/

set_time_limit(300);
$time1 = microtime();

define('APP_SESS_NAME', 'EURA');
session_name(APP_SESS_NAME);
session_start();
session_set_cookie_params(0);
//...
?>

4 个答案:

答案 0 :(得分:0)

正如@ k102所提到的那样,在设置/获取会话变量之前,请确保在某个地方session_start();print_r($_SESSION);也可以方便地向您显示会话信息的存在...

我个人会修改你的代码来实现这个目的:

 if (!isset($_SESSION)) session_start();

 if (!isset($_SESSION['count'])) {
      $_SESSION['count'] = 0;
 } else {
      $_SESSION['count']++;
 }

 print_r($_SESSION);

答案 1 :(得分:0)

第一点是: 更好的尝试

 if(session_id() == "" ) session_start();

而不是

if(!session_id()) session_start();

因为session_id不会返回false。

php手册:

  

session_id()返回当前会话的会话ID或   空字符串(“”)如果没有当前会话(没有当前会话   id存在)。

第二点是session_start应该是你页面上的第一件事,除非你真的需要其他的东西,但我在你的代码中看不出任何理由。

答案 2 :(得分:0)

你必须制作2个php文件来检查$ _SESSION,会话用于存储变量,这样你就可以在你网站的所有页面中使用它。

test.php的:

set_time_limit(300); // Timeout for script
$time1 = microtime(); // What this variable do in your script
define('APP_SESS_NAME', 'EURA'); // set constant APP_SESS_NAME
session_name(APP_SESS_NAME); // name session APP_SESS_NAME
session_start(); // start session
session_set_cookie_params(0); // this line must be called before session_start();

if(!session_id()) session_start(); // Delete this line

$_SESSION['name']= "test"; // set variable session with params name for checking session

test2.php:

define('APP_SESS_NAME', 'EURA'); // set constant APP_SESS_NAME
session_name(APP_SESS_NAME); // name session APP_SESS_NAME
session_start(); // start session
echo $_SESSION['name']; // check session is valid

我认为你现在应该了解Session。

答案 3 :(得分:0)

似乎会话的命名是问题。 Tt在include:session_name(APP_SESS_NAME)中命名,然后在其他地方启动时我似乎必须使用该会话名称。