我收到此错误消息:
Fatal error: Cannot use object of type stdClass as array
码:
if(isset($_POST['anmelden']))
{
$email = $_POST['email'];
$passwort = $_POST['passwort'];
$statement = $pdo->prepare("SELECT * FROM hwvor_nutzer WHERE nutzer_email = :email");
$result = $statement->execute(array('email' => $email));
$user = $statement->fetch();
if($user !== false && password_verify($passwort, $user['passwort']))
{
$_SESSION['userid'] = $user['id'];
die('Login erfolgreich. Weiter zum <a href="nutzerberich.php">internen Bereich</a>');
}
else
{
$errorMessage = "E-Mail oder Passwort war ungültig<br>";
}
}
最佳答案
您可能需要在获取数据之前检查$result
的值,以防查询失败。我猜问题是由该行中的$user['passwort']
引起的
if($user !== false && password_verify($passwort, $user['passwort']))
如果查询失败,则
$user = $statement->fetch();
不会将数组分配给$user
,而是其他不能作为数组处理的东西。此外,我相信
$result = $statement->execute(array('email' => $email));
应该更改为
$result = $statement->execute(array(':email' => $email));
请注意额外的
:
,它似乎是必需的,请查看examples on php.net。
关于php - fatal error : Cannot use object of type stdClass as array in … on line 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50871531/