Pb avec les session dans code php svp...
Résolu/Fermé
fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
-
27 oct. 2005 à 10:49
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 - 27 oct. 2005 à 11:34
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 - 27 oct. 2005 à 11:34
A voir également:
- Pb avec les session dans code php svp...
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
8 réponses
Misdrhaal
Messages postés
49
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
23 février 2006
16
27 oct. 2005 à 10:59
27 oct. 2005 à 10:59
test ton $_POST ['pseudo'] avec un isset, et fait un simple echo sur le résultat, voir ce qu'il te retourne.
Erdnax
Messages postés
2273
Date d'inscription
mercredi 1 octobre 2003
Statut
Contributeur
Dernière intervention
1 octobre 2007
497
27 oct. 2005 à 11:01
27 oct. 2005 à 11:01
Eyh, salut !
Dis voir, j'ai une question, tu trouves où ces scripts ? Tu les comprends ou tu recopies tel-quel ? Parce que c'est illisible en fait ! Je sais pas d'où tu les sors, mais je pense que tu devrais changer de source.
Si la source c'est toi, euh, alors, euh, ben, essayer de mieux comprendre le fonctionnement général des fonction, de php etc, car il y a des trucs un peu louches.
Par exemple j'ai un peu l'impression que tu t'embrouilles avec la définition des variables...
Et pas pitié, mais <code > et </code >, et non [code], là ça rend le script encore plus difficile d'accès :S
Une dernière petite chose, dans la toute première partie de ton code, avant presque tout, tu met $_POST['pseudo'], mais là, ça peut pas jouer, pseudo ne sera rempli qu'après soumisson du forumulaire... fais un test avant !
Enfin bon, je crois avoir fini ^^, c'est pas contre toi, mais là, c'est vraiment trop lourd à corriger...
Dis voir, j'ai une question, tu trouves où ces scripts ? Tu les comprends ou tu recopies tel-quel ? Parce que c'est illisible en fait ! Je sais pas d'où tu les sors, mais je pense que tu devrais changer de source.
Si la source c'est toi, euh, alors, euh, ben, essayer de mieux comprendre le fonctionnement général des fonction, de php etc, car il y a des trucs un peu louches.
Par exemple j'ai un peu l'impression que tu t'embrouilles avec la définition des variables...
Et pas pitié, mais <code > et </code >, et non [code], là ça rend le script encore plus difficile d'accès :S
Une dernière petite chose, dans la toute première partie de ton code, avant presque tout, tu met $_POST['pseudo'], mais là, ça peut pas jouer, pseudo ne sera rempli qu'après soumisson du forumulaire... fais un test avant !
Enfin bon, je crois avoir fini ^^, c'est pas contre toi, mais là, c'est vraiment trop lourd à corriger...
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
108
27 oct. 2005 à 11:03
27 oct. 2005 à 11:03
<HTML> <FORM METHOD="POST" action="chat1.php"> Message :<INPUT TYPE="text" name="message"> <INPUT TYPE="submit" value="Envoyer le message !"> </FORM> </html>
je ne vois pas à quel moment l'utilisateur entre son pseudo par le formulaire.
Au fait, il faut mettre le code entre les balises < code> et < /code>
fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
27 oct. 2005 à 11:07
27 oct. 2005 à 11:07
Bonjour, mais avec le $_POST[pseudo']; je peux pas parce que quand on valide le formulaire avec le pseudo et le mot de passe une page php va vérifier si le pseudo et le mot de passe sont bien correcte et si c'est juste envois vers la page qui contient le code que j'ai mi dans mon premier post dans la page de vérification, j'ai bien mi un <?session_start();?>
pour mon code y a quelque truc qui sont pas très clair comme deux mysql_close... mais sinon au niveau du code je vois pas ou tu trouves qu'il n'est pas bien...
merci
pour mon code y a quelque truc qui sont pas très clair comme deux mysql_close... mais sinon au niveau du code je vois pas ou tu trouves qu'il n'est pas bien...
merci
Erdnax
Messages postés
2273
Date d'inscription
mercredi 1 octobre 2003
Statut
Contributeur
Dernière intervention
1 octobre 2007
497
27 oct. 2005 à 11:12
27 oct. 2005 à 11:12
Je pense que ce genre de truc, par exemple :
C'est pas des crimes, mais les rafistolages, c'est bof.
Et bon, lorsque l'indentation manque, ça aide pas, et c'est peut-être le principal soucis ;)
Donc < code> devrait déjà arranger pas mal de choses. ;)
Bref. Pour ton histoire de pseudo, la page qui vérifie que le pseudo et le pass sont correct, est-ce qu'il enregistre le pseudo dans la session ? C'est quoi le fonctionnement global ?
$query = "SELECT naissance, sexe, ville FROM compte"; $query .= " WHERE pseudo='$pseudo'";
C'est pas des crimes, mais les rafistolages, c'est bof.
Et bon, lorsque l'indentation manque, ça aide pas, et c'est peut-être le principal soucis ;)
Donc < code> devrait déjà arranger pas mal de choses. ;)
Bref. Pour ton histoire de pseudo, la page qui vérifie que le pseudo et le pass sont correct, est-ce qu'il enregistre le pseudo dans la session ? C'est quoi le fonctionnement global ?
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
108
>
Erdnax
Messages postés
2273
Date d'inscription
mercredi 1 octobre 2003
Statut
Contributeur
Dernière intervention
1 octobre 2007
27 oct. 2005 à 11:22
27 oct. 2005 à 11:22
$query = "SELECT naissance, sexe, ville FROM compte"; $query .= " WHERE pseudo='$pseudo'";
Là, je ne suis pas d'accord, il vaut mieux séparer les étapes de la query pour une meilleur lisibilité.
Quand tu sélectionnes 50 champs sur 3 tables avec 10 conditions, ça devient illisible sur une seule ligne.
Erdnax
Messages postés
2273
Date d'inscription
mercredi 1 octobre 2003
Statut
Contributeur
Dernière intervention
1 octobre 2007
497
>
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
27 oct. 2005 à 11:26
27 oct. 2005 à 11:26
Lol, chacun son avis, c'est vrai que pour une longue requête, je séparerais aussi, mais j'aime bien le code clair et compact, alors lorsque c'est possible, je fais tout en une ligne.
Enfin bon, chaque développeur pense différemment, ce que je conseillait n'était que mon avis, et je ne suis pas contre les autres méthodes ;)
@+
Enfin bon, chaque développeur pense différemment, ce que je conseillait n'était que mon avis, et je ne suis pas contre les autres méthodes ;)
@+
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
108
>
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
27 oct. 2005 à 11:31
27 oct. 2005 à 11:31
Ouais c'est vrai que celle-là est courte et qu'elle tient sur une ligne.
Mais il me semble que c'est moi qui lui ai filé ça :-DDD
Mais il me semble que c'est moi qui lui ai filé ça :-DDD
Erdnax
Messages postés
2273
Date d'inscription
mercredi 1 octobre 2003
Statut
Contributeur
Dernière intervention
1 octobre 2007
497
>
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
27 oct. 2005 à 11:34
27 oct. 2005 à 11:34
Et ben bravo ! lol
Bon, je tombe aussi parfois dans des extrêmes, du style :
Alors c'est vrai que je ne suis pas forcément une référence...
Bon, je tombe aussi parfois dans des extrêmes, du style :
$truc = mysql_fetch_array(mysql_query("REQUETE"));
Alors c'est vrai que je ne suis pas forcément une référence...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Misdrhaal
Messages postés
49
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
23 février 2006
16
27 oct. 2005 à 11:08
27 oct. 2005 à 11:08
le $_POST[pseudo] vient d'une autre page donc il est initialisé s'il fonctionne (d'où effectivement la necessité du test avec isset).
Sinon pour la lisibilité du code, oui il faudrait que tu nettoies un peu tout ca :
Deja je te conseille de faire un fichier de connexion à ton SGBD que tu appelleras avec un include en début de fichier (apres session start pour plus de sécurité)
D'autre part je vois deux connexion au meme SGBD et à la meme base, une seule suffit (dans le fichier de connexion dont je parle) ensuite le seul truc surlequel tu pourras effectivement jouer, c'est la connexion à une base précise(mysql_select_db).
Pas besoin de relancer une connexion à chaque requete, juste à chaque page.
ce qui donnerait :
session_start();
include "connexion.inc";
if(isset($_POST['pseudo'])
{
echo $_POST['pseudo'] /* verifier visuellement qu'il y a une valeur a supprimer dans la version finale */
session['pseudo']=$_POST['pseudo']
...}
else
{...}
et dans ton fichier connexion.inc tu mets tes parametres de connexion à la base de données et le mysql_db_select si tu ne change pas de base pour tes requètes.
Sinon pour la lisibilité du code, oui il faudrait que tu nettoies un peu tout ca :
Deja je te conseille de faire un fichier de connexion à ton SGBD que tu appelleras avec un include en début de fichier (apres session start pour plus de sécurité)
D'autre part je vois deux connexion au meme SGBD et à la meme base, une seule suffit (dans le fichier de connexion dont je parle) ensuite le seul truc surlequel tu pourras effectivement jouer, c'est la connexion à une base précise(mysql_select_db).
Pas besoin de relancer une connexion à chaque requete, juste à chaque page.
ce qui donnerait :
session_start();
include "connexion.inc";
if(isset($_POST['pseudo'])
{
echo $_POST['pseudo'] /* verifier visuellement qu'il y a une valeur a supprimer dans la version finale */
session['pseudo']=$_POST['pseudo']
...}
else
{...}
et dans ton fichier connexion.inc tu mets tes parametres de connexion à la base de données et le mysql_db_select si tu ne change pas de base pour tes requètes.
fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
27 oct. 2005 à 11:17
27 oct. 2005 à 11:17
re, c'est bon j'ai trouver mon erreur tout seul finalement; c'était en fait tout en haut du code le $_SESSION=$_POST[pseudo']; en fait le $_POST était vide puisque le formulaire est deux pages avant; pour l'histoire des $query certains me disent que c'est mieu de séparer les étapes des requetes d'autre me disent de faire la requete tout en un... bon merci encore !
quand on me dit que je suis étourdi c'est pas pour defaux !
quand on me dit que je suis étourdi c'est pas pour defaux !
Misdrhaal
Messages postés
49
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
23 février 2006
16
27 oct. 2005 à 11:22
27 oct. 2005 à 11:22
C'est ce qu'on te demandait de vérifier^^ mais bravoi d'avoir trouvé tout seul,
un conseil vraiment que ce soit avec des GEt ou des POST, fais toujours un isset() sur le post ou le get avant de l'utiliser ^^(et pour la requete tout dépend de ce que tu veux faire,
si ta requete change selon les cas fornis par tes méthodes post et get, il vaut mieux la faire en plusieurs fois et concaténer la chaine finale (requete dynamique)
si c'est une requete où seules les valeurs dans le where changent, mieux vaut la faire en entier dans une chaine sauf si bien sur elle devient trop longue^^
voila
un conseil vraiment que ce soit avec des GEt ou des POST, fais toujours un isset() sur le post ou le get avant de l'utiliser ^^(et pour la requete tout dépend de ce que tu veux faire,
si ta requete change selon les cas fornis par tes méthodes post et get, il vaut mieux la faire en plusieurs fois et concaténer la chaine finale (requete dynamique)
si c'est une requete où seules les valeurs dans le where changent, mieux vaut la faire en entier dans une chaine sauf si bien sur elle devient trop longue^^
voila
fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
27 oct. 2005 à 11:28
27 oct. 2005 à 11:28
re, ok mais je ferai du nétoyage dans mon script il est un peu tordu mais il fonctionne quand même !
merci encore !
merci encore !