PHP if语句不显示HTML
因此,我正在检查用户是否已登录,如果已登录,我将删除注册表单。所以我想我应该用if-else语句。这是我的密码PHP if语句不显示HTML,php,html,if-statement,Php,Html,If Statement,因此,我正在检查用户是否已登录,如果已登录,我将删除注册表单。所以我想我应该用if-else语句。这是我的密码 <?php if($_SESSION['loggedin'] === false): ?> <h1>Sign Up</h1> <?php elseif($_SESSION['loggedin'] === true):?> <h1>Welcome</h1> <?php endif;?> 显示错误,但我没
<?php if($_SESSION['loggedin'] === false): ?>
<h1>Sign Up</h1>
<?php elseif($_SESSION['loggedin'] === true):?>
<h1>Welcome</h1>
<?php endif;?>
显示错误,但我没有得到任何信息。在另一个页面上,当在$\u会话['loggedin'
上执行var\u dump
时,我得到bool(true)
,因此我知道我已登录,希望欢迎。我觉得这是一个语法错误。
有什么想法吗?试着这样做:
<?php if(!$_SESSION['loggedin']) { ?>
<h1>Sign Up</h1>
<?php } elseif($_SESSION['loggedin']) { ?>
<h1>Welcome</h1>
<?php } ?>
注册
欢迎
尝试以下方法:
<?php if(!$_SESSION['loggedin']) { ?>
<h1>Sign Up</h1>
<?php } elseif($_SESSION['loggedin']) { ?>
<h1>Welcome</h1>
<?php } ?>
注册
欢迎
试试这个:
<?php if(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true): ?>
<h1>Welcome</h1>
<?php else:?>
<h1>Sign Up</h1>
<?php endif;?>
欢迎
注册
试试这个:
<?php if(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true): ?>
<h1>Welcome</h1>
<?php else:?>
<h1>Sign Up</h1>
<?php endif;?>
欢迎
注册
如果$\u会话['loggedin']
不是布尔值,则可能不会执行任何代码路径,因为==
比较检查类型和值。(有关详细信息,请参阅)
一个更安全、更理智的方法是:
<?php if($_SESSION['loggedin'] === true): ?>
<h1>Welcome</h1>
<?php else:?>
<h1>Sign Up</h1>
<?php endif;?>
欢迎
注册
如果$\u会话['loggedin']
不是布尔值,则可能不会执行任何代码路径,因为==
比较检查类型和值。(有关详细信息,请参阅)
一个更安全、更理智的方法是:
<?php if($_SESSION['loggedin'] === true): ?>
<h1>Welcome</h1>
<?php else:?>
<h1>Sign Up</h1>
<?php endif;?>
欢迎
注册
尝试在if测试中添加一个isset()
<?php if(!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] === false): ?>
<h1>Sign Up</h1>
<?php else: ?>
<h1>Welcome</h1>
<?php endif;?>
注册
欢迎
尝试在if测试中添加一个isset()
<?php if(!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] === false): ?>
<h1>Sign Up</h1>
<?php else: ?>
<h1>Welcome</h1>
<?php endif;?>
注册
欢迎
如果跟踪服务器日志(例如,tail-F日志/php\u error.log
),您可能会看到如下内容:
PHP注意事项:未定义变量:\u会话
尝试将代码更改为:
if (isset( $_SESSION['loggedin'] ) && $_SESSION['loggedin'] == true )
{
echo 'Welcome';
} else {
echo 'Sign up';
}
就个人而言,我还建议您将注销逻辑更改为使用unset($\u SESSION)
,这样您只需检查:
if (isset( $_SESSION['loggedin'] ) ){
echo 'Welcome';
} else {
echo 'Sign up';
}
如果跟踪服务器日志(例如,tail-F logs/php_error.log
),您可能会看到如下内容:
PHP注意事项:未定义变量:\u会话
尝试将代码更改为:
if (isset( $_SESSION['loggedin'] ) && $_SESSION['loggedin'] == true )
{
echo 'Welcome';
} else {
echo 'Sign up';
}
就个人而言,我还建议您将注销逻辑更改为使用unset($\u SESSION)
,这样您只需检查:
if (isset( $_SESSION['loggedin'] ) ){
echo 'Welcome';
} else {
echo 'Sign up';
}
它不是由于未定义变量:\u SESSION
错误而产生的。因此,您可以利用任何无知(@或&)例如@$\u SESSION['loggedin']
或&$\u SESSION['loggedin']
它不是由于未定义变量:\u SESSION
错误而产生的。因此,您可以利用任何无知(@或&)例如$\u SESSION['loggedin']
或&$\u SESSION['loggedin']
SESSION\u start();您是否在检查apache(或任何Web服务器)错误日志后将其放在顶部,可能您遇到了显示错误时看不到的错误?我正在使用SESSION\u start()
,这是另一个尝试添加isset()
到您的if测试。将else行更改为:
以进行故障排除。看起来loggedin
既不为假也不为真。session_start();在检查apache(或任何Web服务器)错误日志后,您是否将其放在顶部,可能您遇到了显示错误时看不到的错误?我使用的是session_start()
,在另一个中,尝试向if测试添加isset()
。将else行更改为:
以进行故障排除。看起来loggedin
既不为假也不为真。我同意。去掉elseif
语句将有所帮助,再加上isset()
检查。我同意。去掉elseif
语句,再加上isset()
检查。如果有会话信息在登录状态下仍然存在,会发生什么情况?在这种情况下不是说有,但可能有。我有一些网站需要这样做-在这种情况下,我将会话中的所有内容都命名为空格,例如$\u session['user']['id'],$\u session['user']['name']等。然后在注销期间,您可以调用unset($_SESSION['user'])并检查using(isset($_SESSION['user'])是否正确,我只是提出了一点警告。在这种情况下,他们可以使用unset($_SESSION['loggedin']))
如果有会话信息在登录状态下仍然存在,会发生什么?在这种情况下不是说有,但可能有。我有一些网站需要这样做-在这种情况下,我将会话中的所有内容命名为空格,例如$\u会话['user']['id'],$\u会话['user']['name']等。然后在注销期间,您可以调用unset($\u会话)['user'])并检查using(isset($\u SESSION['user'])是否正确,我只是提出了一个警告。在这种情况下,他们可以使用unset($\u SESSION['loggedin']);