【问题标题】:Cannot use session variable even if session has been started in php即使会话已在 php 中启动,也无法使用会话变量
【发布时间】:2014-08-14 16:10:30
【问题描述】:

我想将数据从一个 php 页面传输到另一个,我使用 session 来传输它。我在两个页面上都使用 session_start() 开始了会话。

    Page 1 : session_start();
             $x=10;
             $_SESSION['val']=$x;
    Page 2 : session_start();
             $value=$_SESSION['val'];

错误弹出说 Undefined index:val 。请帮忙,并解释为什么会发生这种情况,因为我需要传输数据。

【问题讨论】:

  • 好吧,这段代码应该可以工作。必须有别的东西。
  • 您使用基于 cookie 的会话吗?如果不是,则第二页的 URL 中可能缺少 session id 参数。不过,这是一个疯狂的猜测。
  • 您是在 CLI 中运行页面,还是通过 Web 服务器运行这些页面?你在同一个域上运行它们吗?

标签: php session


【解决方案1】:

试试isset()!

PHP 中的

isset() 函数确定变量是否已设置且不为 NULL。它返回一个布尔值,即如果设置了变量,则返回true,如果变量值为null,则返回false。

<?php

session_start();
if(isset($_SESSION['val']))
{

 $value=$_SESSION['val'];
//other code
}

?>

【讨论】:

    【解决方案2】:

    session_start() 语句必须在页面顶部(第一行代码)

    例如:

    <?php session_start(); ?>
    

    【讨论】:

    • 绝对不必是第一行代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    相关资源
    最近更新 更多