balatus
Messages postés2Date d'inscriptiondimanche 30 mars 2008StatutMembreDernière intervention24 septembre 2011 24 sept. 2011 à 15:35
Moi chez mois sa me dis que les info sont pas bonne... en gros le formulaire ne fonctionne pas correctement
aventurier19
Messages postés102Date d'inscriptionmercredi 14 novembre 2007StatutMembreDernière intervention23 juillet 2013 22 févr. 2011 à 22:29
janhsh
je te remercierai de ne pas te limoter à regarder la partie de code que tu vois avant de critiquer car c'est uniquement l'index.
Si tu souhaite laisser un "bon" commentaire et une note qui je pense correspondrait mieux au travail
merci de télécharger tout le code.
Cordialement,
moi
cs_janhsh
Messages postés31Date d'inscriptionlundi 6 novembre 2000StatutMembreDernière intervention24 janvier 2015 21 févr. 2011 à 00:55
Pas mal d'erreur
1.
$verif_query=sprintf("SELECT * FROM utilisateurs WHERE login='$login' AND pass='$pass' LIMIT 1"); // requête sur la base administrateurs
Je ne vois pas l'utilité de sprintf ici, surtout sans "spécificateur de conversion" dans la chaine.
2. "cryptage par SHA1" mais aucun SHA1 n'est utilisé dans le code.
3.<html><head>
où les le doctype !! on ne sait pas si c'est du HTML4, du XHTML, ou autre (à ce niveau la il y a aussi des erreur.
aventurier19
Messages postés102Date d'inscriptionmercredi 14 novembre 2007StatutMembreDernière intervention23 juillet 2013 14 févr. 2011 à 09:55
Pourquoi me parle tu de session_unregister, j'utilise session_unset ?!?
Je ne sais toujours pas pourquoi session_unset ne détruit pas correctement les variables!
BREF
Si je récapitule, pour la fonction unset (désolé je débute):
- je dois créer à la ligne 38 un tableau associatif du genre $user_data=array($_SESSION['privilege'], $_SESSION['nom'], $_SESSION['prenom'], $_SESSION['login'], $_SESSION['pass']);
- pour fermer une session, j'utilise unset($_SESSION['user_data']); à la place de mon session_unset(); (qui n'est pas encore obsolète)
Merci pour tes conseils et ta patience. Désolé si je suis insistant mais je comprends les choses lentement faute de temps!
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 12 févr. 2011 à 00:37
Où ai-je écrit qu'il ne fallait pas détruire les variables ?
Au contraire ! Il le faut.
MAIS
il faut le faire correctement, c'est à dire en utilisant la fonction unset() et non session_unregister() (pardon, erreur de ma part en recopiant le lien, je voulais dire : http://fr.php.net/session_unregister) La fonction session_unregister() est obsolète depuis PHP5.3 ce qui signifie qu'elle est amenée à disparaitre.
aventurier19
Messages postés102Date d'inscriptionmercredi 14 novembre 2007StatutMembreDernière intervention23 juillet 2013 11 févr. 2011 à 16:53
Je ne comprends pas ; j'ai 2 questions :
1 - pourquoi il ne faut pas détruire toutes les variables de la session courante, une fois deconnecté ça ne sertt à rien de garder les variables.
2 - en quoi unset($_SESSION['user_data']); va être différent de session_unset(); ?
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 10 févr. 2011 à 00:12
"mais j'utilise session_unset() pour détruire toutes les variables de la session courante."
Justement : il ne faut pas.
"unset($privilege, $nom, $prenom, $login, $pass); /* c'est lourd, non? */"
Non.
Sinon, il est possible de stocker en session des tableaux associatifs. Ça donnerait :
unset($_SESSION['user_data']); // C'est léger, non ?
cs_arta
Messages postés98Date d'inscriptiondimanche 22 janvier 2006StatutMembreDernière intervention24 juillet 2013 7 févr. 2011 à 07:15
Bonjour aventurier19
Bon ben on va attendre les deux fonctions pour télécharger ;)
aventurier19
Messages postés102Date d'inscriptionmercredi 14 novembre 2007StatutMembreDernière intervention23 juillet 2013 3 févr. 2011 à 12:43
RE Bonjour à tous
bon j'ai mis mon script à jour plus tôt que prévu, je le reposterai plus tard 2 fonctions supplementaires (anti-doublon et modification d'utilisateur sans avoir besoin de les supprimer)
aventurier19
Messages postés102Date d'inscriptionmercredi 14 novembre 2007StatutMembreDernière intervention23 juillet 2013 3 févr. 2011 à 10:54
Merci pour ta remarque NEIGEDHIVER mais j'utilise session_unset() pour détruire toutes les variables de la session courante.
unset() permet de détruire les variables de son choix (on peut toutes les détruiremais il aurait fallut faire unset($privilege, $nom, $prenom, $login, $pass); /* c'est lourd, non? */
COD57 j'ai pris bonne note de ton info je le mettrait bientôt car j'essai d'emplêcher la création de doublon en login avec une requête du type
SELECT * FROM $tablename_dbprotect WHERE (`login` LIKE '$login')
De plus le nom de la table sera personalisable plus facilemùent grâce à une variable $tablename_dbprotect dans le fichier de connexion
PS: n'hésitez pas à noter et dire ce que vous en pensez !
@+
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 3 févr. 2011 à 09:28
Vite fait :
Note:
Si vous utilisez $_SESSION (ou $HTTP_SESSION_VARS pour PHP 4.0.6 ou plus ancien), utilisez unset() pour détruire une variable de session, i.e. unset($_SESSION['nomvariable']);.
cod57
Messages postés1653Date d'inscriptiondimanche 7 septembre 2008StatutMembreDernière intervention11 septembre 201319 1 févr. 2011 à 16:51
bonjour pas de quoi
ligne 42 je ferais ça, ajoute le exit
et un petit espace apres Location:
sur tout les header() à vrai dire
header("Location: index.php?erreur=delog");exit;
ça finit tout les processus en cours
SELECT * FROM utilisateurs WHERE login='$login' AND pass='$pass' LIMITI 1
comme : 'uniquement le premier trouvé et c'est tout'
a++
aventurier19
Messages postés102Date d'inscriptionmercredi 14 novembre 2007StatutMembreDernière intervention23 juillet 2013 1 févr. 2011 à 15:48
Merci COD57, c'est corrigé!
cod57
Messages postés1653Date d'inscriptiondimanche 7 septembre 2008StatutMembreDernière intervention11 septembre 201319 31 janv. 2011 à 21:59
bonsoir
ton script est bien réalisé ... il y a tout sauf ?
il faudrait utiliser mysql_real_escape_string()
en effet si tu mets '\' dans login et pass vide surprise ...
je suis pas hacker mais c'est un conseil si tu veux pas te retrouver avec ta base remplie de caractères cyrilliques
ici
if (isset($_POST['login'])){ // execution apres envoi du formulaire
$login = mysql_real_escape_string($_POST['login']); // mise en variable du nom d'utilisateur
$pass = sha1($_POST['pass']); // mise en variable du mot de passe crypté
24 sept. 2011 à 15:35
22 févr. 2011 à 22:29
je te remercierai de ne pas te limoter à regarder la partie de code que tu vois avant de critiquer car c'est uniquement l'index.
Si tu souhaite laisser un "bon" commentaire et une note qui je pense correspondrait mieux au travail
merci de télécharger tout le code.
Cordialement,
moi
21 févr. 2011 à 00:55
1.
$verif_query=sprintf("SELECT * FROM utilisateurs WHERE login='$login' AND pass='$pass' LIMIT 1"); // requête sur la base administrateurs
Je ne vois pas l'utilité de sprintf ici, surtout sans "spécificateur de conversion" dans la chaine.
2. "cryptage par SHA1" mais aucun SHA1 n'est utilisé dans le code.
3.<html><head>
où les le doctype !! on ne sait pas si c'est du HTML4, du XHTML, ou autre (à ce niveau la il y a aussi des erreur.
14 févr. 2011 à 09:55
Je ne sais toujours pas pourquoi session_unset ne détruit pas correctement les variables!
BREF
Si je récapitule, pour la fonction unset (désolé je débute):
- je dois créer à la ligne 38 un tableau associatif du genre $user_data=array($_SESSION['privilege'], $_SESSION['nom'], $_SESSION['prenom'], $_SESSION['login'], $_SESSION['pass']);
- pour fermer une session, j'utilise unset($_SESSION['user_data']); à la place de mon session_unset(); (qui n'est pas encore obsolète)
Merci pour tes conseils et ta patience. Désolé si je suis insistant mais je comprends les choses lentement faute de temps!
12 févr. 2011 à 00:37
Au contraire ! Il le faut.
MAIS
il faut le faire correctement, c'est à dire en utilisant la fonction unset() et non session_unregister() (pardon, erreur de ma part en recopiant le lien, je voulais dire : http://fr.php.net/session_unregister)
La fonction session_unregister() est obsolète depuis PHP5.3 ce qui signifie qu'elle est amenée à disparaitre.
11 févr. 2011 à 16:53
1 - pourquoi il ne faut pas détruire toutes les variables de la session courante, une fois deconnecté ça ne sertt à rien de garder les variables.
2 - en quoi unset($_SESSION['user_data']); va être différent de session_unset(); ?
10 févr. 2011 à 00:12
Justement : il ne faut pas.
"unset($privilege, $nom, $prenom, $login, $pass); /* c'est lourd, non? */"
Non.
Sinon, il est possible de stocker en session des tableaux associatifs. Ça donnerait :
unset($_SESSION['user_data']); // C'est léger, non ?
7 févr. 2011 à 07:15
Bon ben on va attendre les deux fonctions pour télécharger ;)
3 févr. 2011 à 12:43
bon j'ai mis mon script à jour plus tôt que prévu, je le reposterai plus tard 2 fonctions supplementaires (anti-doublon et modification d'utilisateur sans avoir besoin de les supprimer)
3 févr. 2011 à 10:54
unset() permet de détruire les variables de son choix (on peut toutes les détruiremais il aurait fallut faire unset($privilege, $nom, $prenom, $login, $pass); /* c'est lourd, non? */
COD57 j'ai pris bonne note de ton info je le mettrait bientôt car j'essai d'emplêcher la création de doublon en login avec une requête du type
SELECT * FROM $tablename_dbprotect WHERE (`login` LIKE '$login')
De plus le nom de la table sera personalisable plus facilemùent grâce à une variable $tablename_dbprotect dans le fichier de connexion
PS: n'hésitez pas à noter et dire ce que vous en pensez !
@+
3 févr. 2011 à 09:28
Note:
Si vous utilisez $_SESSION (ou $HTTP_SESSION_VARS pour PHP 4.0.6 ou plus ancien), utilisez unset() pour détruire une variable de session, i.e. unset($_SESSION['nomvariable']);.
Source : http://es.php.net/session_unset
1 févr. 2011 à 16:51
ligne 42 je ferais ça, ajoute le exit
et un petit espace apres Location:
sur tout les header() à vrai dire
header("Location: index.php?erreur=delog");exit;
ça finit tout les processus en cours
SELECT * FROM utilisateurs WHERE login='$login' AND pass='$pass' LIMITI 1
comme : 'uniquement le premier trouvé et c'est tout'
a++
1 févr. 2011 à 15:48
31 janv. 2011 à 21:59
ton script est bien réalisé ... il y a tout sauf ?
il faudrait utiliser mysql_real_escape_string()
en effet si tu mets '\' dans login et pass vide surprise ...
je suis pas hacker mais c'est un conseil si tu veux pas te retrouver avec ta base remplie de caractères cyrilliques
ici
if (isset($_POST['login'])){ // execution apres envoi du formulaire
$login = mysql_real_escape_string($_POST['login']); // mise en variable du nom d'utilisateur
$pass = sha1($_POST['pass']); // mise en variable du mot de passe crypté
a++