我不是这里的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);
//...
?>
答案 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)中命名,然后在其他地方启动时我似乎必须使用该会话名称。