PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#26 10-06-2010 16:18:30

tanja
Membre
Inscription : 09-06-2010
Messages : 18

Re : verification couple login/mot de passe

ok !
mais alors testé sur quel navigateur ?

Hors ligne

#27 10-06-2010 16:31:34

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : verification couple login/mot de passe

Maljuna Kris a écrit :

Un truc qui m'échappe c'est la logique de ça

            if((strtolower(trim($l)) == strtolower($login))
                && (strtolower(trim($p)) == strtolower($pass))
                && ($tmp == false)){
                   echo "bienvenue";
                   $tmp=true;
                   $_SESSION['isPassValid'] = true; // initialisation de la variable de session  
                }

Pourquoi y tester ($tmp == false) ???

Dans le cas de doublons dans le fichier texte.
Même s'il n'est pas censé y en avoir. Je préfère coder proprement pour ma part et tout prévoir. ^^

Hors ligne

#28 10-06-2010 18:30:45

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : verification couple login/mot de passe

tanja a écrit :

ok !
mais alors testé sur quel navigateur ?

Quelle importance, le navigateur, en l'occurrence ?


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#29 10-06-2010 18:33:30

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : verification couple login/mot de passe

xTG a écrit :

Dans le cas de doublons dans le fichier texte.
Même s'il n'est pas censé y en avoir. Je préfère coder proprement pour ma part et tout prévoir. ^^

Et en quoi ce code détecte-t'il un doublon ?
La logique est plutôt absconse.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#30 10-06-2010 18:58:34

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : verification couple login/mot de passe

Je n'ai jamais dit qu'il en détectait...
J'ai dis "en cas de doublon", cela stipule qu'on ne fait rien quand on tombera sur un doublon. ^^'
Car si jamais un doublon se trouve dans le fichier on aurait deux fois l'affichage sans mon ajout.

C'est de la logique par abstraction.

Hors ligne

#31 10-06-2010 19:40:24

tanja
Membre
Inscription : 09-06-2010
Messages : 18

Re : verification couple login/mot de passe

l'importance du navigateur c'est qu'en l'occurence cela ne marche pas chez moi !!!

merci quand même:)

Hors ligne

#32 10-06-2010 20:03:03

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : verification couple login/mot de passe

Le navigateur n'a aucune importance en fait tanja pour ton problème.
Car le PHP est géré par le serveur Apache. Ce n'est pas un code qui s'exécute sur le navigateur comme le html.

Sinon je serai curieux de savoir si quand tu dis que seul la première ligne s'affiche tu parles du fait qu'on voit deux autres avec "=> et" (donc sans valeurs) ou bien si on ne les voient pas du tout.
Si c'est le second cas je ne vois franchement pas ce qui pourrait faire sortir de la boucle, il n'y a pas de break ou autre.

Es-tu sûr que le script s'exécute jusqu'au bout ? Un echo après l'appel de la fonction s'affiche-t-il ?
Niveau affiche d'erreur, qu'en est-il de la configuration de ton php.ini ? (error_reporting)

Hors ligne

#33 11-06-2010 08:16:52

tanja
Membre
Inscription : 09-06-2010
Messages : 18

Re : verification couple login/mot de passe

Bonjour,

c'est bien la 2nde solution malheureusement : il n'y a rien juste le 1er couple inscrit. En revanche je pense que le script s'éxécute jusqu'au bout puisqu'il m'affiche le message d'erreur "mot de passe et/ou login incorrects".
pour les messages d'erreurs : j'en ai un qui s'affiche sur toutes les pages et qui concerne le session start()
pour le error reporting voilà ma configuration : ; error_reporting
;   Default Value: E_ALL & ~E_NOTICE
;   Development Value: E_ALL | E_STRICT
;   Production Value: E_ALL & ~E_DEPRECATED

Merci

Hors ligne

#34 11-06-2010 08:53:59

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : verification couple login/mot de passe

Dans le php.ini les ; indiquent un commentaire, c'est donc la ligne error_reporting = .... qui est intéressante. ^_-
Mais si tu as une erreur d'affichée concernant le session_start() (sans doute appelé deux fois, ou bien il ne se trouve pas en première instruction de la page) tes erreurs sont bien activées.

Je n'ai malheureusement pas d'idées quant à ton problème... Essayes de le tester en dehors de tout script (car je suppose que tu testes via ton site qui contient déjà autre chose) comme l'a fait Kris.

Hors ligne

#35 11-06-2010 12:12:29

ManicoW
Cowrespondant
Lieu : Tours
Inscription : 08-05-2009
Messages : 192
Site Web

Re : verification couple login/mot de passe

Yop,

Pour le test ($tmp == false), plusieurs remarque d'optimisation :

