【发布时间】:2016-10-24 19:53:35
【问题描述】:
PHP 致命错误:无法在第 14 行的 /var/www/html/index.php 中的表达式结果上使用 isset()(您可以使用“null !== expression”)
<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
include 'header.php';
include 'dbh.php';
?>
<?php
if (isset($_SESSION['id']))
{
echo "you are logged in<br>";
if (isset($_SESSION['active']==0))
echo "your account is not activated<br>";
else
echo "you are logged in and activated<br>";
}
if (!isset($_SESSION['id']))
{
echo "you are not logged in<br>";
}
?>
</body>
</html>
我对 php 比较陌生,我的代码有问题,我想确保如果我的数据库中的 active 设置为 0,那么它将回显它们没有被激活。如果您在我的代码中发现任何错误,请告诉我。
谢谢
【问题讨论】:
-
你有
isset($_SESSION['active']==0)。$_SESSION['active']==0是一个表达式,表示您正在将其与某物进行比较。这是不允许的,因为 isset 应该只检查变量是否存在。您可能想要做一些更像if(isset($_SESSION['active']) && $_SESSION['active'] == 0){的事情,它将 if 语句分成两个表达式,这两个表达式都需要为真,变量需要设置并且需要等于 0。 -
@JonathanKuhn 感谢您的快速回复!我现在意识到我错误地使用了 isset。您的解决方案效果很好。
标签: php