从php文件获取另一个值

时间:2014-09-05 16:39:40

标签: php

我有一个名为 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?

3 个答案:

答案 0 :(得分:2)

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

所以:

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

这应该有效。

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

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

答案 1 :(得分:0)

现在可以使用

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

我可以发誓我之前尝试过这段代码并且它没有工作:)

答案 2 :(得分:0)

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

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

这有三个例外: -

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