begin process at 2012 05 31 12:31:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Problème de connexion avec les sessions


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème de connexion avec les sessions

jeudi 21 avril 2005 à 11:25:05 | Problème de connexion avec les sessions

slum_411

Bonjour à tous (et à toutes),

Je développe actuellement un site avec un formulaire de connexion.
Chaque page est protégée par un fichier qui est le suivant :
<?PHP
    
//Fichier de contrôle d'un client
    
if(!session_is_registered('id'))
    {
        echo
"<br><br>Vous n'avez pas accès à cette page.";
        include
"footer.php";
        exit();
    }
?>
Le problème est :
- L'utilisateur ouvre sa page
- Il se connecte en saisissant son email et son mot de passe
- Le menu complet s'affiche
- Il clique sur une zone protégée (par exemple commande/lister.php)
- Le message 'Vous n'avez pas accès à cette page' s'affiche, le menu disparait
- On se relogue, et cette fois ci ça marche.

Est-ce un problème de PHP (easyphp 1.8) ?

Voici le fichier header.php, qui contient toutes les informations relatives à la connexion (je ne sais pas si ça sera trop long) :

<?PHP
//Si le formulaire est validé
if($_GET["action"]=="connect")
{
    
//requete de connexion à la table user
    
$mdp=$_POST["mdp"];
    
$email=$_POST["email"];
    
//Connexion en entete GET pour le log VB
    
if($_GET["log"]=="vb")
    {
        
$mdp=$_GET["mdp"];
        
$email=$_GET["email"];
    }
    
$sql="select * from UTILISATEUR where email='".$email."';";
    
$r=mysql_query($sql);
    
$res=mysql_fetch_array($r,1);
    
//On teste la validité du mot de passe
    
if($res["mdp"]==$mdp)
    {
        
//On récupère l'id
        
$theid=$res["id"];
        if(
$theid==""){$theid=-1;} //Pour éviter les erreurs de requête
        
$sql="select * from CLIENT where UTILISATEUR_id=".$theid.";";
        
$rconn=mysql_query($sql);
        if(
mysql_num_rows($rconn)>0)
        {
            
$type=1; //Le type est un client
        
}
        else
        {
            
$type=0; //Le type est un technicien
        
}
        
//On enregistre des infos dans des variables de session
        
session_register('id');
        
session_register('nom');
        
session_register('prenom');
        
session_register('type');
        
$_SESSION['id']=$res["id"];
        
$_SESSION['nom']=$res["nom"];
        
$_SESSION['prenom']=$res["prenom"];
        
$_SESSION['type']=$type;
    }
}
//Deconnexion
if($_GET["action"]=="disconnect")
{
    
session_unset();
}

if(
session_is_registered('id'))
{
    
//Sinon on affiche on message de bienvenue
    
echo "<p align=\"left\" class=\"bienvenue\">&nbsp;&nbsp;&nbsp;Bonjour ".$_SESSION['prenom']." ".$_SESSION['nom']."<br><br></p>";
}
?>
</td>
<td width="100">&nbsp;</td>
</tr>
<tr>
<td valign="top" style="background-image:url(<?PHP echo $chemin_reference;?>images/menu.gif); background-repeat:no-repeat;" height="405" width="162" class="menu" align="center">
<table border="0" align="center" width="80%" valign="top">
<tr>
<td>
<br>
<br>
<br>
<br>
<br>
<?PHP


