想法/目标:
我的计算机上的文本文件中有一个用户名和密码。索引页上的表单允许用户使用其用户名和密码登录。登录页面是使用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
?>
- 在每个
页面上立即在打开 php 标签之后启动一个 php 会话:
session_start((;
确定名称和密码有效后,在执行重定向之前,请添加以下行:
$_SESSION["名称"] = $name;
在任何后续页面上,只需回显如下内容:
echo "Welcome ".$_SESSION['name'];
使用会话变量
设置:
session_start();
$_SESSION['username'] = "user1";
获取:
session_start();
$username = $_SESSION['username'];