当我加载登录页面时,我看到这些错误:
警告:未定义数组键"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 : '';
?>