|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
bonjour,
J'ai cherché un peu partout concernant firefox et sa gestion des sessions mais ,en vain je poste j'ai un script inscription.php dans lequel je crée 3 variables de sessions $_SESSION[truc]$_SESSION[truc1]$_SESSION[truc2] et un formulaire. UNe autre page s'occupe de l'insert dans table mysql des valeurs du form de la premiere page.Le session start() est active dans les deux pages et alors que dans IE7 tout fonctionne ,dans FIREFOX ,une des 3 variables de session n'est pas reconnue. Lorsque j'utilise l'extension IE TAB DANS FIREFOX CA MARCHE... que peut donc t-il se passer dans Firefox pour que cette variable ne passe pas ? page1 $monnumero=$_POST['rne_ecole']; $_SESSION['number']=$monnumero; echo" inscription.php , le rne est '$_SESSION[number]'<br />";/la variable s'affiche page2 pour controiler j'ai rajouté ces lignes if(isset($_SESSION['number'])) { echo"la variable de session rne est '$_SESSION[number]' "; } else { echo "la variable n'est pas définie"; } et la variable '$_SESSION[number]' est reconnue comme non définie merci bcp -- cordialement desbutes |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
desbutes wrote:
> bonjour, Bonjour, > if(isset($_SESSION['number'])) Ca, c'est bon > echo"la variable de session rne est '$_SESSION[number]' "; Mais, c'est là que ça part en sucette ![]() echo "La variable de session rne est '{$_SESSION['number']}'"; > et la variable '$_SESSION[number]' est reconnue comme non définie Normal, $_SESSION[number] fait référence à l'indice du tableau number, qui est considéré comme une constante, parceque pas entouré de quotes... $_SESSION['number'] fonctionnera bien mieux ![]() > merci bcp Derien S. |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Le 08/07/2007 20:41, Sebastiaan Lauwers répondait à desbutes :
> >> if(isset($_SESSION['number'])) > > Ca, c'est bon Oui. >> echo"la variable de session rne est '$_SESSION[number]' "; > > Mais, c'est là que ça part en sucette ![]() Non, pas du tout ! Si ce n'est peut-être l'espace avant le guillemet (mais je ne suis pas sûr que ça gêne), cette syntaxe est parfaitement correcte. La chaîne entre guillemets doubles contient : 1) la séquence "la variable de session rne est " 2) un guillemet simple "'" 3) un élément de tableau "$_SESSION[number]" 4) un guillemet simple "'" 5) une espace " ". La syntaxe utilisée en (3) est en elle-même parfaitement valide : http://www.php.net/manual/fr/languag...parsing.simple > echo "La variable de session rne est '{$_SESSION['number']}'"; Oui, cette syntaxe est correcte aussi, mais ni plus ni moins que celle sans accolades et sans guillemets supplémentaires. >> et la variable '$_SESSION[number]' est reconnue comme non définie > > Normal, $_SESSION[number] fait référence à l'indice du tableau number, > qui est considéré comme une constante, parceque pas entouré de quotes... Nenni. Les « quotes » comme tu dis sont bien présents, au début et à la fin de la chaîne (comme pour toute chaîne de caractères, d'ailleurs). > $_SESSION['number'] fonctionnera bien mieux ![]() Seulement si tu rajoutes des accolades. Sans les accolades, il ne *faut* pas rajouter de guillemets simples en plus des guillemets doubles. >> merci bcp > > Derien Désolé. |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
RE
merci de vos réponses if(isset($_SESSION['number'])) -> si la syntaxe est bonne ,et si la variable était définie ,le script m'aurait affiché au moins "La variable de session rne est" avec rien de plus car là ma syntaxe est peut être mauvaise Or ce n'est pas le cas, car il me dit qu'elle n'est pas définie. J'ai essayé les deux écritures et il me dit tjs que ma $_SESSION[]n'est pas définie Mais sinon pour récapituler ce que vous avez écrit Pour afficher une variable du type $GET_[] $POST_[] $SESSION[] dans une chaîne de caractères , on a le choix entre echo" texte "{$GET_['variable']}" fin texte "; ou echo" texte '$GET_[variable]' fin texte "; D'accord? >Je n'ai plus sous Firefox qu'a faire des champs "hidden" pour passer mes > variables mais c'est long et surtout ca me fait moins avancer dans le php et ca ne me dit pas pourquoi ca fonctionne sous IE7 ET PAS SOUS firefox Moi qui prone Firefox autour de moi.... >Olivier tu dis qu'il ne faut pas rajouter de quotes simples à l'interieur de quotes doubles ,mais dans echo" texte '$GET_[variable]' fin texte "; Il y a bien des quotes simples à l'intérieur de quotes doubles? bon en tout cas MERCI -- cordialement desbutes |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Le 08/07/2007 23:20, desbutes a écrit :
> > if(isset($_SESSION['number'])) -> si la syntaxe est bonne ,et si la > variable était définie ,le script m'aurait affiché au moins "La > variable de session rne est" avec rien de plus car là ma syntaxe est > peut être mauvaise > Or ce n'est pas le cas, car il me dit qu'elle n'est pas définie. > J'ai essayé les deux écritures et il me dit tjs que ma $_SESSION[]n'est > pas définie Je n'ai pas la réponse à ta question initiale, rappelée ici. Je réponds juste au reste. > Mais sinon pour récapituler ce que vous avez écrit > Pour afficher une variable du type $GET_[] $POST_[] $SESSION[] dans une > chaîne de caractères , on a le choix entre > echo" texte "{$GET_['variable']}" fin texte "; Non, là tu auras une erreur de syntaxe (après la première chaîne " texte " l'interpréteur devrait attendre un point-virgule ( ouun point (.) mais pas une accolade ({). > ou > echo" texte '$GET_[variable]' fin texte "; Oui, sauf que c'est $_GET et pas $GET_. Et encore une fois je séparerais l'instruction « echo » du premier guillemet par une espace. > D'accord? Modulo ce que j'ai dit plus haut. >>Je n'ai plus sous Firefox qu'a faire des champs "hidden" pour passer mes >> variables mais c'est long > et surtout ca me fait moins avancer dans le php De même que tu devrais insérer des espaces entre les instructions pour rendre ton code plus lisible, tu devrais insérer des lignes vides entre ce que tu cites et ce que tu écris pour rendre tes articles plus lisibles. > et ca ne me dit pas pourquoi ca fonctionne sous IE7 ET PAS SOUS firefox > Moi qui prone Firefox autour de moi.... Pas d'idée. >>Olivier Tu cites Sebastian, là ? Pourtant il n'a pas écrit ça. Ou alors c'est que tu veux t'adresser à moi, mais là encore cette façon de faire n'est pas très lisible. > tu dis qu'il ne faut pas rajouter de quotes simples à l'interieur de > quotes doubles , Je n'ai jamais dit ça. Et Sebastian non plus d'ailleurs. > mais dans echo" texte '$GET_[variable]' fin texte "; > Il y a bien des quotes simples à l'intérieur de quotes doubles? Oui, il y a. Et comme j'ai dit que cette syntaxe était correcte (du moment que le tableau s'appelle $GET_ et pas $_REQUEST), cela ne me choque pas. Quant à Sebastian, ce qui le choquait c'était le contraire : il voulait rajouter encore des guillemets simples et des accolades. Cordialement, -- Olivier Miakinen |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Olivier Miakinen wrote:
> Non, pas du tout ! Si ce n'est peut-être l'espace avant le guillemet > (mais je ne suis pas sûr que ça gêne), cette syntaxe est parfaitement > correcte. Ah ? > La syntaxe utilisée en (3) est en elle-même parfaitement valide : > http://www.php.net/manual/fr/languag...parsing.simple Et bha, merci de me sortir de mon ignorance... J'avoue que je n'avais jamais vu cette façon de faire, et c'est pour ça que j'en ai conclus d'une mauvaise utilisation... Surtout quand il a signalé: <cit.> et la variable '$_SESSION[number]' est reconnue comme non définie </cit.> >> echo "La variable de session rne est '{$_SESSION['number']}'"; > > Oui, cette syntaxe est correcte aussi, mais ni plus ni moins que celle > sans accolades et sans guillemets supplémentaires. J'ai toujours utilisé celle-ci, j'étais dans l'ignorance totale que le fait d'enfermer un tableau dans des simples quotes, eux mêmes dans des doubles quotes, permettait de l'afficher correctement... Je me permets cependant de dire, que de mon point de vue de neuneu invétéré, qu'utiliser la même syntaxe (e.g.: $tableau['clef'], avec guillemets simples dedans et tout et tout), et donc d'uniformiser le code peut être plus intéressant que d'avoir des différences minimes ça et là... > Nenni. Les « quotes » comme tu dis sont bien présents, au début et à la > fin de la chaîne (comme pour toute chaîne de caractères, d'ailleurs). Mouais... > Seulement si tu rajoutes des accolades. Sans les accolades, il ne *faut* > pas rajouter de guillemets simples en plus des guillemets doubles. cf ma remarque au dessus (autant "Mouais..." que celle encore au dessus) > Désolé. Y'a pas de mal. S. |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
Le 09/07/2007 08:37, Sebastiaan 'CrashandDie' Lauwers a écrit :
> >> La syntaxe utilisée en (3) est en elle-même parfaitement valide : >> http://www.php.net/manual/fr/languag...parsing.simple > > Et bha, merci de me sortir de mon ignorance... J'avoue que je n'avais > jamais vu cette façon de faire, et c'est pour ça que j'en ai conclus > d'une mauvaise utilisation... Si ça peut te rassurer, tu n'es pas le seul. Moi-même j'y ai regardé à deux fois en lisant son article, pour vérifier si oui ou non sa syntaxe était correcte. Note que j'ai regardé d'aussi près ta proposition de remplacement pour vérifier si elle était correcte, elle aussi. Les deux le sont. >>> "la variable de session rne est '$_SESSION[number]' " > > [...] j'étais dans l'ignorance totale que le > fait d'enfermer un tableau dans des simples quotes, eux mêmes dans des > doubles quotes, permettait de l'afficher correctement... Mais l'élément de tableau n'est *pas* enfermé dans des guillemets simples ! Ceux-ci font juste partie de la chaîne de caractères entre guillemets doubles, à côté de l'élément de tableau ! Voici quatre exemples pour te convaincre que chaque ' entre "" n'est qu'un MACHIN quelconque auquel il ne faut pas attribuer de signification particulière : "MACHIN" "'" "la variable de session rne est MACHIN$_SESSION[number]MACHIN " "la variable de session rne est '$_SESSION[number]' " Dans le troisième exemple, dirais-tu que c'est le fait que le tableau soit enfermé dans des MACHIN eux-mêmes dans des " qui en change la syntaxe ? > Je me permets cependant de dire, que de mon point de vue de neuneu > invétéré, qu'utiliser la même syntaxe (e.g.: $tableau['clef'], avec > guillemets simples dedans et tout et tout), et donc d'uniformiser le > code peut être plus intéressant que d'avoir des différences minimes ça > et là... C'est un point de vue défendable, je suis entièrement d'accord avec toi sur ce point. Et là encore tu n'es pas le premier à trouver cette syntaxe plus lisible. Quoi qu'il en soit c'est surtout une question de goût. |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
Olivier Miakinen wrote:
> Voici quatre exemples pour te convaincre que chaque ' entre "" n'est > qu'un MACHIN quelconque auquel il ne faut pas attribuer de signification > particulière : > "MACHIN" > "'" > "la variable de session rne est MACHIN$_SESSION[number]MACHIN " > "la variable de session rne est '$_SESSION[number]' " Ok, donc si je comprends bien, quand un $tableau est dans une chaine de caractères parsée ("", ou HEREDOC), il ne faut plus mettre de simples quotes pour limiter la nom de la clef, c'est ça ? Alors qu'est ce qui se passe si j'ai ceci: <?php define ('premier', 1); $foo = array ('premier element', 'premier' => 'premier element', 'deuxieme element', 'deuxieme' => 'deuxieme element'); echo "ceci est le 'premier' element du tableau: '$foo[premier]' <br />\n"; echo "ceci est le 'premier' element du tableau: '" . $foo[premier] . "'<br />\n"; ?> Est-ce que c'est la constante qui prend le dessus, parceque là ça devient franchement trouble, j'avoue... Je reste persuadé que le fait d'encapsuler tous les tableaux dans des accolades, et la clef d'index dans des simples ou doubles quotes, dépendant de ce dont on a besoin (clef d'index variable avec partie fixe, genre $tableau["mon$index"]), et aucun quotes du tout quand c'est une valeur numérique ou une constante, bha ça reste quand même bien plus lisible... (cela dit, celui qui fout $tableau["mon$index"] devrait prendre des cours de lisibilité, j'admets). > Dans le troisième exemple, dirais-tu que c'est le fait que le tableau > soit enfermé dans des MACHIN eux-mêmes dans des " qui en change la > syntaxe ? Bien sûr que non, c'est juste que je réfléchis pas assé parfois... :/ > C'est un point de vue défendable, je suis entièrement d'accord avec > toi sur ce point. Et là encore tu n'es pas le premier à trouver cette > syntaxe plus lisible. Quoi qu'il en soit c'est surtout une question de goût. word S. |
|
![]() |
| Outils de la discussion | |
|
|