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\"> Bonjour ".$_SESSION['prenom']." ".$_SESSION['nom']."<br><br></p>";
}
?>
</td>
<td width="100"> </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>";
?>