如何在多个页面之间共享 PHP 变量


How do I share a PHP variable between multiple pages?

想法/目标:

我的计算机上的文本文件中有一个用户名和密码。索引页上的表单允许用户使用其用户名和密码登录。登录页面是使用PHP来验证用户输入的信息的地方,其中包含我在本地文本文件中的信息。在用户输入的信息与我的文本文件信息匹配后,用户将立即重定向到主页,在该主页上显示他们的姓名并显示欢迎消息。

问题:

一切都直到验证工作。问题是,当我将用户重定向到主页时.php我无法显示他们的用户名。在所有验证后,我将如何显示他们的用户名?无论如何,我可以将他们的用户名永久存储在一个变量中,该变量可以在我的所有页面上访问?

带有表单的"索引.php"页

使用我在本地文本文件中的信息验证表单信息的登录页面

使用 $_SESSION -!

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

您当然希望过滤/清理/验证您的 _POST 美元数据,但这超出了本问题的范围......

只要在使用$_SESSION之前调用session_start(); - $_SESSION数组中的值将跨页面保留,直到用户关闭浏览器。

如果您想在此之前结束会话,例如在注销按钮中,---请使用session_destroy()

您可以启动会话并将表单值放入 $_SESSION 变量中,该变量将在所有页面上可用。

// On the page where your form is submitted:
session_start();
$_SESSION['name'] = $_POST['name'];
// On the page where the user is redirected:
session_start();
echo $_SESSION['name'];

请注意,实际上您可能还希望包含一些表单验证!

我同意Malet & @Hammerstein@Clément的观点。会话和/或饼干。

<?php 
    // always need this
    session_start();
    // set the value
    $_SESSION['username'] = 'Person';
?>
<?php
    //get session data
    echo $_SESSION['username'];
   // output: Person
?>
    在每个
  1. 页面上立即在打开 php 标签之后启动一个 php 会话:

    session_start((;

确定名称和密码有效后,在执行重定向之前,请添加以下行:

$_SESSION["名称"] = $name;

在任何后续页面上,只需回显如下内容:

echo "Welcome ".$_SESSION['name'];

使用会话变量

设置:

session_start();
$_SESSION['username'] = "user1";

获取:

session_start();
$username = $_SESSION['username'];