Bonsoir, J'ai voulu chercher un autre moyen pour gérer les permissions et j'ai trouvé celui-ci **[url=http://www.grafikart.fr/tutoriels/php/niveau-permissions-php-148]Tutoriel vidéo PHP : Gérer des Permissions[/url]**. Malheureusement j'ai un problème pourtant, je suis presque sur que tout est bien configuré copié/collé des originaux en modifiant uniquement le chemin pour ma base de donnée. Voici un screen lorsque je souhaite me connecter : PS : Que le mot de passe soit correct ou non il m'affiche "Les identifiants sont mauvais.". [url=http://www.hostingpics.net/viewer.php?id=948388erreur.png][img]http://img4.hostingpics.net/thumbs/mini\_948388erreur.png[/img][/url] J'espère que quelqu'un sait d'où sa pourrait provenir... J'ai fais pareil sur les fichiers du tutoriel avec **MA** base de donnée et tout fonctionne. Cordialement, Edit : Voici le fichier class.auth.php [code]<?php class Auth{
var $forbiddenPage = "Lien vers ma page d'acceuil";
/**
* Permet d'identifier un utilisateur
**/
function login($d){
global $PDO;
$req = $PDO->prepare('SELECT users.id,users.login,users.address,roles.name,roles.slug,roles.level FROM users LEFT JOIN roles ON users.role\_id=roles.id WHERE login=:login AND password=:password'); $req->execute($d); $data = $req->fetchAll(); if(count($data)>0){ $\_SESSION['Auth'] = $data[0]; return true; } return false; } /\*\* \* Autorise un rang à accéder à une page, redirige vers forbidden sinon \* \*/ function allow($rang){ global $PDO; $req = $PDO->prepare('SELECT slug,level FROM roles'); $req->execute(); $data = $req->fetchAll(); $roles = array(); foreach($data as $d){ $roles[$d->slug] = $d->level; } if(!$this->user('slug')){ $this->forbidden(); }else{ if($roles[$rang] > $this->user('level')){ $this->forbidden(); }else{ return true; } } } /\*\* \* Récupère une info utilisateur \*\*\*/ function user($field){ if($field == 'role') $field = 'slug'; if(isset($\_SESSION['Auth']->$field)){ return $\_SESSION['Auth']->$field; } else{ return false; } } /\*\* \* Redirige un utilisateur \* \*/ function forbidden(){ header('Location:'.$this->forbiddenPage); } } $Auth = new Auth(); [/code]
a la ligne 25, il faut remplacer l’attribue (name) par (value) comme ceci:
<input class="submit" type="submit" value="Se connecter">
Le voici :
<div id="title"><span>Se connecter</span></div>
<img src="<?php echo ''.WEBROOT.''.$url_global.'' ?>hr.png" class="hr"/>
<?php
if(!empty($_POST)){
if($Auth->login($_POST)){
}else{
echo '<p><div class="erreur"><img src="'.WEBROOT.''.$url_devtool.'error.png" class="devtool"/> Les identifiants sont mauvais.</div></p>';
}
}
?>
<table width="94%" style="margin:8px 0px 8px 20px;">
<form action="<?php echo ''.$lien_connexion.'' ?>" method="post">
<tr>
<td class="right"><b>Nom de compte :</b></td>
<td><input type="text" name="login"></td>
</tr>
<tr>
<td class="right"><b>Mot de passe :</b></td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td colspan="2"><center><input class="submit" type="submit" name="Se connecter"></center></td>
</tr>
</form>
</table>
<img src="<?php echo ''.WEBROOT.''.$url_global.'' ?>hr.png" class="hr"/>
<?php echo '<h3>» Retourner à <a href="'.$lien_home.'">la page d\'accueil</a>.</h3>'; ?>
OMG quoi xD !
Je sais pas comment j'ai fais pour passer à coté de cette erreur...
Enfin bref, je te remercie quand même, maintenant ça fonctionne :)