我有一个名为 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?
答案 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程序及其所有变量都将消失。
这有三个例外: -