这是我第一次使用php学习课程,而且我正在使用最简单的登录页面。
理论上这可以保留任何给定的字符串$ username始终存储在$_SESSION['username']
中,只要用户永远不会关闭网页?
这是一个虚拟网页,只需将$_SESSION['username']
的值设置为$ username。如果我这样做,并且我在我的网站上打开了另一个页面,那么$_SESSION['username']
的价值是否仍会保留,直到我关闭网络浏览器?
<?php
session_start();
<html>
<body>
...
$_SESSION['username'] = $username;
?>
所以我的大问题是,如果$ username是“CiniCraft”,那么$ _SESSION ['username'] =“CiniCraft”直到网络浏览器关闭?如果没有,那么在浏览器关闭之前保留其值的最佳变量是什么?
我尝试过上面显示的方法,当我从login.php导航到index.php时,$ _SESSION ['username']变为空白。
安全对我来说根本不是问题,如果用户帐户遭到入侵,那么黑客就会浪费时间。当然,除非他们正在寻找垃圾邮件更多的伟哥广告......
答案 0 :(得分:6)
是的,无论何时何地
$_SESSION['username'] = $username;
会话将被分配$username
值。但是,请记住在分配之前启动会话,因此顺序如下:
session_start();
$_SESSION['username'] = $username;
在您需要访问它的每个页面上启动会话 - 这可能是它在index.php上不可用的原因。
所以在index.php上你可以这样做:
session_start();
echo $_SESSION['username'];
在您的示例中,这应该输出“CiniCraft”,因为您之后首先调用login.php和index.php。
会话使用cookie存储在您的浏览器中 - 因此,只要您不重置浏览器或将其关闭较长时间,会话就应该有效。但是,在其他浏览器中,会话将不可用。
详细了解会话in php context和generally。
安全对我来说根本不是问题
小心 - 请不要这样看。 Security is everyone's responsibility,你很快就会需要它。
答案 1 :(得分:0)
您似乎正在使用旧浏览器,因此请求您先更新浏览器。与现代浏览器一样,会话的处理比旧浏览器容易。
您必须在页面起点的所有页面上提供session_start()。
当用户访问您的网站时,session_start将有助于在整个网站上维护单个会话。