【问题标题】:Get value from php file to another从 php 文件中获取值到另一个文件
【发布时间】:2014-09-05 16:39:40
【问题描述】:

我有一个名为 file1.php 的 php 文件,其中包含很多代码:

$username = $_SESSION['user_name'];

如果我回显 $username,它会显示登录用户的名称。我创建了一个按钮,如果用户单击它,他们应该在其中注册事件。该代码在另一个文件中。第二个文件由 file1.php 触发,如下所示:

<form action="file2.php" method="post">
<input type="submit" name="use_button" value="Register for next event" class="btn btn-default"/>
</form>

在 file2.php 中,如果我检查 echo $username 我没有得到当前用户的用户名。我在会话中尝试过这个,但它不起作用。

如何在 file2.php 中回显 $username?

【问题讨论】:

  • session_start(); 在所有文件中?
  • I tried this with sessions and it won't work. 这到底是什么意思?并使用$_SESSION['user_name'] 而不是$username

标签: php


【解决方案1】:

确保在发送标头之前调用了 session_start(); 函数,并确保在尝试回显之前重新填充 $username 的值。

所以:

<?php
session_start();
$username = $_SESSION['username'];
echo $username;
?>

应该可以的。

当您加载页面时,您将可以访问 $_SESSION 数组中设置的任何内容(假设您添加了 session_start() 函数调用)。

因此,您将无法将值持久存储在页面之间的$username 变量中(据我所知);您需要先将其设置为等于$_SESSION['username']。解决此问题的一种方法是在每个页面的顶部包含一个处理此类事情的文件,这样您就不必总是在每个页面中手动进行分配。

【讨论】:

    【解决方案2】:

    现在可以使用

    session_start();
    echo $_SESSION['user_name'];
    

    我可以发誓我之前尝试过这段代码,但没有成功 :)

    【讨论】:

    【解决方案3】:

    每个 http 请求都完全独立于任何之前或之后的请求。

    一旦您将响应发送到浏览器,您当前的 php 程序及其所有变量都会消失。

    这有三个例外:-

    • 只要浏览器与 Web 服务器保持会话,您的 $_SESSION 变量就会一直存在。但是您必须在每次请求时检索它们。
    • 您在之前的请求中发送的任何 cookie 都应该回显给您。
    • 您在 http 表单字段中设置的任何数据,前提是用户未对其进行更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-27
      • 1970-01-01
      • 2022-01-03
      • 2016-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多