Prob identification php
whiny
Messages postés
20
Statut
Membre
-
whiny Messages postés 20 Statut Membre -
whiny Messages postés 20 Statut Membre -
Bonjour,
Voila j'ai un petit prob d'identification de user j'ai d'abordt fait un enregistrement dans une table avec login pass et quelque info jusque la ca amrche puis qd je suis sur index poru me loger je tape le mot de pass et le login je clique sur identifier et ca me fait rien
Voici le code du login
je demande bien dans ma balise form d'utilisé verif.php que voici
Je lui dit bien que si il est différent du vide alors il peut cherche le login et pass dans la base de donnée et si ca correspont il doit me mettre sur membership.php si pas sur index.php alors soit il n'arrive plus à lire le pass_md5 et il me rennvoi sur index soit ben je sais pas :) si quelqu'un voit quelquechose qu'il nhésite pas àfaire signe je cherche de mon coté :)
D'avance merci :)
Voila j'ai un petit prob d'identification de user j'ai d'abordt fait un enregistrement dans une table avec login pass et quelque info jusque la ca amrche puis qd je suis sur index poru me loger je tape le mot de pass et le login je clique sur identifier et ca me fait rien
Voici le code du login
<form method="post" action="verif.php"> <p> <label for="nom">Pseudo : </label> <input type="text" name="login"> <label for="motdepasse">Password : </label> <input type="password" name="pass"> </p> <p> <input type="submit" value="S'identifier"><br/> <a href="inscrire.php">Inscription</a> </p> </form>
je demande bien dans ma balise form d'utilisé verif.php que voici
<?php
if($_POST["login"] != "" && $_POST["pass"] != "")
{
$login = $_POST["login"] ;
$pass = md5($_POST["pass"]) ;
//connexion au serveur
$cnx = mysql_connect("localhost","root","xxxx7777","dbfasung");
//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()) ;
//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"] = $login ;
header("Location: membership.php") ;
}//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
?>
Je lui dit bien que si il est différent du vide alors il peut cherche le login et pass dans la base de donnée et si ca correspont il doit me mettre sur membership.php si pas sur index.php alors soit il n'arrive plus à lire le pass_md5 et il me rennvoi sur index soit ben je sais pas :) si quelqu'un voit quelquechose qu'il nhésite pas àfaire signe je cherche de mon coté :)
D'avance merci :)
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