繁体   English   中英

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

[英]How do I share a PHP variable between multiple pages?

想法/目标:

我的计算机上的文本文件中有用户名和密码。 索引页面上的表单允许用户使用他们的用户名和密码登录。 登录页面是 PHP 用来验证用户输入的信息与我在本地文本文件中的信息的地方。 在用户输入的信息与我的文本文件信息匹配后,用户被直接重定向到主页,在那里显示他们的姓名和欢迎消息。

问题:

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

带有表单的 Index.php 页面

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

使用$_SESSION -!

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

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

只要你调用session_start(); 在使用$_SESSION之前 - $_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'];

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

我同意@Clément Malet 和@Hammerstein。 会话和/或 cookie。

<?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'] = $name;

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

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

使用会话变量

放:

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

得到:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM