IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

garder variable sur une boucle de 2 pages


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 50
    Par défaut garder variable sur une boucle de 2 pages
    Bonjour,

    Je souhaite calculer le score d'un joueur lors d'un quiz.

    Le quiz se compose de 2 pages (1 page pour la question, et une page pour le résultat)
    Il y a une boucle entre ses 2 pages.

    question -> resultat -> question ->resultat...

    mon objectif est de calculer le score du joueur, de le mettre à jour à chaque question et de le conserver lorsu'on change de page...

    sur ma page résultat, j'ai donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <?php 
    $score = 0;		// initialement le score est à 0
    $reponsejoueur = $_POST['reponsejoueur'];
    $reponsejuste = $_POST['reponsejuste'];
    $num_quest = $_POST['num_quest'];
     
    if ($reponsejuste == $reponsejoueur) 
    {
    $score++; 
    echo 'Bonne réponse<br /><font color="#00ff00">'.$score.'/'.$num_quest.'</font>';
    } // si la réponse est juste, +1
     
    else {
    echo 'La bonne réponse était : '.$reponsejuste.'<br /><font color="#ff0000">'.$score.'/'.$num_quest.'</font>';
    } // si la réponse est fausse, +0
    ?>	
     
    <input type="hidden" name="score" value="<?php echo $score; ?>" />

    ---------

    page question:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("QPUC");
    $requete = mysql_query("SELECT theme, question, reponse FROM qpuc ORDER BY rand() LIMIT 0,1") or die(mysql_error(select)); 
    $num_quest = 0;
    $reponsejuste = $data['reponse'];
    while($data = mysql_fetch_array($requete)) {
    echo $data['theme']; 
    $num_quest++;
    } // THEME DE LA QUESTION
    ?>
     
    <input type="hidden" name="reponsejuste" value="<?php echo $reponsejuste; ?>" />
    <input type="hidden" name="num_quest" value="<?php echo $num_quest; ?>" />
     
     
    <script type="text/javascript">
    var txt = "<?php 
    $requete = mysql_query('SELECT theme, question, reponse FROM qpuc ORDER BY rand() LIMIT 0,1') or die(mysql_error(select)); 
    while($data = mysql_fetch_array($requete)) {echo utf8_encode(html_entity_decode($data['question']));} ?>",				// texte à afficher
    </script>
     
    <input type="text" name="reponsejoueur" size="25" value="Tapez votre réponse" onfocus="this.value=''" />
     
    <?php 
    if (isset($_POST['score']))
    	{
    	$score = $_POST['score'];
    	echo 'Score : '.$score.'/'.$num_quest;
    	}
    else {echo 'Score : 0/0';}
    	?>

  2. #2
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Et ? Quelle est la question ?

    Si je comprends bien le principe tu auras sûrement besoin d'utiliser des variables de session.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 50
    Par défaut
    Bonsoir,
    ma session ne retient pas la valeur que je lui donne...
    Pouvez-vous me dire d'ou cela provient ?
    merci de votre aide


    PAGE 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <?phpsession_start();?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
     
    <head>...</head>
     
    <body>
     
    <div class="question">
    <form method="post" action="quiz_score0.php" name="monformulaire">
     
    	<div class="theme">
    		<?php
    		mysql_connect("localhost", "root", "");
    		mysql_select_db("QPUC");
    		$requete = mysql_query("SELECT theme, question, reponse FROM qpuc ORDER BY rand() LIMIT 0,1") or die(mysql_error(select));
    		while($data = mysql_fetch_array($requete)) {
    echo 'Le theme est : '.$data['theme'].'<br />La question est :'.utf8_encode(html_entity_decode($data['question'])).'et la reponse : '.$data['reponse'];}
    		$_SESSION['reponsejuste'] = $data['reponse'];
    		?>
    	</div>
     
    	<div id="reponse" class="reponse">
    		<input type="text" name="reponsejoueur" size="25" value="Tapez votre réponse" onfocus="this.value=''" />
    		<input type="submit" name="valid" value="OK" onclick="" />
    	</div>
     
    </form>
    </div>
     
    </body>
    </html>

    PAGE 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <?phpsession_start();?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
     
    <head>
    	<title>QUIZ QPUC</title> 
    	<meta http-equiv="refresh" content="5; url=http://localhost/quiz_chrono_Qcourte/quiz_version0.php" />
    	<meta http-equiv="Content-Style-Type" content="text/css" />
    	<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    	<link rel="stylesheet" type="text/css" href="css.css" />
    	<script type="text/javascript" src="quiz_score.js"></script> 
    </head>
     
    <body>
     
    	<div class="num">
    		<?php 
    		$reponsejoueur = $_POST['reponsejoueur'];
    		echo 'Votre réponse est : '.$reponsejoueur; ?>
    	</div>
     
     
    	<div class="num">
    		<?php 
    		echo 'La réponse juste est : '.$_SESSION['reponsejuste']; ?>
    	</div>
     
    </html>

  4. #4
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Salut,

    remplace ca :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?phpsession_start();?>

    par ca pour commencer

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php session_start();?>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 50
    Par défaut
    si j'ai pas mis d'espace, c'est pour une raison particuliere!

    ca m'indique ca avec un espace:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\Program Files\wamp\www\quiz_chrono_Qcourte\quiz_version0.php:1) in C:\Program Files\wamp\www\quiz_chrono_Qcourte\quiz_version0.php on line 1
     
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Program Files\wamp\www\quiz_chrono_Qcourte\quiz_version0.php:1) in C:\Program Files\wamp\www\quiz_chrono_Qcourte\quiz_version0.php on line 1

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    si j'ai pas mis d'espace, c'est pour une raison particuliere!


    Soit tu as un espace ou une ligne vide avant ton <?php soit ton fichier est ecrit en UTF8 avec BOM (alors qu'il ne faut pas de BOM)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoi de variables sur une autre page
    Par Potachon dans le forum Langage
    Réponses: 1
    Dernier message: 03/05/2009, 17h15
  2. Passer une variable sur une autre page en POST
    Par anonyme! dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/01/2009, 12h47
  3. supprimer une variable sur une page
    Par mipou dans le forum Langage
    Réponses: 4
    Dernier message: 08/01/2009, 16h09
  4. effacer des variables sur une page web
    Par mipou dans le forum Langage
    Réponses: 1
    Dernier message: 07/01/2009, 21h19
  5. Réponses: 2
    Dernier message: 28/11/2006, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo