|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre confirmé
![]() Inscription : mars 2003 Messages : 674 ![]() |
Bonjour,
J'ai un petit problème d'affichage. Mon site contient 4 Div: 1 div pour le haut, 1 div gauche, 1 div droit et 1 div conteneur Le loggin se fait à l'intérieur de la div conteneur. Quand la personne valide, si le loggin est ok je mets un message dans la div conteneur comme quoi la personne est connectée. Le message qui s'affiche dans la Div gauche est : "Bonjour XXX" "Déconnexion" Mon soucis c'est que ce message dans la Div gauche n'apparaît que lorsque je clique sur un autre lien du site au lieu de s'afficher en même temps que celui de la Div conteneur. Comment je peux faire pour qu'il s'affiche quand on valide le loggin? la page où se trouve le formulaire de loggin Code :
Code :
Merci d'avance |
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 706 ![]() |
Salut
A mon avis, et sauf erreur, le problème viendrait dans la chronologie, le déroulement des traitements, du code en somme. En faite, et dans le déroulement, le bloc de gauche étant effectué avant celui du centre (formulaire du login), du coup, à ce moment là on ne sait pas encore que l'identification est faite, donc les variables de sessions pas encore initialisées. Ces variables le seront qu'au moment où le script du conteneur central seront exécutées. Si c'est réellement ce problème, le conseil que je te donnerais, c'est de vraiment séparer les traitements et la couche présentation (interface). Dans les traitements (le plus gros morceau), c'est : Vérifications des données (GET,POST, ...), mise à jour des données (Bdd, fichiers, session, etc ...), récupérations des données (Bdd, session, xml, text, etc ...), etc, etc ... Pour la partie interface, le HTML, ce serait à faire en tout dernier, mais vraiment en dernier, et ça commence par le DOCTYPE, balise <html> etc ... En résumer, ce n'est que lorsqu'on aura obtenu tous les éléments nécessaires à la création de l'interface qu'on s'occupera de celle ci. En procédant ainsi, tu pourras faire bien plus que prévu, et surtout ne plus rencontrer ces problèmes de déroulement (ou presque). Le seul inconvénient, c'est que ça consomme un peu plus de mémoire, car ceci demande souvent à stocker les éléments au préalable, mais ça reste néanmoins très minime comparé aux avantages. En tout cas, je remarque qu'actuellement tous les traitements sont effectués à l'endroit même où le code HTML doit être généré. Mais avec Php, on peu faire bien mieux que ça, faut juste concevoir les choses un peu différemment.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : mars 2003 Messages : 674 ![]() |
Bonjour,
Merci RunCodePhp pour ces précisions. Si j'ai bien compris j'ai 3 solutions : 1) je mets dans la div gauche le formulaire du loggin avec sa validation et son message "bonjour xx" et "déconnexion" 2) sur ma page index je modifie l'ordre d'affichage donc de traitement des div en mettant div haut, div conteneur, div gauche et div droit 3) je mets le message dans la div droite. Je vais essayer la 3ème solution qui est la plus simple et je reviens. Merci encore |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 706 ![]() |
Il ne me semble pas avoir évoqué 3 solutions, mais 1 seule
Tout est dans le déroulement du script Php, de concevoir les choses un peu différemment, et ça se résume à séparer les traitement pure (à faire en 1er) et la couche présentation qui est la partie Html (à faire en tout dernier). Pour exemple, ça pourrait ce faire ainsi (index.php, la page d'accueil) : Code :
Il faut juste prévoir le coup, comme déclarer/initialiser les données au début afin d'éviter des erreurs (genre variables/tableaux inexistants au niveau de la partie HTML). En tout cas, et pour exemple, il ne faut pas perdre de vu que toutes les données comme $_GET, $_POST, $_COOKIE sont disponibles dès la 1er ligne de code de la page. On a donc tout intérêt à les exploiter au plus tôt. Bref, tout est une question d'organisation, et en adoptant ne serait-ce que ce principe qui reste simple, je t'assure que tu y gagneras beaucoup plus que tu ne le pense.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Inscription : mars 2003 Messages : 674 ![]() |
Merci RunCodePhp pour ta patience passée et à venir
J'ai compris le principe, seulement le formulaire de loggin se trouve sur une page log.php et non sur la page index. Je ne vois donc pas comment faire sans passer par javascript (ce que je n'ai tellement envie de faire) ou par l'url mais dans ce cas comment récurépérer les valeurs des post "mail" et "pass" sans qu'elles soient en clair. La div centrale sert à afficher les différentes pages appelées |
|
|
00
|
|
|
#6 | ||||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 706 ![]() |
Citation:
Le nom de la personne une fois identifiée se trouvera dans la session, donc comme le but des sessions c'est de conserver des données tout au long de la navigation, et bien si le texte (bonjours Mr/Mme XXX) ce trouve uniquement dans le index, et bien ça sera affiché si la personne revient à cette page. Vois tu ? Citation:
Pour ma part pour JS, et dans l'absolu on en n'a pas du tout besoin pour faire une identification, Php seul peu très bien suffire. Pour ce qui est que que les données soient en clair, faut pas faire de confusions. Que ce soit en GET ou POST coté formulaire, les données transiteront toujours en clair, à part mettre du SSL. Le faire en JS, et bien on dira ce qu'on voudra, c'est un pis allé car JS c'est coté client donc forcément visible (en tout cas pour un pirate ça le sera). On veut que les données soient cryptées, et bien c'est du SSL qu'il faut. La seule différence, c'est qu'en GET les données seront affichées dans la barre d'adresses (mais aussi stockées dans l'historique du navigateur), alors qu'en POST ça ne le sera pas (et pas d'historiques aussi). Mais encore une fois, les données transiteront en claire sur le Net, sur le réseau. Pour une identification, le faire en POST s'impose à mon sens. Si le formulaire ce trouve dans log.php, et bien reprend le même principe que j'ai mis précédemment, il n'y pas grand chose qui change à mon avis. Par contre, et en admettant qu'au bout de cette identification on souhaite rediriger le visiteur vers une autre page, genre la page d'accueil, et bien pour faire ça il faut faire un truc du genre : (fonction header()) Code :
En quelque sorte on redirige vers une autre page (même si le terme n'est vraiment exacte). Ensuite, au niveau de l'index.php, partie ou le nom doit s'afficher, une simple vérif sur l'existence de $_SESSION['nom'] doit suffire, ce qui est déjà fait d'ailleurs. En bref, je ne vois pas vraiment ce qui te pose problème.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||||
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() Inscription : mars 2003 Messages : 674 ![]() |
J'avais mis le test isset du mail et du mot du mot de pass dans la page index mais je n'avais rien.
Je vais donc reprendre tout ça... Merci encore |
|
|
00
|
|
|
#8 |
|
Membre confirmé
![]() Inscription : mars 2003 Messages : 674 ![]() |
Bonjour,
Pour le moment tout marche comme je veux!! ![]() Grand merci RunCodePhp car c'est la 1ère fois qu'on me donne ces conseils et comme je fais ça en autodidacte, je n'avais pas vu ça dans les bouquins. Sauf si j'ai mal regardé dans les tutos, ces conseils méritent d'y figurer. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com