//On teste si l'utilisateur est connecté
if(!session_is_registered('id'))
{
    
//on teste si il ya déjà des paramètres GET
    
$testpi=strpos($_SERVER["REQUEST_URI"],"?");
    if(
$testpi===false)
    {
        
$testpi=$_SERVER["REQUEST_URI"]."?";
    }
    else
    {
        
$testpi=$_SERVER["REQUEST_URI"];
    }
    
//Affichage du formulaire de connexion
    
echo "<!-- Formulaire de connexion -->\n
    <form name=\"connexion\" method=\"POST\" action=\""
.$testpi."&action=connect\">\n
    <table width=\"100%\">\n
    <tr>\n
    <td>E-Mail :</td>\n
    <td><input type=\"text\" name=\"email\" size=\"10\" value=\""
.$_POST["email"]."\"></td>\n
    </tr>\n
    <tr>\n
    <td>Pass :</td>\n
    <td><input type=\"password\" name=\"mdp\" size=\"10\"></td>\n
    </tr>\n
    <tr>\n
    <td colspan=\"2\" align=\"center\"><input type=\"button\" value=\"Connexion\" onclick=\"javascript:verifconn();\"></td>\n
    </tr>\n
    </table>\n
    </form>\n"
;
}

if(!
session_is_registered('id'))
{
    echo
"<a href=\"".$chemin_reference."inscription/inscription.php\" title=\"S'inscrire au site\"><img border=\"0\" alt=\"S'inscrire\" src=\"".$chemin_reference."images/boutons/sinscrire.gif\"></a><br>";
}
echo
"<a href=\"".$chemin_reference."index.php\" title=\"Accueil\"><img border=\"0\" alt=\"Accueil\" src=\"".$chemin_reference."images/boutons/accueil.gif\"></a><br>";
echo
"<a href=\"".$chemin_reference."option/lister.php\" title=\"Liste des options\"><img border=\"0\" alt=\"Options\" src=\"".$chemin_reference."images/boutons/options.gif\"></a><br>";

if(
session_is_registered('id'))
{
    echo
"<a href=\"".$_SERVER["PHP_SELF"]."?action=disconnect\" title=\"Déconnexion\"><img border=\"0\" alt=\"Deconnexion\" src=\"".$chemin_reference."images/boutons/deconnexion.gif\"></a><br><br>";
    if(
$_SESSION["type"]==1)
    {
        echo
"<a href=\"".$chemin_reference."commande/nouveau.php\" title=\"Nouvelle commande\"><img border=\"0\" alt=\"Nouvelle commande\" src=\"".$chemin_reference."images/boutons/nouvellecommande.gif\"></a><br>";
        echo
"<a href=\"".$chemin_reference."commande/lister.php\" title=\"Mes commandes\"><img border=\"0\" alt=\"Mes commandes\" src=\"".$chemin_reference."images/boutons/mescommandes.gif\"></a><br>";
        echo
"<a href=\"".$chemin_reference."logiciel.php\" title=\"Télécharger le logiciel\"><img border=\"0\" alt=\"Logiciel\" src=\"".$chemin_reference."images/boutons/logiciel.gif\"></a><br>";
    }
    else
    {
        
//echo "<a href=\"".$chemin_reference."technicien/inscription.php\">Inscription</a><br>";
        
echo "<a href=\"".$chemin_reference."commande/suivitechnicien.php\" title=\"Suivi des commandes\"><img border=\"0\" alt=\"Mes commandes\" src=\"".$chemin_reference."images/boutons/suividescommandes.gif\"></a><br>";
        echo
"<a href=\"".$chemin_reference."materiel/gestion.php\" title=\"Gestion du matériel\"><img border=\"0\" alt=\"Materiel\" src=\"".$chemin_reference."images/boutons/gestionmateriel.gif\"></a><br>";
        echo
"<a href=\"".$chemin_reference."option/ajouter.php\" title=\"Ajouter une option\"><img border=\"0\" alt=\"Options\" src=\"".$chemin_reference."images/boutons/nouvelleoption.gif\"></a><br><br>";
        
        echo
"<form name=\"devis\"><table><tr><td><a href=\"#\" onclick=\"javascript:a=window.open('".$chemin_reference."commande/view.php?type=devis&id='+document.devis.id.value);document.devis.id.value='';\" title=\"Voir un devis\"><img border=\"0\" alt=\"Devis\" src=\"".$chemin_reference."images/boutons/devis.gif\"></a></td><td><input type=\"text\" size=\"3\" name=\"id\"></td></tr></form>";
        echo
"<form name=\"facture\"><tr><td><a href=\"#\" onclick=\"javascript:a=window.open('".$chemin_reference."commande/view.php?type=facture&id='+document.facture.id.value);document.facture.id.value='';\" title=\"Voir une facture\"><img border=\"0\" alt=\"Facture\" src=\"".$chemin_reference."images/boutons/facture.gif\"></a></td><td><input type=\"text\" size=\"3\" name=\"id\"></td></tr></form>";
        echo
"<form name=\"commande_\"><tr><td><a href=\"#\" onclick=\"javascript:window.location='".$chemin_reference."technicien/commande.php?id='+document.commande_.id.value;document.commande_.id.value='';\" title=\"S'occuper d'une commande\"><img border=\"0\" alt=\"Commande\" src=\"".$chemin_reference."images/boutons/commande.gif\"></a></td><td><input type=\"text\" size=\"3\" name=\"id\"></td></tr></table></form>";
    }
}
echo
"<a href=\"".$chemin_reference."contact.php\" title=\"Contact\"><img border=\"0\" alt=\"Contact\" src=\"".$chemin_reference."images/boutons/contact.gif\"></a><br>";
?>
jeudi 21 avril 2005 à 12:38:30 | Re : Problème de connexion avec les sessions

