Bonjour à tous.
Je suis débutant dans le PDO et après plusieurs tentative je n'est pas su trouvé d'ou provenais le problème.
Je m'explique j'ai crée un site ou l'on doit se crée un compte lors de la création de compte nous devons l'activer jusque là pas de problème tous fonctione mais j'aimerais que les utilisateur non "Activer" (donc leur compte) ne puisse pas se connecter.J'ai donc esseyer plusieurs choses celà détecte bien le non activer mais fait la même chose lorsque je passe le "0" du champs active a "1".Je vous montre les codes.

Pannel.php (qui sert de login)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
<?php
if(Input::exists()) {
		$validate = new Validate();
		$validation = $validate->check($_POST, array(
			'username' => array ('required' => true),
			'password' => array('required' => true),
 
			));
 
			if($validation->passed()) {
				$user = new User();	
				$remember = (Input::get('remember') === 'on') ? true : false;
				$login = $user->login(Input::get('username'), Input::get('password'), $remember);
				$active = $user->activate($active);
 
				if($login) {
					if($user->activate($active) == false) {
						$user->logout();					
				Session::flash('home', 'Votre compte n\'est pas activer!');
				Redirect::to('index.php');
				} else {
				if($user->activate($active) == false) {
					Redirect::to('index.php');
					}
				}
			} else {
						echo '<p>Désoler,l\'authentification à échouer ! Vérifier vos identifiant!</p>';	
				}
 
			} else {
				foreach($validation->errors() as $error) {
					echo $error, '<br>';	
			}
		}
	} 
?>
Le morceau de code dans DB.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 
	public function activate($active) {
		$sql = "SELECT * FROM users WHERE active = {$active}";
		$this->query($sql);
		$ac = $this->_query->fetchAll();
		if($ac == 1) {
			return true;
			} else if($ac == 0) {			
			 return false;
			}
		}
User.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
public function activate($active) {
			$this->_db->activate('users', $active);
				if($active == 1) {
					return true;
					                } else if($active == 0) {
						            return false;
					               }
			}
J'ai beau changer le code dans pannel.php c'est comme si il restait bloquer sur la partit ou se trouve la refus de connection vers logout qui est placer juste après la vérification du champ active.