У меня этот код, но когда я пытаюсь его использовать, он дает мне сообщение об ошибке «Неустранимая ошибка: нельзя использовать объект типа mysqli_stmt as array». Я пытаюсь найти имя пользователя, которое прилагается к письму, кто бы ни пытался войти.Вход в PHP дает мне фатальную ошибку?
<?php if($_SERVER['REQUEST_METHOD'] == 'POST')
{
session_start();
$sql = new mysqli('hostname', 'dbname', 'username', 'password');
$email = $_POST['email'];
$password = $_POST['password1'];
if(empty($email))
{
echo "<p>Email cannot be empty.</p>";
}
else if(empty($password))
{
echo "<p>Password cannot be empty.</p>";
}
else
{
$hashinserted = hash('sha512', $password);
$db = $sql->prepare("SELECT Email, Password, Username FROM Users WHERE Email = ? AND Password = ? ");
$db->bind_param('ss', $email, $hashinserted);
$db->execute();
$db->bind_result($email, $username, $hashinserted);
$db->store_result();
if($db->num_rows == 1) //To check if the row exists
{
$data = $db->fetch_assoc();
$username = $data["Username"];
$_SESSION['username'] = $username;
$_SESSION['loggedin'] = true;
$_SESSION['email'] = $email;
header('Location:index.php');
exit();
} //check for results
else
{
echo "Whoops! You entered incorrect log in credentials. Try again.";
} //end incorrect information else
$db->close();
$sql->close();
} //end login else
} //end server if
?>
Какая строка является ошибкой? – qwertynl
Он говорит строку 77, но я не думаю, что есть строка 77. – moonlightdreamer
Sidenote: Люди обычно называют соединение с базой данных для '$ db' и запросы для' $ sql', '$ query' или что-то другое. Вы называете это довольно назад. – OptimusCrime