【问题标题】:PHP sessions not working between pagesPHP会话在页面之间不起作用
【发布时间】:2016-03-02 02:12:29
【问题描述】:

我已经完成了我的研究!还是不行!

首页:

session_start();
$un = $_POST['un'];
$_SESSION['un'] = $un;

第二页:

session_start();
if(isset($_SESSION['un'])) {
    echo $_SESSION['un'];
} 

这是一个登录系统,un 代表用户名。变量 $_SESSION['un'] 可以在第一页使用,但是一旦我进入第二页,变量 $_SESSION['un'] 就没有设置。我正在使用 mamp 服务器。

【问题讨论】:

  • 什么意思消失?未定义索引?未定义的变量?空字符串值?
  • 设置$_SESSION['un'] = 'test';
  • $_POST['un'] 是否还有一个值可以开始?
  • 会话似乎已结束。我无法使用第二页上的会话变量。
  • 我没有收到任何错误 D:.这个问题已经持续了快一个月了!

标签: php session variables cookies between


【解决方案1】:

可以使用 !empty 代替 isset。这里工作代码享受:P 第一页

  <?php
        session_start();
        if(isset($_POST['un']))
        {
        $un = $_POST['un'];
        $_SESSION['un'] = $un;
        header('Location: test2.php');
        }
        ?>

        <form method="post" action="test.php">
            <input type="text" name="un" id="un">
            <input type="submit" name="getun" id="getun">
        </form>

第二页

<?php

session_start();
if(!empty($_SESSION['un'])) {
    echo $_SESSION['un'];
} 

?>

【讨论】:

  • 你是在建议我导入 jquery 吗?
  • 不,我提供的两个代码示例位于不同的页面上。两个不同的文件
  • 那么你需要第二个 session_start();在单独的文件中尝试此代码。
  • 不要忘记将表单操作更改为您的第一个文件名。我编辑了代码
  • 问题不在于表单提交。当我提交表单时,它会转到一个页面 login.php,该页面显示我的用户名并将用户名设置为会话变量。我可以在登录页面上很好地显示它,但是当我回到家时,会话变量似乎为空
猜你喜欢
  • 2012-02-10
  • 2013-03-21
  • 1970-01-01
  • 2012-08-30
  • 2019-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多