<?php
$name=$_GET['var'];
if($_SESSION["loginvalue"]==1)
{
echo "Welcome,$name";
echo " <a href='login.php'>Logout</a>";
}
?>
这是我用来在页面中维护会话的代码。我想要的是,如果有人在网络浏览器中输入local / project / cms.php url,那么它就不应该打开。我希望cms.php只有在有人先登录时才会打开,否则不应该打开。
答案 0 :(得分:0)
您可以像这样修改代码:
<?php
session_start();
$name=$_GET['var'];
if($_SESSION["loginvalue"]==1)
{
echo "Welcome, ". htmlentities($name, ENT_QUOTES, "UTF-8");
echo " <a href='login.php'>Logout</a>";
}else{
//Redirect user to login page.
header("location: /login.php");
}
?>
答案 1 :(得分:0)
不是100%肯定你的意思;但...
首先,给出的代码存在一些问题,session_start(),您的代码也在$name
var上对XSS attack开放,因为您没有转义输入,需要使用htmlentities()用户输入如果您要将其显示回用户。您还需要在使用前检查变量是否已设置,以避免PHP未定义的索引警告。除此之外,您基本上检查用户是否已登录,如果没有,则将其重定向到您的登录页面。
<?php
session_start();
$name = isset($_GET['var']) ? $_GET['var'] : null;
if(isset($_SESSION["loginvalue"]) && $_SESSION["loginvalue"]==1)
{
echo "Welcome,".htmlentities($name, ENT_QUOTES);
echo ' <a href="./login.php">Logout</a>';
}else{
//Redirect user to login page if not logged in.
exit(header("location: ./login.php"));
}
?>