Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP if语句不显示HTML_Php_Html_If Statement - Fatal编程技术网

PHP if语句不显示HTML

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;?> 显示错误,但我没

因此,我正在检查用户是否已登录,如果已登录,我将删除注册表单。所以我想我应该用if-else语句。这是我的密码

<?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']);