Session administrateur et visiteur [Résolu]

Cocob84 38 Messages postés mercredi 10 octobre 2012Date d'inscription 23 juin 2014 Dernière intervention - 13 juin 2014 à 10:06 - Dernière réponse : Cocob84 38 Messages postés mercredi 10 octobre 2012Date d'inscription 23 juin 2014 Dernière intervention
- 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 

7 réponses

Répondre au sujet
jordane45 20603 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 24 avril 2018 Dernière intervention - 13 juin 2014 à 10:39
0
Utile
6
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

.
jordane45 20603 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 24 avril 2018 Dernière intervention - 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();
}

Cocob84 38 Messages postés mercredi 10 octobre 2012Date d'inscription 23 juin 2014 Dernière intervention - 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 )
jordane45 20603 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 24 avril 2018 Dernière intervention - 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 !
jordane45 20603 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 24 avril 2018 Dernière intervention - 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]
Cocob84 38 Messages postés mercredi 10 octobre 2012Date d'inscription 23 juin 2014 Dernière intervention - 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.