malalam

Administrateur CodeS-SourceS
Hello,

tu fais bien des session_start() au debut de chacune de tes pages ? Ou du moins, il est inclus dans ces pages ?
jeudi 21 avril 2005 à 14:25:49 | Re : Problème de connexion avec les sessions

slum_411

Oui, il est bien inclu dans chaque page, en première ligne (aucun echo avant).
Je trouve ça bizarre quand même...


Cette discussion est classée dans : session, id, chemin, echo, reference


Répondre à ce message

Sujets en rapport avec ce message

debutant probleme de session! [ par jimmy69 ] bonjour a tous,voila je debute en php et je suis en train de realiser un espace menbresou ceux ci peuvent poster des news un truc tout simple!j'ai don espace membre en PHP [ par silendus ] je vais essayé d'être clair :)Donc je suis en train de faire un site en PHP avec gestion de membres.le problème que je rencontre est le suivant: je n' problème de session [ par guendouf ] Bonjour,je poste 2 scripts, j'aimerai qu'on m'aide et qu'on m'explique pourquoi j'arrive pas à me connecter:1)session.php// On inclut le fichier de co problème de session php [ par oriviera ] Bonjour,Voilà gros problme avec les sessions je sais ce n'est pas nouveau, mais je ne comprend rien car dans un cas de figure ca fonctionne très bien caddie [ par cobra176 ] bonjour a tous .j'ai réalise un caddie avec des sessions , je me pose une question car j'ai essaye de retirer des produits de mon caddie , je n'y arri variable de sessions [ par fatatra ] Bonjour a tous;Je veux me servir des variables globales pour identifiez les visiteurs, et j'ai un comportement bizarre de cette dernier.Quand je la me Paginations [ par slhuilli ] bonjourje ne sais pas apres de longues recherches comment je pourrais paginer 10 par 10 mes réponses issues d'une select * .Voici ce que j'ai :     se problème avec variable de session et boucle while [ par indutec ] Bonjour j'ai un souci avec une variable de session qui ne veut pas passer dans une boucle while [^^sad2] voici mon code: La personne s'identifie via Liaison entre deux tables [ par ilyes2002 ] Bonjour à tous, J''espère, trouvera une réponse a mon probleme! J'ai deux tables [b]incsr[/b] et [b]RDV[/b] tout marche bien mais le probleme c'es Problème de variables en dehors d'une class [ par yukimura27 ] Bonjour à tous, J'ai un problème pour utiliser une variable en dehors de ma class. Voici mon code: class pouet { public function SelectAll () {


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales