Page 1 sur 1

erreur pour récupérer une variable de session

Posté : 11 juil. 2005, 14:12
par mussara
bonjour

j'ai du mal... beaucoup de mal!!!!

j'essaie http://lezartistes.org/test/choixlangue.php de récupérer et d'afficher une variable transmise par un POST et j'ai le message d'erreur suivant:

Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in /home/httpd/vhosts/lezartistes.org/httpdocs/test/php/langue1.php on line 5

le code lancé (choixlangue.php):

Code : Tout sélectionner

<html> <head> <title>test</title> </head> <body> <form method="post" action="php/langue1.php"> <p> <label> <input type="radio" name="radio1" value="fra" checked>fran&ccedil;ais</label> <br> <label><input type="radio" name="radio1" value="ang">anglais</label> <br> <label><input type="radio" name="radio1" value="esp">espagnol</label> <br> </p> <table border="0" width="400" align="left"> <tr> <td colspan="2"> <input type="submit" name="submit" value="langue"> </td> </tr> </table> </form> </body> </html>
le fichier langue1.php:
<?php 
 session_start();
 extract($_POST);
// $_SESSION['langue'] = $data['langue'];
 echo 'langue : '$_SESSION['langue']'';
?>
qui peut m'aider à résoudre mon problème de syntaxe...?

merci beaucoup

Posté : 11 juil. 2005, 14:14
par ouckileou
echo 'langue : '$_SESSION['langue']''; 
les concaténations chaines/variables se font avec un point
et les guillemets de fin sont inutiles
echo 'langue : '.$_SESSION['langue']; 

Posté : 11 juil. 2005, 14:25
par mussara
merci....

mais maintenant j'ai:
Notice: Undefined index: langue in c:\jp\home\site_web\new_haisoft_lezartistes\php\langue1.php on line 5

je pensais qu'avec le

Code : Tout sélectionner

session_start(); extract($_POST);
il me récupérerai la variable???

Posté : 11 juil. 2005, 14:27
par ouckileou
qu'est-ce que c'est que ce extract($_POST)

tu manipules bien des variables de sessions là non ? alors pourquoi POST ?
et puis pourquoi extract...?

dégages ce extract, tu n'en as pas besoin

avec session_start(), tu dois pouvoir récupérer une variable comme ceci :
$variable = $_SESSION['variable'];
à condition qu'elle soit initialisée avant, ce qui ne semble pas être le cas ici

Posté : 11 juil. 2005, 14:29
par zeus
C'est pas parce que tu utilise extract qu'il va mettre les variables dans des variables de session

extract($_POST) remplace $_POST["var"] par $var

essaye cette ligne
echo 'langue : '.$langue;

Posté : 11 juil. 2005, 14:32
par mussara
oui... j'ai l'impression que je mélange un peu tout... je débute...

je cherche à récupérer une variable que j'ai déclarée dans une méthode POST
et ensuite de l'afficher
mais je souhaite que cette variable soit globale, donc qu'elle suive tout l'arborescence du site pour pouvoir la réutiliser...

donc je me disais qu'il fallait que travaille avec les sessions...

Posté : 11 juil. 2005, 14:37
par zeus
Pour t'expliquer, ta variable est dans le tableau $_POST car elle provient d'un formulaire

Si tu veux qu'elle soit utilisable à plusieurs endroits, il faut que tu l'enregistres dans une variable de session. Pour ce, il faut faire
session_start();

$var = $_POST["var"];
$_SESSION["var"] = $var;

echo $var;
le extract n'est qu'un confort qui permet de ne pas trainer $_POST ou $_SESSION mais je le trouve dangereux car immagine que tu fasse
extract($_SESSION);
extract($_POST);
$var correspond à $_POST["var"] ou $_SESSION["var"] ?

Posté : 11 juil. 2005, 14:59
par mussara
merci beaucoup pour les explications claires...

sincèrement