PHP 错误:"Trying to access array offset on value of type bool"



当我加载登录页面时,我看到这些错误:

警告:未定义数组键"email"在C:xampphtdocsalfarabi_websiteloginindex.php on line 8

警告:未定义的变量$错误C:xampphtdocsalfarabi_websiteloginindex.php on line 28

警告:未定义变量$success inC:xampphtdocsalfarabi_websiteloginindex.php on line 29

,当我尝试登录时,我看到另一个错误,而不是前一个:

尝试访问bool类型值上的数组偏移量

我在互联网上搜索,但我不明白什么是错误和如何修复它,我是新的PHP和SQL。

下面是我的代码:
<?php
#DB connect
$bdd = new PDO('mysql:host=localhost;dbname=alfarabi_website','root','');
#Select db
$req = $bdd -> prepare('SELECT * FROM users WHERE email = :email ');
$req -> execute(array(':email'=>$_POST['email']));
$donnees = $req -> fetch();

session_start();
if (isset($_POST['submit'])) {
// code...
if ($_POST['email']==$donnees['email']) {
// code...
$error = "";
$success = "welcome";
header("location: ../indexAcc.php");
}
else {
// code...
$error = "invalid";
$success = "";
}
}
echo $error;
echo $success;
?>

1-您需要确保该变量可用。

2-如果变量是一个数组,你应该检查它的索引

<?php
#DB connect
$bdd = new PDO('mysql:host=localhost;dbname=alfarabi_website','root','');
#Select db
$req = $bdd -> prepare('SELECT * FROM users WHERE email = :email ');
$req -> execute(array(':email'=>isset ($_POST['email']) ? $_POST['email'] : '') ;
$donnees = $req -> fetch();

session_start();
if (isset($_POST['submit'])) {
// code...
if ($_POST['email']==$donnees['email']) {
// code...
$error = "";
$success = "welcome";
header("location: ../indexAcc.php");
}
else {
// code...
$error = "invalid";
$success = "";
}
}
echo isset ($error) ? $error : '';
echo isset ($success) ? $success : '';
?>

最新更新