提问人:Andy Rogers 提问时间:7/17/2020 最后编辑:Andy Rogers 更新时间:7/17/2020 访问量:64
某行代码上的变量值怎么会变成假?
How can the value of a variable on a certain line of code become false?
问:
<?php
include( 'baza.php' );
session_start();
if(isset($_POST['login'])){
$login = $_POST['login'];
$pass = md5($_POST['pass']);
$sth = $pdo->prepare('SELECT * FROM users WHERE login = :login AND pass = :pass');
$sth->bindParam(':login', $login, PDO::PARAM_STR);
$sth->bindParam(':pass', $pass, PDO::PARAM_STR);
$sth->execute();
$result = $sth->fetch();
if($result && isset($result['id'])) {
$_SESSION['logged'] = true;
$_SESSION['userLogin'] = $result['login'];
header('location:index.php');
}
}
if(!isset($_SESSION['logged']) || $_SESSION['logged] == false) {
?>
<form action="session.php" method="post">
Login: <br>
<input type="text" name="login"><br><br>
Pass: <br>
<input type="password" name="pass"><br><br>
<input type="submit" value="Zaloguj">
</form>
<?php
die;
}
?>
这是一个文件,用于检查用户是否被记录,如果没有,则代码将播放一个人的登录表单。该代码在第 2 行包含一个数据库连接代码(编写以防万一您想知道)。
我不明白第 55 行,严格来说,该行上的“$_SESSION['logged'] == false”部分。我的意思是,在 19 中,如果满足列出的两个条件,我们将 $_SESSION['logged'] 设置为 true,但是 $_SESSION['logged'] 怎么可能变成“false”状态(或值),通过查看或遵循此代码(从第 18 行到第 25 行)。就我使用测试PHP代码检查它而言,它可能是NULL(例如未设置或类似的东西),但是如果id没有设置为true,则通过查看此代码的工作原理,它本身无法成为“false”。通过查看此代码,我基本上不明白 $_SESSION['logged'] 如何变成“false”(在它具有/携带的值中)。它可以是“true”(由第 19 行设置)或未设置(我猜),这可能是这个 NULL 值(我认为我在测试时已经得到了它)。
像这样的事情,很抱歉打扰了,但我被困住了。在继续之前,我试图掌握它(它怎么可能是“假的”,为什么他要在他的代码中检查它)?
答: 暂无答案
上一个:为什么这个布尔值返回 true
评论
$_SESSION['logged']
false
isset