如何在多个页面之间共享PHP变量?
想法/目标: 我在电脑的文本文件中有用户名和密码。索引页上的表单允许用户使用用户名和密码登录。登录页面是使用PHP验证用户输入的信息与我在本地文本文件中的信息的地方。在用户输入的信息与我的文本文件信息匹配后,用户将直接重定向到主页,在主页上显示他们的姓名,并显示欢迎消息 问题: 在验证工作开始之前,一切都很顺利。问题是,当我将用户重定向到Home.php时,我无法显示他们的用户名。在所有验证之后,我将如何显示他们的用户名?我是否可以将他们的用户名永久存储在一个变量中,该变量可以在我的所有页面中访问 使用会话变量 设置: 获取:如何在多个页面之间共享PHP变量?,php,html,forms,login,Php,Html,Forms,Login,想法/目标: 我在电脑的文本文件中有用户名和密码。索引页上的表单允许用户使用用户名和密码登录。登录页面是使用PHP验证用户输入的信息与我在本地文本文件中的信息的地方。在用户输入的信息与我的文本文件信息匹配后,用户将直接重定向到主页,在主页上显示他们的姓名,并显示欢迎消息 问题: 在验证工作开始之前,一切都很顺利。问题是,当我将用户重定向到Home.php时,我无法显示他们的用户名。在所有验证之后,我将如何显示他们的用户名?我是否可以将他们的用户名永久存储在一个变量中,该变量可以在我的所有页面中访
我同意马列和哈默斯坦的观点。会话和/或cookie
<?php
// always need this
session_start();
// set the value
$_SESSION['username'] = 'Person';
?>
<?php
//get session data
echo $_SESSION['username'];
// output: Person
?>
使用
$\u会话
-
session_start();
$_SESSION['username'] = $_POST['username'];
您当然希望筛选/清理/验证您的$\u POST数据,但这超出了此问题的范围
只要调用session_start()
在使用$\u会话
之前-在用户关闭浏览器之前,$\u会话
数组中的值将在页面间保持不变
如果您想在此之前结束会话,如在注销按钮中使用
session\u destroy()
可以启动会话并将表单值放入$\u 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'];
请注意,实际上,您可能也希望包含一些表单验证
echo "Welcome ".$_SESSION['name'];
可能是会话还是cookies?看看$\u会话谢谢!工作得很有魅力!虽然你所说的过滤/验证/消毒是什么意思?这与MySQL有关吗?好吧,这完全取决于您对数据的处理方式——如果您在MySQL查询中使用数据,那么是的!虽然这是一个您应该彻底研究的主题,但我将给您一个概要:验证数据意味着-如果您需要字符串,请确保它是字符串。如果你想要一个数字,确保它是一个数字
filter\u var()
可以做到这一点,而9/10次就是您真正需要的filter\u var($\u POST['username'],filter\u SANITIZE\u STRING)
-在这一点上,过滤/清理实际上是一个整体。但对数据进行清理和验证仍然是一个好主意——更详细地说,您希望验证您的数据是否符合其应符合的条件,如果不符合,则脱离其余代码(或者仅使值null
)——此外,消毒可以确保没有人可以潜入可能引起麻烦的恶意东西-黑客可以很聪明,他们几乎总能找到一种方法。。。因此,格外谨慎也无妨——!-当我谈论它的时候,mysqli/PDO中有一些净化功能,你应该仔细研究,并确保你正在使用你的数据库-有很多文章在那里-谷歌是你的朋友。
// 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'];
echo "Welcome ".$_SESSION['name'];