prob lors de l'affichage de variables de session - PHP - Programmation
Marsh Posté le 15-06-2004 à 12:02:35
freed102 a écrit : voila.. au moment de la connexion au site, je fais un :
|
Tu m'anipule tes variable de session comme si c'étais des variables normal
$sqltestmail = "SELECT * FROM clients WHERE email='$mail'";
mysql_query($sqltestmail);
$result1 = @MYSQL_QUERY($sqltestmail) ;
$_SESSION['data']=mysql_fetch_array($result1);[/
$_SESSION['data']['raison_sociale1']=$_SESSION['data']['raison_sociale'];
$_SESSION['data']['nom1']=$_SESSION['data']['nom'];
$_SESSION['data']['secteur1']=$_SESSION['data']['cp'];
$_SESSION['data']['prenom1']=$_SESSION['data']['prenom'];
$_SESSION['data']['adresse1']=$_SESSION['data']['adresse'];
$_SESSION['data']['telephone1']=$_SESSION['data']['telephone']; ?>
dans tous ce charabia cela m'étonnerais pas que ton code ne fonctionne pas. Je sais que php est souple mais cela t'empeche pas d'etre un peut plus rigoureux et de ne pas faire n'importe quoi. Je sais pas si le probleme vien de cela mais je te conseil d'utiliser des variables prévu pour.
Marsh Posté le 15-06-2004 à 12:12:15
Berceker United a écrit : Tu m'anipule tes variable de session comme si c'étais des variables normal |
Bah ouai mais dans ce cas là... vous feriez comment ??? là c comme si j'avais
$data['nom1']=$data['nom'];
(dans le cas ou je veux que la valeur de 'nom1' soit la même que 'nom' ('nom1' qui pourra etre modifié par l'utilisateur si besoin est, mais qui par defaut doit etre egale à 'nom')
... là je fais un tableau avec une variable de session... c pas possible peut etre ?
Marsh Posté le 15-06-2004 à 12:35:31
voici ce qui pourrais t'arranger
Code :
|
plié emballé.
Marsh Posté le 15-06-2004 à 12:39:32
Berceker United a écrit :
|
ok merci.. Mais là si je veux rajouter des champs à mon tableau qui ne sont pas dans la base sql... je fais comment ?
Marsh Posté le 15-06-2004 à 18:35:00
freed102 a écrit : ok merci.. Mais là si je veux rajouter des champs à mon tableau qui ne sont pas dans la base sql... je fais comment ? |
Pour faire propement les choses, tu récupère les données de ta session.
$array = array();
$array = $_SESSION['data'];
... tu travails sur ton tableau (il faut savoir manipuler les données dans un tableau).
Ne concidère pas $_SESSION comme étant un tableau même si ça y ressemble !
Tu remet ton tableau dans ta session.
$_SESSION['data'] = $array;
Marsh Posté le 15-06-2004 à 18:48:44
genre si je fais :
$arrData=Array(nom1=>"$_SESSION['data']['prenom'],nom2=>$_SESSION['data']['prenom']);
$_SESSION['data']=$arrData;
... c pas un peu tordu ?
Marsh Posté le 15-06-2004 à 19:02:17
freed102 a écrit : genre si je fais : |
Non mais la je comprend pas trop ce que tu veux faire. Tu veux rajouter une valeur à ta session ou tu veux rajouter un nouveau tableau dans une variable de type tableau et que tu veux la mettre en session.
Marsh Posté le 15-06-2004 à 19:03:06
j'ai fait un essai...
Code :
|
pourtant ça marche tres bien comme ça !!.... pour moi ça me parait plus logique... mais dans mon site ça deconne... car il y a un decalage avec mes etapes...
Marsh Posté le 15-06-2004 à 19:04:54
Berceker United a écrit : Non mais la je comprend pas trop ce que tu veux faire. Tu veux rajouter une valeur à ta session ou tu veux rajouter un nouveau tableau dans une variable de type tableau et que tu veux la mettre en session. |
je veux juste rajouter des valeur à mon tableau dans ma variable de session directement.. et l'afficher...
genre dans un champ de formulaire je fais <? echo $_SESSION['data']['nom']; ?>
Marsh Posté le 15-06-2004 à 19:07:42
C'est Normal. Je crois qu'il faut que tu test ta session après rafraichissement de ta page parce que sur le coup elle n'est pas effective. Comme je l'ai dit, il ne faut pas manipuler les session comme une variable ordinaire. Meme si ça fonctionne de faire ceci $_SESSION['data']['xxx'] c'est pas terrible !...
Marsh Posté le 15-06-2004 à 19:16:44
Berceker United a écrit : C'est Normal. Je crois qu'il faut que tu test ta session après rafraichissement de ta page parce que sur le coup elle n'est pas effective. Comme je l'ai dit, il ne faut pas manipuler les session comme une variable ordinaire. Meme si ça fonctionne de faire ceci $_SESSION['data']['xxx'] c'est pas terrible !... |
ça y est !! lol j'ai capté mon erreur... en fait à la connexion... je memorise bien mon tableau... mais la page suivante fait un "session_destroy' ... alors forcement.. ça risque pas de marcher !
Marsh Posté le 15-06-2004 à 19:19:27
j'ai fait comme ça.. ça me parait plus propre :
Code :
|
Marsh Posté le 15-06-2004 à 19:24:21
freed102 a écrit : j'ai fait comme ça.. ça me parait plus propre :
|
oui mais ça sert a rien !
ce que tu fais c'est la meme chose que ceci :
Code :
|
Effectivement le destroy va te faire tourner longtemps en bourrique
Marsh Posté le 16-06-2004 à 11:04:57
berceker united a écrit : oui mais ça sert a rien !
|
Oui mais si je fait comme tu dis... ça me perturbe un peu parce que quand je fais print_r($_SESSION['data'])
il me reponds ça :
Array ( [0] => DUPJA97bca87 [id] => DUPJA97bca87 [1] => Plombs SA [raison_sociale] => Plombs SA [2] => 123456789 [siret] => 123456789 [3] => Dupond [nom] => Dupond [4] => Jacques [prenom] => Jacques [5] => Plombier [fonction] => Plombier [6] => 33, rue des beaux tuyaux [adresse] => 33, rue des beaux tuyaux [7] => 78400 [cp] => 78400 [8] => Plombcity [ville] => Plombcity [9] => 0123456790 [telephone] => 0123456790 [10] => 0123456710 [fax] => 0123456710 [11] => xxx@xxx.com [email] => xxx@xxx.com [12] => xxx [password] => xxx [13] => http://www.clonecopy.net [url] => http://www.clonecopy.net [14] => 11/02/2004 [date_reg] => 11/02/2004 [15] => 217.128.120.143 [ip] => 217.128.120.143 ) |
hors avec ma methode ça me parait plus rangé :
Array ( [id] => DUPJA97bca87 [raison_sociale] => Plombs SA [nom] => Dupond [prenom] => Jacques [fonction] => Plombier [adresse] => 33, rue des beaux tuyaux [cp] => 78400 [ville] => Plombcity [telephone] => 0123456790 [fax] => 0123456710 [email] => xxx@xxx.com [url] => http://www.clonecopy.net [date_reg] => 11/02/2004 [ip] => 217.128.120.143 [siret] => 123456789 ) |
Marsh Posté le 16-06-2004 à 12:10:58
en faite il te fais une doublon il te place l'index et le nom de la dimension
Marsh Posté le 16-06-2004 à 12:41:42
alors je comprends plus rien !
je vais resumer mon fichier...
index.php
Code :
|
etape4.php
Code :
|
pour le print_r de index.php il me reponds :
Array ( [0] => DUPJA97bca87 [id] => DUPJA97bca87 [1] => Plombs SA [raison_sociale] => Plombs SA [2] => 123456789 [siret] => 123456789 [3] => Dupond [nom] => Dupond [4] => Jacques [prenom] => Jacques [5] => Plombier [fonction] => Plombier [6] => 33, rue des beaux tuyaux [adresse] => 33, rue des beaux tuyaux [7] => 78400 [cp] => 78400 [8] => Plombcity [ville] => Plombcity [9] => 0123456790 [telephone] => 0123456790 [10] => 0123456710 [fax] => 0123456710 [11] => xxx@xxx.com [email] => xxx@xxx.com [12] => xxx [password] => xxx [13] => http://www.clonecopy.net [url] => http://www.clonecopy.net [14] => 11/02/2004 [date_reg] => 11/02/2004 [15] => 217.128.120.143 [ip] => 217.128.120.143 [raison_sociale1] => Plombs SA [nom1] => Dupond [prenom1] => Jacques [fonction1] => Plombier [adresse1] => 33, rue des beaux tuyaux [cp1] => 78400 [ville1] => Plombcity [telephone1] => 0123456790 [raison_sociale2] => Plombs SA [nom2] => Dupond [prenom2] => Jacques [fonction2] => Plombier [adresse2] => 33, rue des beaux tuyaux [cp2] => 78400 [ville2] => Plombcity [telephone2] => 0123456790 [donnees] => ok ) |
pour le second (dans l'include) il me reponds :
Array ( [0] => DUPJA97bca87 [id] => DUPJA97bca87 [1] => Plombs SA [raison_sociale] => Plombs SA [2] => 123456789 [siret] => 123456789 [3] => Dupond [nom] => Dupond [4] => Jacques [prenom] => Jacques [5] => Plombier [fonction] => Plombier [6] => 33, rue des beaux tuyaux [adresse] => 33, rue des beaux tuyaux [7] => 78400 [cp] => 78400 [8] => Plombcity [ville] => Plombcity [9] => 0123456790 [telephone] => 0123456790 [10] => 0123456710 [fax] => 0123456710 [11] => xxx@xxx.com [email] => xxx@xxx.com [12] => xxx [password] => xxx [13] => http://www.clonecopy.net [url] => http://www.clonecopy.net [14] => 11/02/2004 [date_reg] => 11/02/2004 [15] => 217.128.120.143 [ip] => 217.128.120.143 ) |
... forcement.. il y a de la perte !! mais comment est-ce possible ???
Marsh Posté le 16-06-2004 à 12:53:11
.. en fait je crois que j'ai un probleme avec les index dans les tableaux...
comment eviter les [0] [1] [2] ???
là le conflit c'est qu'il m'en mets pas partout !
Marsh Posté le 16-06-2004 à 13:21:51
il te permet de récuperer tes éléments de deux maniere soit avec l'index de ta dimension soit par le nom de la dimension. Mais ton tableau reste quand même bien formaté.
Marsh Posté le 16-06-2004 à 15:01:57
berceker united a écrit : il te permet de récuperer tes éléments de deux maniere soit avec l'index de ta dimension soit par le nom de la dimension. Mais ton tableau reste quand même bien formaté. |
now c bon j'ai trouvé mon erreur.. chaque fois que je faisais une requete SQL je mettais $data=mysql_fetch_array... forcement entre $_SESSION['data'] et $data... ça deconne !
maintenant j'en ai donc plus qu'un seul : $_SESSION['data'] ... et je peux y ajouter des elements quand je veux like this :
$_SESSION['data']['toto']="tata !";
... et un print_r($_SESSION['data']) ressemble à ça :
Array ( [id] => DUPJA97bca87 [raison_sociale] => Plombs SA [nom] => Dupond [prenom] => Jacques [fonction] => Plombier [adresse] => 33, rue des beaux tuyaux [cp] => 78400 [ville] => Plombcity [telephone] => 0123456790 [raison_sociale1] => Plombs SA [nom1] => Dupond [prenom1] => Jacques [fonction1] => Plombier [adresse1] => 33, rue des beaux tuyaux [cp1] => 78400 [ville1] => Plombcity [telephone1] => 0123456790 [raison_sociale2] => Plombs SA [nom2] => Dupond [prenom2] => Jacques [fonction2] => Plombier [adresse2] => 33, rue des beaux tuyaux [cp2] => 78400 [ville2] => Plombcity [telephone2] => 0123456790 [fax] => 0123456710 [email] => xxx@xxx.com [url] => http://www.clonecopy.net [date_reg] => 11/02/2004 [ip] => 217.128.120.143 [siret] => 123456789 [donnees] => ok |
et là tout va bien !
Marsh Posté le 16-06-2004 à 15:18:29
cool raoul
Autre point ! je sais pas ton programme total mais si tu as beaucoup d'utilisateur ayant chacun une session pense a la vider lorsqu'ils n'ont plus besoin parce que ça prendre de la place et ralenti les performances du serveur. Php ne gère pas comme java des session pour l'ensemble de utilisateur.
un utilisateur = une session = un fichier = un process
Marsh Posté le 16-06-2004 à 15:56:21
ya un bouton "deconnexion" ... qui fait un "session_destroy" .. mais bon c clair c pas suffisant !
je mettrais un "session_unset" à la fin d'un enregistrement
mais là je peux pas faire mieux après.. si un utilisateur abandonne en cours de route.. je peux pas detruire une variable de session (s'il ferme le navigateur).. ou alors avec un javascript mais là c tordu !
Marsh Posté le 16-06-2004 à 16:01:38
freed102 a écrit : ya un bouton "deconnexion" ... qui fait un "session_destroy" .. mais bon c clair c pas suffisant ! |
Il le ferra tous seul si le client ferme le navigateur.
Marsh Posté le 15-06-2004 à 11:35:25
voila.. au moment de la connexion au site, je fais un :
ensuite d'etapes en etapes j'utilise ou aliment ma variable de session $_SESSION['data']... simplement à un moment (etape 4) je fais ça :
mais ce que je comprends pas.. c qu'il faut que je reloade la page pour que mes variables apparaissent dans les champs ! et faut que je submit deux fois pour passer à la page suivante...
c quoi qui s'passe ?
Message édité par freed102 le 15-06-2004 à 11:36:23