PHP 7.4 注意:尝试访问 bool 类型值的数组偏移量
PHP 7.4 Notice : Trying to access array offset on value of type bool in
我有一个使用 PDO 准备语句的简单登录表单,它在 php 7.3 下运行良好,但在 7.4 下我发现这有问题
我简单使用的代码是:
if(isset($_POST['btn_login'])){
$useremail = $_POST['txt_email'];
$password = $_POST['txt_password'];
$select= $pdo->prepare("select * from tbl_user where useremail='$useremail' AND password='$password'");
$select->execute();
$row=$select->fetch(PDO::FETCH_ASSOC);
if($row['useremail']==$useremail AND $row['password']==$password){
echo $success='Login Successful';
header('refresh:1;dashboard.php');
}else{
echo 'Login Failed';
}
使用 PDO 和准备好的语句什么是 php 7.4 的正确解决方案?
因为您的查询没有结果。它 returns FALSE 并且您尝试将 false 作为数组访问。
所以测试行是否填充了数据
(请参阅更新的 if 语句)。
顺便说一句。在 header.
之后回显
if($row && $row['useremail']==$useremail && $row['password']==$password){
header('refresh:1;dashboard.php');
echo $success='Login Successful';
} else{
echo 'Login Failed';
}
提示:使用准备好的语句
$select = $pdo->prepare("SELECT * FROM tbl_user WHERE useremail=? AND password=?");
$select->execute([$useremail, $password]);
警告
切勿以纯文本形式保存密码。使用 encryption.
我有一个使用 PDO 准备语句的简单登录表单,它在 php 7.3 下运行良好,但在 7.4 下我发现这有问题
我简单使用的代码是:
if(isset($_POST['btn_login'])){
$useremail = $_POST['txt_email'];
$password = $_POST['txt_password'];
$select= $pdo->prepare("select * from tbl_user where useremail='$useremail' AND password='$password'");
$select->execute();
$row=$select->fetch(PDO::FETCH_ASSOC);
if($row['useremail']==$useremail AND $row['password']==$password){
echo $success='Login Successful';
header('refresh:1;dashboard.php');
}else{
echo 'Login Failed';
}
使用 PDO 和准备好的语句什么是 php 7.4 的正确解决方案?
因为您的查询没有结果。它 returns FALSE 并且您尝试将 false 作为数组访问。
所以测试行是否填充了数据
(请参阅更新的 if 语句)。
顺便说一句。在 header.
之后回显if($row && $row['useremail']==$useremail && $row['password']==$password){
header('refresh:1;dashboard.php');
echo $success='Login Successful';
} else{
echo 'Login Failed';
}
提示:使用准备好的语句
$select = $pdo->prepare("SELECT * FROM tbl_user WHERE useremail=? AND password=?");
$select->execute([$useremail, $password]);
警告
切勿以纯文本形式保存密码。使用 encryption.