Formulaire de login OK en local mais pas sur le net ? (pb de sessions) - PHP - Programmation
Marsh Posté le 16-07-2010 à 09:37:09
le formulaire est-il envoyé à la bonne url? Essayes d'afficher les msg d'erreurs de la BD par ex.
Marsh Posté le 16-07-2010 à 11:33:29
ReplyMarsh Posté le 16-07-2010 à 11:34:32
rufo a écrit : le formulaire est-il envoyé à la bonne url? Essayes d'afficher les msg d'erreurs de la BD par ex. |
Vu que son formulaire se ré-affiche, je suppose que c'est la même page...
Marsh Posté le 17-07-2010 à 14:12:30
Vu les symptômes, je parierais sur un truc du genre "utilisation de $var" au lieu de "$_POST['var']".
Marsh Posté le 19-07-2010 à 09:34:21
ah oui tiens, regardes la valeur de REGISTER_GLOBALS, si elle est pas à "on" ou "off".
Marsh Posté le 19-07-2010 à 14:02:11
bonjour,
le formulaire est situé sur la partie droite (inc.right.php) de la page principale, et est remplacé par l'affichage de l'heure (inc.interface.php) si l'identification est OK.
inc.right.php
Code :
|
inc.login.form.php
Code :
|
login.php
Code :
|
J'ai vérifié est register_globals est bien à ON. En local avec wampserver, tout fonctionne comme sur des roulettes...
Marsh Posté le 19-07-2010 à 14:05:12
Sur un serveur bien configuré, register_globals devrait être à "off"
Marsh Posté le 19-07-2010 à 14:06:33
Ok merci, je viens en effet de voir que de son côté Wamp était sur off
Marsh Posté le 19-07-2010 à 14:10:32
cela dit, vu ton code, je vois aps de lien de cause à effet avec register_globals...
Marsh Posté le 19-07-2010 à 14:25:56
En effet, je viens de le passer à OFF et c'est pareil.
Je pense que c'est bien quelque chose d'autre, car quand j'essaie d'accéder au PHPMyAdmin d'OVH, login et pass corrects bien entendu, je suis déloggué ou/ai énormément de mal à me connecter, et ce quelque soit le navigateur.
De plus je viens de remarquer quelque chose avec mon site... Je rentre un login erroné, le navigateur me ramène sur la page principale sans me mettre de message d'erreur. J'attends un peu, genre 1 minute, je fais F5 pour rafraîchir la page et là le message d'erreur s'affiche.
De même si je rentre un login/pass correct, je valide, le formulaire s'affiche toujours, j'attends et je rafraîchis et je me retrouve loggué...
Il y aurait donc du lag quelque part ?
Marsh Posté le 19-07-2010 à 14:27:16
Comment ça ? Qu'est-ce ?
Marsh Posté le 19-07-2010 à 14:29:05
le display_errors a "on" et le error_reporting a "E_ALL | E_STRICT" ou "-1" ou "32767"
Marsh Posté le 19-07-2010 à 14:33:59
display_errors est à stdout et error_reporting à 6135.
je ne semble pas pouvoir modifier ces variables là... (hébergement OVH perso)
Marsh Posté le 19-07-2010 à 14:36:08
ReplyMarsh Posté le 19-07-2010 à 14:48:00
rien à signaler
Marsh Posté le 19-07-2010 à 14:50:37
eneleve ton header("Location: ".$from);
et fais un var_dump($_SESSION); a la place
Marsh Posté le 20-07-2010 à 21:27:19
Je viens de modifier le titre, en effet je viens de me rendre compte qu'il s'agit d'un problème en rapport avec $_SESSION.
Du coup j'ai refait un autre formulaire ce qu'il y a de plus simple :
test.php
Code :
|
et test2.php
Code :
|
Rien de bien sorcier, juste une variable qui est censée être placée dans $_SESSION.
En faisant fonctionner ces 2 fichiers en remplaçant header(...) par var_dump($_SESSION), on voit bien que la variable est bien récupérée et bien placée dans $_SESSION.
Mais si on laisse header() à la place, et que ça redirige vers test.php (où il y a un var_dump($_SESSION) également), la variable n'est pas sauvée en session. Par contre si on attend et qu'on rafraîchit la page, elle peut apparaître. Et en rentrant à nouveau une autre valeur dans le champ, même chose, et là en + si on rafraîchit on a une alternance entre la première valeur, rien, et la seconde valeur.
C'est assez ubuesque... j'y perds mon latin.
La démo ici : http://www.rsick.com/test.php (hébergé chez OVH), si vous voulez voir par vous-mêmes... si vous voulez que je remplace header() par var_dump() dans test2.php faites-le moi savoir, mais ça n'apporte rien de spécial, la variable est bien récupérée dans le formulaire, et APPAREMMENT bien stockée dans la session............
Marsh Posté le 21-07-2010 à 18:26:01
Et si t'affichait $val tout en haut de la page ( echo $val; ) histoire d'être sur de ce qu'il y a dans ta variable ??
Marsh Posté le 22-07-2010 à 12:41:47
je viens de tester et $val contient bien ce qu'il faut
Marsh Posté le 22-07-2010 à 14:18:05
en effet je viens de tester avec la connexion du téléphone en 3G, ça a l'air de fonctionner... je ne comprends plus grand chose !
Marsh Posté le 16-07-2010 à 02:37:13
Bonjour,
J'hésitais à poster dans la rubrique SQL mais je pense que PHP est + approprié vu que je n'ai pas d'erreurs SQL.
J'ai réalisé un petit formulaire de login, tout ce qu'il y a de plus basique (identifiant/mot de passe).
- Si le login est incorrect, un message approprié s'affiche ;
- Si le login est correct mais le mot de passe est incorrect, un autre message approprié s'affiche.
- Si tout est correct, le formulaire est remplacé par autre chose.
En local avec WAMP, tout roule impeccablement bien. Les messages d'erreur s'affichent, tout comme ce qui doit remplacer le formulaire lorsque l'identification est réussie.
En revanche, lorsque je teste sur un serveur en ligne (il s'agit d'un compte perso chez OVH), que le login ou le mot de passe soient corrects ou pas, aucun message d'erreur ne s'affiche et rien ne remplace le formulaire ! Tout se déroule comme si je n'avais strictement rien tapé dans les champs de saisie !
Je ne sais pas où chercher. Quelque chose m'aurait-il échappé ? Auriez-vous des idées ? J'ai bien essayé de rajouter un délai dans l'exécution du code PHP une fois les identifiant/mot de passe vérifié, au cas où il y ait un problème de latence mais rien n'y fait !
Merci !
Message édité par reptile17 le 20-07-2010 à 21:19:51
---------------
« It's time to kick ass and chew bubble gum. And I'm all outta gum. » --Duke Nukem