这是我第一次使用php学习会话,而我正在开发最简单的登录页面.
那么理论上这可以保持任何给定的字符串$ username始终存储在$_SESSION['username']用户永远不会关闭网页的情况下吗?
这是一个虚拟网页,只需将值设置$_SESSION['username']为$ username.如果我这样做,并且我在我的网站上打开了另一个页面,那么在我$_SESSION['username']关闭网络浏览器之前,它的价值是否仍会保留?
<?php
session_start();
<html>
<body>
Run Code Online (Sandbox Code Playgroud)
...
$_SESSION['username'] = $username;
?>
Run Code Online (Sandbox Code Playgroud)
所以我的重要问题是,如果$ username是"CiniCraft",那么$ _SESSION ['username'] ="CiniCraft"直到网络浏览器关闭?如果没有,那么在浏览器关闭之前保留其价值的最佳变量是什么?
我尝试过上面显示的方法,当我从login.php导航到index.php时,$ _SESSION ['username']变为空白.
安全对我来说根本不是问题,如果用户帐户受到损害,那么黑客就会浪费他们的时间.当然,除非他们正在寻找垃圾邮件更多的伟哥广告......
是的,无论何时你做
$_SESSION['username'] = $username;
Run Code Online (Sandbox Code Playgroud)
会话将被赋值$username.但是,请记住在分配之前启动会话,因此顺序如下:
session_start();
$_SESSION['username'] = $username;
Run Code Online (Sandbox Code Playgroud)
在您需要访问它的每个页面上启动会话 - 这可能是它在index.php上不可用的原因.
所以在index.php上你可以这样做:
session_start();
echo $_SESSION['username'];
Run Code Online (Sandbox Code Playgroud)
在您的示例中,这应该输出"CiniCraft",因为您之后首先调用login.php和index.php.
会话使用cookie存储在浏览器中 - 因此,只要您不重置浏览器或关闭浏览器较长时间,会话就应该有效.但是,在其他浏览器中,会话将不可用.
安全对我来说根本不是问题
小心 - 请不要这样看.安全是每个人的责任,你需要尽早而不是晚些时候.