我的目标是让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>';
}
我的问题在于IF / Else它不正确......我做错了什么或遗忘......?
答案 0 :(得分:5)
你的做法是错误的,你需要在页面的顶部有session_start()
,而不是像这样使用会话变量
$_SESSION['is_logged_in'] = false;
现在,当用户登录时,将值更改为true
,并在用户退出时再次更改为false
所以现在你可以设置像
这样的条件if($_SESSION['is_logged_in'] == true) {
echo 'Welcome';
} else {
echo 'Please login';
}
另一方面,如果用户未使用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;
}
答案 1 :(得分:4)
if (session_start()) {
应该是
session_start();
if (isset($_SESSION['user']['username'])) {