Le mettre en debut de test if, en effet, cela permet d'éviter deux tests si $tmp = true (vu qu'il y a un &&, il ne cherche pas plus loin, normalement)

Voir optimiser un peu plus, quand on passe $tmp = true, faire un break qui va sortir de la bouche foreach, puisqu'on a plus besoin de la parcourir (vu que c'est une fonction, un return true ferait aussi bien l'affaire en fait).

Par contre le bug du nombre de lignes est assez mystique sur ce coup là faut avouer.

@+


la v2, c'est tabou, on en viendra tous a bout

Hors ligne

#36 11-06-2010 13:33:00

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : verification couple login/mot de passe

Tu veux dire si tmp est false, j'imagine, ou alors tu confonds le ET avec le OU logique.
Il n'en demeure pas moins que, si l'on sort de la boucle dès que l'on a trouvé dans le fichier un couple login mot de passe équivalent au couple saisi, je ne vois pas l'intérêt de compliquer en testant $tmp.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#37 11-06-2010 14:16:29

tanja
Membre
Inscription : 09-06-2010
Messages : 18

Re : verification couple login/mot de passe

ça y'est j'ai réussi : ça marche !!!!! merci à tous big_smile
en revanche une petite question subsiste : comment faire pour que le echo"bienvenue...." s'affiche sur la même page que le formulaire et non sur une nouvelle page ?

merci,merci

Hors ligne

#38 11-06-2010 15:42:51

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : verification couple login/mot de passe

Quel intérêt de rester sur le formulaire d'identification ?

Techniquement tu peux faire le contrôle en PHP via AJAX, par exemple, mais si Javascript est désactivé dans le navigateur ...


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#39 11-06-2010 16:14:38

tanja
Membre
Inscription : 09-06-2010
Messages : 18

Re : verification couple login/mot de passe

mon souci est que le visiteur, une fois authentifié ou non, doit alors retourner sur la page index pour continuer sa visite du site.
Enfin c'est pas grave je ne vais pas me lancer dans ajax j'ai déjà du mal avec PHP !
merci

Hors ligne

#40 11-06-2010 16:38:18

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : verification couple login/mot de passe

Pas forcement !! Il te suffit de stocker la dernière page sur lequel il était avant d'avoir à se connecter pour faire le lien vers cette page après l'identification... --> utilise les sessions wink et nul besoin de passer à ajax


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#41 11-06-2010 17:04:07

tanja
Membre
Inscription : 09-06-2010
Messages : 18

Re : verification couple login/mot de passe

ouhhhh les sessions qui à première vue semblent simple mais se révèlent difficile à l'application !
la solution est toutefois intéressante je vais essayer de plancher dessus, reste à ce sujet une petite question (après j'arrête !) : j'essaye justement d'intialiser une session[isPassValid'] à true une fois le visiteur authentifié.
Je passe sur le fait que cette session ne fonctionne pas ; ce que je ne comprends pas c'est que le navigateur me dit à chaque page :


Notice: A session had already been started - ignoring session_start() in C:\wamp\www\examen_juin_2006\addMatch.php on line 3

Pourtant il faut bien que je démarre le session_start() sur toutes les pages pour que la variable de session puisse être transmise, non ?

Ah ces débutants.....

Hors ligne

#42 11-06-2010 18:04:33

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : verification couple login/mot de passe

Information : Une session a déjà été démarrée - on ignore la commande session_start() dans le fichier C:\........ à la ligne 3

^_-

Le fait est que tu dois imbriquer des pages les unes dans les autres et que tu mets un session_start() dans tous tes fichiers.

@Kris : un OR ? Pourquoi donc, je ne comprend vraiment pas. La variable $tmp n'a besoin d'être visionné que si on détecte un identifiant correct.
Donc mon raisonnement est :
Si id ok && tmp jamais modifié
  On se log
Si id ok && tmp modifié
  On a déjà été logué
Si id pas ok && ????
  Bah on s'en fiche...

Cependant il est vrai que mettre le test du $tmp en début est mieux optimisé. Je ne l'avais pas fait car je ne savais pas que le && PHP correspondait à celui que j'avais appris en Java.
Je me coucherai moins bête ce soir. ^^

Hors ligne

#43 14-06-2010 07:38:26

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : verification couple login/mot de passe

Bonjour,

je crois qu'avant toute chose, il faudra que tu fasses le ménage dans ta session car :

1. "se révèlent difficile à l'application" : faux, c'est très simple, et surtout invisible !

2. "j'essaye d'initialiser une session[isPassValid" : tu ne peux pas essayer ! Si tu l'as défini, alors elle adopte la valeur.

Et non, ton session_start() doit être là où tu en as besoin donc :
- vérifie qu'il n'y en est pas un avant !
- au pire, mets le dans une conditionnelle (si elle existe pas.. alors on la déclare)


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

Pied de page des forums