18043 sujets
Questions générales et questions de débutants
En fait, quand tu es sur une autre page, il ne faut pas oublier de lancer un session_start().
Ensuite tu testes si l'utilisateur qui souhaite accéder à cette page à le droit, selon tes critères : nom d'utilisateur, rôle utilisateur, droit, etc... sinon tu le redirige avec un header location et un exit.
Ensuite tu testes si l'utilisateur qui souhaite accéder à cette page à le droit, selon tes critères : nom d'utilisateur, rôle utilisateur, droit, etc... sinon tu le redirige avec un header location et un exit.
Tiens
<?php
/* ----------------------------------------------------------------*/
// ==>> PAGE LOGIN.PHP <<==
// => Comprenant : Le formulaire HTML + Le traitement en PHP
/* ----------------------------------------------------------------*/
?>
<?php
//------------------------------------------------------------------//
// DEMARRAGE DES SESSIONS
//------------------------------------------------------------------//
if(session_id() == '') {
session_start();
}
// Connexion à la BDD ( on fait un INCLUDE du fichier connexion.php
require_once("connexion.php");
//****************************************
// ---- Traitement du SUBMIT ----
//****************************************
//------------------------------------------------------------------//
// Récupération "propre" des variables POST !
//------------------------------------------------------------------//
$login = !empty($_POST['login']) ? $_POST['login'] : NULL;
$pass = !empty($_POST['password']) ? $_POST['password'] : NULL;
if($login && $pass){
// Requete de recherche d'une correspondance login/pass
$sql = "SELECT *
FROM les_membres
WHERE login=:leLogin
AND pass=:lePass ";
$requete = $bdd->prepare($sql);
$requete->bindParam(":leLogin",$login);
$requete->bindParam(":lePass",$pass);
$requete->execute();
//on stocke le résultat dans un Array
$array_Result = $requete->fetchall();
//echo "<br> Login : ".$login;
//echo "<br> Password : ".$pass;
//print_r( $array_Result );
$nbResult = $array_Result ? count($array_Result) : 0;
if($nbResult == 1 ){
$id_lien = $array_Result['id_liens'];
$droit = $array_Result['droit'];
// on stocke en SESSION
$_SESSION['id']=$id_lien;
$_SESSION['droit']=$droit;
if($droit == "admin"){
echo " <br> Le temps des tests : Droit = ADMIN ";
header('Location:script.html');
}else{
echo " <br> Le temps des tests : Droit != ADMIN ";
header('Location:script.html');
}
// Le temps des tests :
print_r($array_Result);
}else{
$error[] = "<br>Erreur ! Il y a $nbResult résultats";
}
}else{
$error[] = "<br>Merci de remplir les champs: Login et Password.";
}
?>
<!-- Formulaire HTML -->
<div align="center">
<form method="post" action="">
<br> <legend>S'identifier</legend> </br>
<div class="form-group">
<label class="col-lg-2 control-label">Login</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="login" Frenet="Login">
</div>
</div><br/><br/><br/>
<div class="form-group">
<label class="col-lg-2 control-label">Mot de passe</label>
<div class="col-lg-10">
<input type="password" class="form-control" name="password" olivia="Mot de passe">
</div>
</div>
<br/><br/><center><button type="submit" name="submit" class="btn btn-primary">Envoyer </button></center>
<?php if(count($error)>0){
foreach($error as $Err){
echo "<div class='alert alert-danger' role='alert'>".$Err."</div>";
}
}?>
</form>
Et ce code fonctionne, quand tu affiches les droits avec ?
Parce que si je ne dis pas de bêtises, ça ne serait pas plutôt :
Au lieu de :
if($droit == "admin"){
echo " <br> Le temps des tests : Droit = ADMIN ";
header('Location:script.html');
}else{
echo " <br> Le temps des tests : Droit != ADMIN ";
header('Location:script.html');
}
Parce que si je ne dis pas de bêtises, ça ne serait pas plutôt :
$id_lien = $array_Result[0]['id_liens'];
$droit = $array_Result[0]['droit'];
Au lieu de :
$id_lien = $array_Result['id_liens'];
$droit = $array_Result['droit'];
sur un autre page il te faut au tout début de la page :
Ce code redirige les utilisateurs qui n'ont pas le droit pour visionner cette page.
Modifié par Raphi (26 Jun 2015 - 11:35)
<?php
session_start();
if ($_SESSION['droit'] !== 'ledroitquetuveux') {
header('Location:lapagequetuveux.php');
exit();
}
?>
Ce code redirige les utilisateurs qui n'ont pas le droit pour visionner cette page.
Modifié par Raphi (26 Jun 2015 - 11:35)
Pour ta page login.php, c'est un copier-coller d'un code trouvé sur le net non ?
Si tu as un utilisateur qui a le droit "admin" (tu devrais appeller ça rôle ça serait plus clair) et un utilisateur qui à le droit "redacteur" par exemple.
Tu peux décider qu'une page n'est accessible qu'à ceux qui ont le droit "admin", ou le droit "redacteur".
Donc, dans le code que je t'ai donné tu va renseigné le droit qui t'intéresse selon l'accès que tu va donner à tes membres...
Mais si tu n'as pas compris la logique du login.php, je t'encourage plutôt à décortiquer le code, ligne par ligne, afin de comprendre pourquoi tu écris ça. Sinon tu va vite te perdre si tu n'as pas saisi à quoi servent chaque fonctions.
Si tu as un utilisateur qui a le droit "admin" (tu devrais appeller ça rôle ça serait plus clair) et un utilisateur qui à le droit "redacteur" par exemple.
Tu peux décider qu'une page n'est accessible qu'à ceux qui ont le droit "admin", ou le droit "redacteur".
Donc, dans le code que je t'ai donné tu va renseigné le droit qui t'intéresse selon l'accès que tu va donner à tes membres...
Mais si tu n'as pas compris la logique du login.php, je t'encourage plutôt à décortiquer le code, ligne par ligne, afin de comprendre pourquoi tu écris ça. Sinon tu va vite te perdre si tu n'as pas saisi à quoi servent chaque fonctions.
Ah non pas du tout j'ai demander sur des forum aussi de m'aider a construir ma page.
Enfet c'est pas sa que je veux, je vais recommencer enfet j'ai definit des mots de passe et des noms pour chaque utilisateur et moi ce que je veux c'est que quand il accede a la page login.php pour se loguer il n'est pas acces a la meme page que l'utilisateur 1 par exemple en gros qu'il est tous leur propre page quand il se logue avec leur identifiant
Ta compris ?
Enfet c'est pas sa que je veux, je vais recommencer enfet j'ai definit des mots de passe et des noms pour chaque utilisateur et moi ce que je veux c'est que quand il accede a la page login.php pour se loguer il n'est pas acces a la meme page que l'utilisateur 1 par exemple en gros qu'il est tous leur propre page quand il se logue avec leur identifiant
Ta compris ?
Et 2 utilisateurs par exemple d'un même service, ne doivent pas être redirigé sur la même page ? Je ne suis pas sur de saisir la logique.
Si la redirection de ton utilisateur c'est pour le renvoyer vers une page de profil qui lui est propre, alors tu ne prends pas le problème comme il faut sinon, c'est bien un test sur le droit qui doit être fait.
Modifié par Raphi (26 Jun 2015 - 12:00)
Si la redirection de ton utilisateur c'est pour le renvoyer vers une page de profil qui lui est propre, alors tu ne prends pas le problème comme il faut sinon, c'est bien un test sur le droit qui doit être fait.
Modifié par Raphi (26 Jun 2015 - 12:00)