我的目标是让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不正确。。。我做错了什么或者忘记了?
您的方法是错误的,您需要将session_start()
放在页面的最顶部,而不是使用像这样的会话变量
$_SESSION['is_logged_in'] = false;
现在,当用户登录时,将值更改为true
,当用户注销时,再次更改为false
所以现在你可以设置一个类似的条件
if($_SESSION['is_logged_in'] == true) {
echo 'Welcome';
} else {
echo 'Please login';
}
另一方面,如果用户没有使用header()
登录,您也可以将其重定向到登录页面
例如,如果你不想让用户看到一个名为admin.php
的页面,而不是在最上面的页面上,你可以指定条件,如果它是false,你可以重定向
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;
}
if (session_start()) {
应该是
session_start();
if (isset($_SESSION['user']['username'])) {