Session administrateur et visiteur [Résolu]

Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Dernière intervention
23 juin 2014
- 13 juin 2014 à 10:06 - Dernière réponse :
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Dernière intervention
23 juin 2014
- 13 juin 2014 à 11:52
Bonjour,

J'ai fais un système de connexion ou les compte contient une colonne "droits" soit droits Administrateur ou droits Visiteur
Administrateur contient la lettre A
Visiteur contient contient la lettre V
Ma page pour la connexion est celle ci :
Quand je me connecte sa marche bien

if (isset($_POST['login'])){ // execution uniquement apres envoi du formulaire (test si la variable POST existe)
 $login = addslashes($_POST['login']); // mise en variable du nom d'utilisateur
 $pass = addslashes(($_POST['pass'])); // mise en variable du mot de passe
 

$verif_query=sprintf("SELECT * FROM Compte WHERE login='$login' AND password='$pass'"); 
$verif = mysql_query($verif_query) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$admin = mysql_num_rows($verif);

 if ($admin) 
 { // On test s'il y a un utilisateur correspondant
      session_register("authentification"); // enregistrement de la session
  
  // déclaration des variables de session
  
  $_SESSION['nom'] = $row_verif['nom']; // Son nom
  $_SESSION['login'] = $row_verif['login']; // Son Login
  $_SESSION['droits'] = $row_verif['droits'];
   
 // header("Location:Contenus.php"); // redirection si OK
 if(isset($_SESSION['droits']))
        {
           if($_SESSION['droits']=="A") header('location:Contenus.php');
           elseif($_SESSION['droits']=="V")header('location:index3.php');
           else echo"Vous n'avez aucun droits d'accés";
        }
 }
else 


Le droits Administrateur a le droits de insérer ,modifie ,supprimer des données du site
Le droits visiteur juste de voir les données.

je possède déjà la page administrateur ,
C'est mieux de refaire une page visiteur en enlevant les bouton et lien ou d"utiliser une fonction qui bloque les bouton plus lien et comment on fait ?

et pour éviter que quelqu'un est accès a mon site en tapant juste l'adresse j'ai test sa au début de mes pages mais sa bloquer rien j'arrive a y accès normalement:


<?php
session_start(); // ici on continue la session
if ((!isset($_SESSION['login'])) || ($_SESSION['login'] == ''))
{
 // La variable $_SESSION['login'] n'existe pas, ou bien elle est vide
 // <=> la personne ne s'est PAS connectée
 echo '<p>Vous devez vous <a href="index.php">connecter</a>.</p>'."\n";
 exit();
}

?>

ou sa pareil sa bloque pas l'accés
<?php
session_start();
if (isset($_SESSION['connect']))//On vérifie que le variable existe.
{
        $connect=$_SESSION['connect'];//On récupère la valeur de la variable de session.
}
else
{
        $connect=0;//Si $_SESSION['connect'] n'existe pas, on donne la valeur "0".
}
       
if ($connect == "1") // Si le visiteur s'est identifié.
{
// On affiche la page cachée.
?>



Merci d'avance
Afficher la suite 

Votre réponse

7 réponses

Messages postés
23284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 13 juin 2014 à 10:39
0
Merci
Bonjour,

C'est mieux de refaire une page visiteur en enlevant les bouton et lien ou d"utiliser une fonction qui bloque les bouton plus lien et comment on fait ?

Le mieux est de n'avoir qu' UNE page et d'y gérer l'affichage ou non des boutons en fonction des droits.

tu peux faire quelque chose du genre :


if($_SESSION['droits']=="A"){
    // affichage d'un bouton
   echo "<input type="buton" .....>";
}
// a faire pour chaque bouton à afficher ou non !





et pour éviter que quelqu'un est accès a mon site en tapant juste l'adresse j'ai test sa au début de mes pages mais sa bloquer rien j'arrive a y accès normalement:

-> Déjà... Sur ce forum... on ne pose qu' UNE question par discussion...
La prochaine fois, merci d'ouvrir une discussion POUR CHAQUE question.


Ensuite...
Tu peux éventuellement utiliser un Header Location
http://www.commentcamarche.net/faq/878-redirection-php-redirect-header


session_start(); // ici on continue la session
if ((!isset($_SESSION['login'])) || ($_SESSION['login'] == ''))
{
 // La variable $_SESSION['login'] n'existe pas, ou bien elle est vide
 // <=> la personne ne s'est PAS connectée
 header('Location: /repertoire/mapage.php');  
 exit();
}


=> En mettant la page que tu souhaites afficher si il n'est pas connecté à la place de /repertoire/mapage.php

.
Messages postés
23284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 13 juin 2014 à 11:15
Le problème c'est pour l'accès au site juste en tapant le lien on peut toujours y accéder
sa me mais aucun message d'erreur sa affiche normalement connecté ou non
Tu as regardé ce que valent tes variables de session ?
Si tu as déjà une page ouverte sur ton site (en étant logué)... les variables de sessions sont renseignées..et donc.. normal qu'il ne te fasse pas le redirection...


Essayes ceci pour voir :

session_start(); // ici on continue la session
Echo "<br> Variables de session = <br>";
print_r($_SESSION);

if ((!isset($_SESSION['login'])) || ($_SESSION['login'] == ''))
{
 // La variable $_SESSION['login'] n'existe pas, ou bien elle est vide
 // <=> la personne ne s'est PAS connectée
 header('Location: /repertoire/mapage.php');  
 exit();
}

Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Dernière intervention
23 juin 2014
- 13 juin 2014 à 11:21
Sa me donne ceci soit Variables de session inconnue

Variables de session =
Array ( [authentification] => [nom] => admin [login] => admin [droits] => A )
Messages postés
23284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 13 juin 2014 à 11:27
C'est donc bien ce que je te disais... tes variables de sessions SONT DEJA INITIALISEES...

Fermes tous tes navigateurs.
Rouvre en un..et colle l'URL de ta page.... et là..ça doit fonctionner !
Messages postés
23284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 13 juin 2014 à 11:30
Ah... et puis...
Cette ligne ne peut pas fonctionner :

if (isset($_SESSION['connect']))


connect ... n'est pas un nom de variable dans tes sessions...
Tu n'as que :
[authentification]
[nom]
[login]
[droits]
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Dernière intervention
23 juin 2014
- 13 juin 2014 à 11:52
d'accord c'est bon sa marche
Merci beaucoup a plus tard ^^
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.