A voir également:
- Prob identification php
- Entrer les informations d'identification reseau - Guide
- Easy php - Télécharger - Divers Web & Internet
- Supprimer identification instagram - Guide
- Identification instagram - Guide
- Expert php pinterest - Télécharger - Langages
10 réponses
Bonsoir,
Oui il faut que dans toutes les pages que tu veux protéger par ta session que tu mettes tout au début du script:
Oui il faut que dans toutes les pages que tu veux protéger par ta session que tu mettes tout au début du script:
<?php // attention pas de ligne vide ni code HTML avant if(!isset($_SESSION["login"]) || $_SESSION["login"] == "") { header("Location index.php") ; }//fin if else { ?> <html> //la le contenu de ta page </html> <?php } ?>
Salut,
il faut que tu fasses des catégories de statut
dans ta table BDD tu rajoutes un champ statut, dans lequel en face de chaque paire login/pass des mebdre stu mets:
cat1 cat2 cat3 etc..
ensuite, dans ton fichier qui verifie le login et pass, tu orientes si login/pass OK vers des pages différentes.
Dans le cookie de SESSION on a mis le statut, ensuite tu peux si tu veux vérifier qu'il correspond bien dans les pages concernées.
par exemple dans la page correspondant à la cat1:
il faut que tu fasses des catégories de statut
dans ta table BDD tu rajoutes un champ statut, dans lequel en face de chaque paire login/pass des mebdre stu mets:
cat1 cat2 cat3 etc..
ensuite, dans ton fichier qui verifie le login et pass, tu orientes si login/pass OK vers des pages différentes.
................. //création de la requête SQL $sql = "SELECT login, pass_md5,statut FROM users WHERE login = '".$login."'AND pass_md5 = '".$pass."'" ; //exécution de la requête SQL $requete = @mysql_query($sql, $cnx) or die($sql."<br>".mysql_error()) ; //on récupère le résultat $result = mysql_fetch_object($requete) ; //si la requête s'est bien passée if(is_object($result)) { //début de la sessions session_start() ; //enregistrement d'une variable de session, ici le login de l'utilisateur $_SESSION["login"] = $statut ; switch ($statut){ case "cat1": header("Location: membership_1.php") ; break; case "cat2": header("Location: membership_2.php") ; break; case "cat3": header("Location: membership_3.php") ; break; case "cat4": header("Location: membership_4.php") ; break; } }//fin if //sinon on retourne à la page d'inscription else { header("Location: index.php") ; }//fin else ......................
Dans le cookie de SESSION on a mis le statut, ensuite tu peux si tu veux vérifier qu'il correspond bien dans les pages concernées.
par exemple dans la page correspondant à la cat1:
if(!isset($_SESSION["login"]) || $_SESSION["login"] == "") { header("Location index.php") ; }//fin if elseif (isset($_SESSION["login"]) && ($_SESSION["login"]) == "cat1") { ?> <html> //la le contenu de ta page correspondant à la cat1 </html> <?php } ?>
je vais être encore un peu emmerdant mais voila j'ai ca dans mon verif.php
et ca dans la page ou je veux que cat1 soit
et dans ma bdd j'ai id, statut, login, pass_md5, age ect....
et pourtant qd je me log il me remet direct sur index.php comme si le pass été pas bon.
Au debut j'avais pas mis les "break;" dans le switch donc je pensais que c'était ça mais non rien à voir il veux pas se logger.
je fait d'autres test pour voir ... :)
Si quelqu'un à une brillante idée :)
<?php if($_POST["login"] != "" && $_POST["pass"] != "") { //$login = $_POST["login"] ; //$pass = md5($_POST["pass"]) ; //connexion au serveur $cnx =mysql_connect("localhost","root","xxxx7777") or die ("Pb connexion a la base ".mysql_error()); //sélection de la base de données $db = mysql_select_db("dbfasung") or die ("Pb selection base ".mysql_error()); //création de la requête SQL $sql = 'SELECT statut,login,pass_md5 FROM users WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"'; //exécution de la requête SQL $requete = mysql_query($sql, $cnx) or die($sql."<br>".mysql_error()) ; //on récupère le résultat $result = mysql_fetch_object($requete) ; //si la requête s'est bien passée if(is_object($result)) { //début de la sessions session_start() ; //enregistrement d'une variable de session, ici le login de l'utilisateur $_SESSION["login"] = $statut ; switch ($statut){ case "cat1": header("Location: membership.php") ; break; case "cat2": header("Location: membership2.php") ; break; case "cat3": header("Location: membership3.php") ; break; case "cat4": header("Location: membership4.php") ; break; } }//fin if //sinon on retourne à la page d'inscription else { header("Location: index.php") ; }//fin else }//fin if /* sinon on retourne à la page d'inscription */ else { header("Location: index.php") ; }//fin else ?>
et ca dans la page ou je veux que cat1 soit
<?php session_start() ; if(!isset($_SESSION["login"]) || $_SESSION["login"] == "") { header("Location index.php") ; }//fin de if elseif (isset($_SESSION["login"]) && ($_SESSION["login"]) == "cat1") { ?> <html> le code de ma page </html> <?php }fin du else ?>
et dans ma bdd j'ai id, statut, login, pass_md5, age ect....
et pourtant qd je me log il me remet direct sur index.php comme si le pass été pas bon.
Au debut j'avais pas mis les "break;" dans le switch donc je pensais que c'était ça mais non rien à voir il veux pas se logger.
je fait d'autres test pour voir ... :)
Si quelqu'un à une brillante idée :)
Bonsoir,
tu as des erreurs dans cette partie:
//connexion au serveur
$cnx =
mysql_connect("localhost","root","xxxx7777","dbfasung&q
uot;);
//sélection de la base de données
$db = mysql_select_db("dbfasung");
//création de la requête SQL
$sql = "SELECT login, pass_md5 FROM users WHERE login = '".$login."'
AND pass_md5 = '".$pass."'" ;
//exécution de la requête SQL
$requete = @mysql_query($sql, $cnx) or
die($sql."<br>".mysql_error()) ;
ne mets pas le @ avant mysql_.... pendant la phase de debuggage et mets des or die sur les autres mysql_... pour avoir les erreurs
tu as un parametre en trop dans mysql_connect, il ne faut pas préciser la base, tu le fais après, et en plus tu avais un " ??
mets plutôt:
tu as des erreurs dans cette partie:
//connexion au serveur
$cnx =
mysql_connect("localhost","root","xxxx7777","dbfasung&q
uot;);
//sélection de la base de données
$db = mysql_select_db("dbfasung");
//création de la requête SQL
$sql = "SELECT login, pass_md5 FROM users WHERE login = '".$login."'
AND pass_md5 = '".$pass."'" ;
//exécution de la requête SQL
$requete = @mysql_query($sql, $cnx) or
die($sql."<br>".mysql_error()) ;
ne mets pas le @ avant mysql_.... pendant la phase de debuggage et mets des or die sur les autres mysql_... pour avoir les erreurs
tu as un parametre en trop dans mysql_connect, il ne faut pas préciser la base, tu le fais après, et en plus tu avais un " ??
mets plutôt:
//connexion au serveur $cnx =mysql_connect("localhost","root","xxxx7777") or die ("Pb connexion a la base ".mysql_error()); //sélection de la base de données $db = mysql_select_db("dbfasung") or die ("Pb selection base ".mysql_error()); //création de la requête SQL $sql = "SELECT login, pass_md5 FROM users WHERE login = '".$login."'AND pass_md5 = '".$pass."'"; //exécution de la requête SQL $requete = mysql_query($sql, $cnx) or die($sql."<br>".mysql_error()) ;
j'ai testé en changeant les pages et donc au premier else j'ai mis une autre page et il me charge cette page donc il prend pas le login et mot de pass je sais pas quoi faire :/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci poru t'as réponse je débute alors je cherche un peu, jvais tester ca et je prend note de tes conseils :)
ca marche nickel, mais qd je suis dnas membership.php
j'ai
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\documents and settings\nightmare\mes documents\sitelycos\sitefasung\membership.php:7) in c:\documents and settings\nightmare\mes documents\sitelycos\sitefasung\membership.php on line 27
Array
(
[login] => pom
)
Bonjour, pomdéconnexion
faut peut être que je mette la parti ou y'a le header avant le code xhtml non ?
j'ai
<?php session_start() ; if(!isset($_SESSION["login"]) || $_SESSION["login"] == "") { header("Location index.php") ; }//fin if else { echo("<pre>") ; print_r($_SESSION) ; echo("</pre>") ; echo("Bonjour, ".$_SESSION["login"]."") ; echo("<a href=\"deconnexion.php\">déconnexion</a><br/>") ; }//fin else ?>
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\documents and settings\nightmare\mes documents\sitelycos\sitefasung\membership.php:7) in c:\documents and settings\nightmare\mes documents\sitelycos\sitefasung\membership.php on line 27
Array
(
[login] => pom
)
Bonjour, pomdéconnexion
faut peut être que je mette la parti ou y'a le header avant le code xhtml non ?
je ne comprend pas je m'authentifie j'arrive sur le page en question, je me deconnecte.
puis si je tape le lien complet de la page ben il me met dessus sans etre authentifié :/
je dois mettre quelquechose dautre appart
??? help me pl z :)
puis si je tape le lien complet de la page ben il me met dessus sans etre authentifié :/
je dois mettre quelquechose dautre appart
<?php session_start() ; if(!isset($_SESSION["login"]) || $_SESSION["login"] == "") { header("Location index.php") ; }//fin if else { echo("<pre>") ; print_r($_SESSION) ; echo("</pre>") ; echo("Bonjour, ".$_SESSION["login"]."") ; echo("<a href=\"deconnexion.php\">déconnexion</a><br/>") ; }//fin else ?>
??? help me pl z :)
Merci Alain42 ca marche nickel,
j'aimerai abusé de toi en te dmeande si maintenant je veux une page pour certaine personne seulement dans les membres, je dois faire comment ?
mettre
genre une page ou il peut mettre à jours les news ect... mais pas les autres membres
Merci d'avance
j'aimerai abusé de toi en te dmeande si maintenant je veux une page pour certaine personne seulement dans les membres, je dois faire comment ?
mettre
if(!isset($_SESSION["login"]) || $_SESSION["login"] == "") { header("Location index.php") ; }//fin if elseif (!isset($_SESSION["login"])== "sonlogin" and (!isset($_SESSION["login"]) == "sonpass") { ?> <html> //la le contenu de ta page </html> <?php } ?>
genre une page ou il peut mettre à jours les news ect... mais pas les autres membres
Merci d'avance