c'est session

Répondre
Patochewie
le 17/06/2004 à 12:24
Patochewie
Est ce que quelqu'un peut me dire ce qui cloche dans ce truc?
Les données $nbquestion et $question[1]....$question[nbquestion] arrive sur cette page par un post et y arrive bien j'ai testé.

PAGE 2:
<?
if(isset($nbquestion)){
$bool=true;
for($i=1;$i<=$nbquestion;$i++) {
if(!isset($question[$i])){
$bool=false;
}
}
if ($bool){
//on demarre une session pour sauvegarder les données necessaires
session_start();
$_SESSION['nbquestion']=$nbquestion;
for($j=1;$j<=$nbquestion;$j++) {
$_SESSION['question[$j]']=$question[$j];
}
header ('location: page3.php');
exit;
}
else {
echo '<body onLoad="alert(\'Les données necessaires n\'ont pas été envoyée\')">';
// puis on le redirige vers la page d'accueil
echo '<meta http-equiv="refresh" content="0;URL=page1.php">';
exit;
}
?>


Si ça passe je vous met la premiere page qui envoie les données:
PAGE 1:
<html>
<head>
<title>page1</title>
</head>


<form name="form1" method="post" action="page1.php">
<input type="text" name="nbquestion">
<input type="submit" name="envoyer" value="Envoyer">
</form>



<?

if (isset($nbquestion)){
echo '<form name="formquestion" action="page2.php" method="post">';
for($i=1;$i<=$nbquestion;$i++){
echo '<textarea rows="3" name="question['.$i.']" cols="55">question'.$i.'</textarea>';
}
echo '<input type="hidden" name="nbquestion" value="'.$nbquestion.'">';
echo '<input type="submit" name="envoie2" value="Valider">';
echo '</form>';
}
?>
</body>
</html>


voilà l'erreur qu'il me sort:Parse error: parse error, unexpected $ in c:\program files\easyphp\www\tp\formulaireweb\actes\guide\encore\page2.php on line 26
zebden
le 17/06/2004 à 12:31
zebden
<?
if(isset($nbquestion)){
$bool=true;
for($i=1;$i<=$nbquestion;$i++) {
if(!isset($question[$i])){
$bool=false;
}
}
} // => accolade manquante !
?>



[Message modifié le 17/06/2004 à 12:32 par zebden]
zebdinou pour les intimes / Blog : http://www.zebden.fr
Patochewie
le 17/06/2004 à 14:07
Patochewie
Mais c'est bien sûr, quel naze.
bon je l'ai mise à la fin comme ça évite de faire le test du bool du nbreponse n'est pas défini.
Merci bien.
Patochewie
le 17/06/2004 à 15:07
Patochewie
ça recommence, ça recommence:
<?
session_start ();
if(! isset($nbquestion)){
echo '<body onLoad="alert(\'Les données necessaires n ont pas été envoyée à la page 3\')">';
echo '<meta http-equiv="refresh" content="0;URL=page1.php">';
exit;
}
?>

<html>
<head>
<title>page3</title>
</head>

<body>
<?
echo $_SESSION['nbquestion'];
echo $nbquestion;
echo $question[1];
echo 'youhou';
?>
</body>
</html>


pourquoi ma page 3 ne trouve-t elle pas les variables de session de la page 2?
J'ai déjà fait exactement la même chose en 10 fois plus complexes y a 2 semaines pour une autre page et ça marchais niquel, là ça veut pas. Je suis vraiment naze ou c'est la fatigue ou le php m'en veut?
Patochewie
le 17/06/2004 à 15:37
Patochewie
bon je viens de trouver j'avais une session d'ouverte déjà....
Je suis vraiment un naze.
Merci Zebden.
Patochewie
le 17/06/2004 à 16:12
Patochewie
Ben finalement je pense qu'il reste une erreur sur l'affectation en boucle que je fais pour la variable de session question qui est un tableau:
for($j=1;$j<=$nbquestion;$j++) {
$_SESSION['question[".$j."]']=$question[$j];
}
Sedilbur
le 17/06/2004 à 16:44
Sedilbur
for($j=1;$j<=$nbquestion;$j++) {
$_SESSION['question['.$j.']']=$question[$j];
}

j'suis pas sûr je n'ai pas testé...
Patochewie
le 17/06/2004 à 17:30
Patochewie
merci bien mais j'ai trouvé un truc bien plus simple et qui étonnament marche:
<?
for($j=1;$j<=$nbquestion;$j++) {
$_SESSION['question']=$question;
}
?>

Et le gentil php se débrouille très bien avec ça, enfin j'ai accès à mes données sur la page suivante avec $question[n], c'est la seule vérification que j'ai faite.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours