Итак, вот сделка. Я хотел создать экран входа для своего веб-приложения, но кажется, что я застрял в доступе к таблице (korisnici) в моей базе данных.Проблемы с подключением к базе данных с использованием класса PDO
я получаю эту строку текста, когда я пытаюсь войти в систему:
Фатальная ошибка: Uncaught исключение «PDOException» с сообщением «SQLSTATE [HY093]: Неверный номер параметра: параметр не был определен»
Вот мой код:
<?php
session_start();
// sadrži podatke potrebne za spajanje na bazu
define('DB_HOST', 'localhost'); // naziv servera - najčešće nije potrebno mijenjati ako je server lokalni
define('DB_NAME', 'razvrstane_ceste'); // naziv baze
define('DB_USER', 'razvrstane'); // korisnik za spajanje
define('DB_PASS', 'razvrstane'); // lozinka baze
//PDO Database Connection
try {
$databaseConnection = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8', DB_USER, DB_PASS);
$databaseConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
//PDO Database Connection
if(isset($_POST['submit'])){
$errMsg = '';
//ime and password sent from Form
$ime = trim($_POST['ime']);
$lozinka = trim($_POST['lozinka']);
if($ime == '')
$errMsg .= 'You must enter your Username<br>';
if($lozinka == '')
$errMsg .= 'You must enter your Password<br>';
if($errMsg == ''){
$records = $databaseConnection->prepare('SELECT id,ime,lozinka FROM korisnici WHERE lozinka = :lozinka');
$records->bindParam(':ime', $ime);
$records->execute();
$results = $records->fetch(PDO::FETCH_ASSOC);
if(count($results) > 0 && password_verify($lozinka, $results['lozinka'])){
$_SESSION['ime'] = $results['ime'];
header('location:razvrstane_ceste.php');
exit;
}else{
$errMsg .= 'Username and Password are not found<br>';
}
}
}
?>
<html>
<head><title>Login Page PHP Script</title></head>
<body>
<div align="center">
<div style="width:300px; border: solid 1px #006D9C; " align="left">
<?php
if(isset($errMsg)){
echo '<div style="color:#FF0000;text-align:center;font-size:12px;">'.$errMsg.'</div>';
}
?>
<div style="background-color:#006D9C; color:#FFFFFF; padding:3px;"><b>Login</b></div>
<div style="margin:30px">
<form action="" method="post">
<label>Korisnik :</label><input type="text" name="ime" class="box"/><br /><br />
<label>Zaporka :</label><input type="password" name="lozinka" class="box" /><br/><br />
<input type="submit" name='submit' value="Submit" class='submit'/><br />
</form>
</div>
</div>
</div>
</body>
</html>
Ваш 'bind_param' ошибочен. – Daan