Code qui refuse de s'incrémenter correctement...

miranda
Invité n'ayant pas de compte PHPfrance

31 mai 2011, 10:53

Salut à tous!

Voilà mon problème, j'ai ce code qui me semble juste mais il ne fait pas ce que je lui demande, à savoir de s'incrémenter de façon à montrer la question 1 puis la 2 etc à chaque fois que je clique sur la touche "Envoyer". Merci d'avance pour votre aide!

Code : Tout sélectionner

<?php session_start(); ?> <br />Le numéro de la question est : <?php if(isset($_SESSION['page'])); $_SESSION['page']++; switch($_SESSION['page']) { //question 1 case 1: echo '1 <p>différencier <select name="ScoreEC"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> essayer <select name="ScoreOR"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </p>'; break; //question 2 case 2: echo '2 <p>réceptif <select name="ScoreEC"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> logique <select name="ScoreOR"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </p>'; break; } session_destroy(); ?> <form action="question2.php" method="post"> <input type="submit" value="Envoyer" /> <br />

ViPHP
xTG
ViPHP | 7331 Messages

31 mai 2011, 11:09

Tu as un point-virgule en trop au niveau du if() sur la session.

miranda
Invité n'ayant pas de compte PHPfrance

31 mai 2011, 11:33

OK merci, mais quand je l'enlève la question ne s'affiche pas du tout et j'ai donc encore moins une incrémentation. Est-ce que le fait d'utiliser easyphp peut engendrer ça?

ViPHP
ViPHP | 2577 Messages

31 mai 2011, 11:40

Bonjour,
if(isset($_SESSION['page']))
{
    $_SESSION['page']++;
}
else
{
    $_SESSION['page'] = 1;    /* il faut initialiser $_SESSION['page'] 
}
A moins que $_SESSION['page'] soit initialisé ailleurs;

Il me semble surtout que le session_destroy(); devrait être conditionné pour ne pas être supprimer la session à chaque affichage.

miranda
Invité n'ayant pas de compte PHPfrance

31 mai 2011, 11:52

Comme ça?
 $_SESSION['page'];

if(isset($_SESSION['page']))
{
    $_SESSION['page']++;
}
else
{
    $_SESSION['page'] = 1;    /* il faut initialiser $_SESSION['page']
}

ViPHP
xTG
ViPHP | 7331 Messages

31 mai 2011, 11:56

Non, le code de Mazarini sans ajout.

Il parlait de ton session_destroy() à la fin de ton script.
Il a pour effet de supprimer la session (et donc la variable).
Ce qui fait que lorsque tu passes d'une page à une autre tu recommences à 1.

miranda
Invité n'ayant pas de compte PHPfrance

31 mai 2011, 11:59

Ah, ok d'accord merci! je vais essayer ça voir ce que ça donne...