2 php security if-statement login
我的目标是让IF好像显示"欢迎,%USERNAME%"链接到该人的帐户设置.问题是,正如我所看到的,如果他们没有登录就不显示它.我希望它是"请登录"链接.
<?php
require("common.php");
if (session_start()) {
echo '<p class="right"><a href="/account"><?php echo htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8'); ?></a>!</p>';
}
else {
echo '<p class="right"><a href="">Please Login</a></p>';
}
Run Code Online (Sandbox Code Playgroud)
我的问题是IF/Else说它不正确......我做错了什么或遗忘......?
你的方法是错误的,你需要session_start()在页面的顶部,而不是像这样使用会话变量
$_SESSION['is_logged_in'] = false;
Run Code Online (Sandbox Code Playgroud)
现在,当用户登录时,将值更改为用户注销时true再次更改false
所以现在你可以设置一个条件
if($_SESSION['is_logged_in'] == true) {
echo 'Welcome';
} else {
echo 'Please login';
}
Run Code Online (Sandbox Code Playgroud)
另一方面,如果用户未使用登录页面,您还可以将用户重定向到登录页面 header()
因此,例如,如果您不希望用户admin.php在最顶部看到一个被调用的页面而不是该页面,您可以指定条件,如果它是假的,您可以重定向
admin.php的
session_start();
if($_SESSION['is_logged_in'] == false) {
header('Location: login.php');
/* You can replace login.php to whatever page you want your
user to be redirected */
exit;
}
Run Code Online (Sandbox Code Playgroud)