编程函数以查看用户是否“有效”。
function user_active($username) {
$username = sanitize($username);
$query = mysqli_query($_POST['x'], "SELECT * FROM users");
$row = mysqli_fetch_array($query);
if ($row['username'] === $username and $row['active'] === 1) {
return true;
} else {
return false;
}
}
然后......
if (user_active($username) === false) {
$errors[] = 'You have not activated your account. Please check your
email to activate your account.';
它仅在我测试$ username时有效,但当我包含$ row ['active'] === 1时,它会停止工作。
答案 0 :(得分:1)
===
检查相同的匹配,意味着
$x === 1
将检查$x
是否为值为1的整数。
==
仅检查值的相等性,所以
$x == 1
将检查$x
的值是否为1,是否为字符串或整数或其他内容,如布尔值true
。
尝试将您的陈述更改为
$row['active'] == 1
或者,如果你知道你的变量是一个字符串,
$row['active'] === '1'
参考:
$ a == $ b .... 等于 .... TRUE 如果$ a在类型后等于$ b杂耍。
$ a === $ b .... 相同 .... TRUE 如果$ a等于$ b,它们属于同一类型。
答案 1 :(得分:0)
试试这个
==和===之间的区别是 ' ==='使用' ==='进行比较时,检查左侧和右侧之间的数据类型是否相等?如果数据类型不相等则返回false。
function user_active($username) {
$username = sanitize($username);
$query = mysqli_query($_POST['x'], "SELECT * FROM users");
$row = mysqli_fetch_array($query);
if ($row['username'] === $username and $row['active'] == 1) {
return true;
} else {
return false;
}
}