Dzień dobry,
podczas robienia kursu Pasja informatyki odcinek 2 PHP zauważyłem, iż operator kontroli błędów nie działa. Wstawiam moje kody na podstawie tych z odcinka:
<!DOCTYPE HTML>
<html lang="pl">
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<title>Osadnicy - gra przeglądarkowa</title>
</head>
<body>
Tylko martwi ujrzeli koniec wojny - Platon<br/><br/>
<form action="zaloguj.php" method="post">
Login: </br> <input type="text" name="login"/> </br>
Hasło: </br> <input type="password" name="haslo"/> </br></br>
<input type="submit" value="Zaloguj się"/>
</form>
</body>
</html>
<?php
$host = "localhost";
$db_user = "root";
$db_password = "konstantynopolitanczykowna";
$db_name = "osadnicy";
?>
<?php
require_once "connect.php";
$p = @new mysqli($host, $db_user, $db_password, $db_name);
if($p->connect_errno!=0)
{
echo "Error: ".$p->connect_errno."Opis: ".$p->connect_error;
}
else
{
$login = $_POST["login"];
$haslo = $_POST["haslo"];
echo "It works";
$p->close();
}
?>
Gdy w xampie nie ma ustawionego hasła, natomiast w pliku connect.php poda się hasło, to pomimo operatora kontroli błędów efekt jest taki:
Fatal error: Uncaught mysqli_sql_exception: Access denied for user 'root'@'localhost' (using password: YES) in C:\xampp\htdocs\osadnicy\zaloguj.php:5 Stack trace: #0 C:\xampp\htdocs\osadnicy\zaloguj.php(5): mysqli->__construct('localhost', 'root', 'konstantynopoli...', 'osadnicy') #1 {main} thrown in C:\xampp\htdocs\osadnicy\zaloguj.php on line 5
Gdy nie podaje się hasła w pliku connect.php, strona działa poprawnie. Wydaje mi się że operator ten jakoś nie działa, ale nie wiem dlaczego.