Я хотел бы получить группу пользователей из моей базы данных, а затем проверить, является ли она 2 (что будет означать ее Администратор). Я в настоящее время этот код в качестве установки:Получение значения из поля базы данных и проверка того же, что и переменная в PHP?
login.php
<?php
//process login form if submitted
if(isset($_POST['submited'])){
$username = trim($_POST['username']);
$password = trim($_POST['password']);
if($user->login($username,$password)){
//logged in return to index page
$_SESSION['login'] = "$username";
header('Location: index.php');
exit;
} else {
$message = '<p class="error">Wrong username or password</p>';
}
}//end if submit
if(isset($message)) { echo $message; }
?>
<div class="lockscreen-credentials"> <form class="form-signin" role="form" method="post" action="">
<input type="text" class="form-control" name="username" placeholder="Username" required autofocus>
<div class="input-group">
<input type="password" class="form-control" placeholder="password" name="password" required/>
<div class="input-group-btn">
<button class="btn btn-flat" name="submited"><i class="fa fa-arrow-right text-muted"></i></button>
</div>
</div></form>
</div><!-- /.lockscreen credentials -->
И это класс, который называется (class.user.php):
public function login($username,$password){
$hashed = $this->get_user_hash($username);
*$st = $this->_db->prepare('SELECT userGroup FROM users WHERE username = :username');
$st->execute(array('userGroup' => 2));
$rows = $st->fetch();
if($st = 2) {
$_SESSION['loggedin'] = true;
return true;
}*
}
public function logout(){
session_destroy();
}
Как вы можете видеть код, в пределах звезд (*), где я пытаюсь проверить, является ли значение поля равным 2. Если это так, я хочу, чтобы он входил в систему. Если нет, я хочу, чтобы он перенаправлялся. Моя ошибка:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in D:*****\classes\class.user.php:42 Stack trace: #0 D:******\classes\class.user.php(42): PDOStatement->execute(Array) #1 D:*******\login.php(43): User->login('demo', 'demo') #2 {main} thrown in D:*******\classes\class.user.php on line 42
Почему вы устанавливаете '$ hashed' и не используете его? И каковы эти символы '*', выполняемые в 'login()' функции? Вы не можете выделить в блоках кода. – Barmar