Partage

Transfert nombreuses variables entre plusieurs pages.

Sujet résolu
Le 24 juillet 2008 à 23:00:19

Bonsoir, j'ai commencé cette après-midi cette page web, BadTest.
Mais je n'arrive pas à envoyer ne serais_ce que le pseudo du visiteur sur une autre page.
Ensuite, je voudrai donner un point pour chaque "oui" et donner le résultat sur une autre page apres avoir cliqué sur "résultat". J'aimerai obtenir quelque chose comme "Bravo [pseudo] tu as obtenu [résultat] points !" Mais je m'emmêle totalement les pattes la... :(

J'ai déjà parcouru le forum mais je n'arrive pourtant pas à résoudre mon problème.

Merci d'avance.
<!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>BadTest</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />	  
<style type="text/css">
<!--
.Style1 {color: #41bd40}
-->
</style>
</head>
 
 
 <div id="tete">
   <!-- Ici on mettra la bannière -->
  </div>
 
 
 
<div id="menu">
   <!-- Ici on mettra le menu -->

<h1 align="center"><br/>Bienvenue sur le BadTest</h1>

<p class="intro">Repond à ces question le plus sincerement possible.</p> 
<!--<p class="intro">Quel est nom/pseudo ? <input type="text" name="pseudo" />  -->
<form action="deuxieme_page.php" method="post">
<p class="intro"><label for="pseudo">Quel est nom/pseudo ?</label> <input type="text" name="pseudo" id="pseudo" /><br/><br/></p>
  <!-- Variables -->
<?php
$num_question = 1;
$resultat = 0;
?>


  <!-- Questions -->
  <form method="post" action="traitement.php">
   <label for="reponse1"><strong>Question <?php echo "$num_question" ?>:</strong> As tu deja fum&eacute; ?</label>
   <select name="reponse1" id="reponse1">
     <option value="0">Non</option>
     <option value="1">Oui</option>
   </select>
 </form>

 <?php
$num_question = $num_question + 1;
?>
<form method="post" action="traitement.php">
   <label for="reponse2"><strong>Question <?php echo "$num_question" ?>:</strong> As tu deja été bouré (dit "joyeux") ?</label>
   <select name="reponse2" id="reponse2">
     <option value="0">Non</option>
     <option value="1">Oui</option>
   </select>
 </form>
 <?php
$num_question = $num_question + 1;
?>

[... il y a surement un moyen plus rapide et plus claire mais je ne suis qu'un débutant... ]

 <?php
$resultat = $reponse1 + $reponse2 + $reponse3 + $reponse4 + $reponse5 + $reponse6 + $reponse7 + $reponse8 + $reponse9 +$reponse10 + $reponse11 + $reponse12 + $reponse13 + $reponse14 + $reponse15 + $reponse16 + $reponse17 + $reponse18 + $reponse19 + $reponse20 + $reponse21 + $reponse22 + $reponse23 + $reponse24 + $reponse25 + $reponse26 + $reponse27 + $reponse28 + $reponse29 + $reponse30 + $reponse31 + $reponse32 + $reponse33 + $reponse34 + $reponse35 + $reponse36 + $reponse37 + $reponse38 + $reponse39 + $reponse40 + $reponse41 + $reponse42 + $reponse43 + $reponse44 + $reponse45 + $reponse46 + $reponse47 + $reponse48 + $reponse49 + $reponse50;
?>

	

<p align="center"><input type="image" src="result.png"/></p>
   
</div>
<div id="pied">
</div>
    <!-- Rappel : c'est ici que l'on écrit le contenu de notre page web -->
</body>
</html>


/* CSS Document */
.intro
	 {
	 text-align:center
	 }

body
{
   width: 760px;
   margin: auto; /* Pour centrer notre page */
   margin-top: 20px; /* Pour éviter de coller avec le haut de la fenêtre du navigateur. Essayez d'enlever pour voir ! */
   margin-bottom: 20px;    /* Idem pour le bas du navigateur */
   background-color:#41bd40; /* Une petite image de fond pour éviter d'avoir un vieux fond blanc :p */
}

#tete
{
	width: 650px;
	height: 250px;
	background-repeat: no-repeat;
	margin-bottom: 10px;
	background-image: url(Banniere%20copie.png);

}

#menu
{
	width: 650px;
	height:1500px;
	margin-bottom: 0px;
	background-repeat:no-repeat;
	text-indent: 60px;
	background-image: url(02%20copie2.png);	 
	  

}
	
	
	
	
	

#pied
{
width: 650px;
height: 100px;
background-repeat:no-repeat;
}




C'est quand même beaucoup plus facile en C++ :-°
Publicité
Le 24 juillet 2008 à 23:00:19
Le 24 juillet 2008 à 23:02:37

Salut.
Je te conseille de te documenter sur les Sessions qui sont le moyen le plus efficace de transmettre des variables entre de nombreuses pages PHP.

EDIT : D'ailleurs M@teo en parle dans son cours
Le 24 juillet 2008 à 23:09:47

Merci beaucoup pour ta rapiditée.
Mais je n'arrive pas a appliquer le cour de Mathéo a mon cas.
Car les exemples ne sont pas des variables "récupéré" mais décidées d'avance:
$_SESSION['prenom'] = 'Jean';
$_SESSION['nom'] = 'Dupont';
$_SESSION['age'] = 24;


Moi, personnellement j'aimerai récupéré le pseudo que le visiteur aura écris dans l'espace texte en haut. Et je ne suis pas encore très à l'aise avec le php.
:(
Le 24 juillet 2008 à 23:12:52

je n'ai pas lu ton code, mais tu utilises des formulaires, donc si tu tappes :
<input type="hidden" name="ma_variable" value="valeur_de_ma_mariable"/>
ton prob est régél ! ;)
maintenant soit tu fais passer toutes tes variables ou alors tu augmentes à chaque fois le score si besoin est !
Le 24 juillet 2008 à 23:16:30

Si t'as besoin des variables sur une seule page, ça ne sers à rien d'utiliser les sessions

<form method="post" action="validation.php">

<label for="pseudo">Votre pseudo</label>
<input type="text" name="pseudo" id="pseudo" />

<!-- ton questionnaire ici... -->

<input type="submit" value="Valider!" />
</form>


<?php

// On récupère le pseudo..
$pseudo = mysql_real_escape_string(htmlentities($_POST['pseudo']));

?>


$_POST['pseudo'] récupère la valeur que le visiteur a rentré dans le input ayant comme name "pseudo"
Et tu peux bien-entendu faire $_SESSION['pseudo'] = $pseudo; après pour garder la variable en mémoire.
Le 24 juillet 2008 à 23:22:36

Salut,

Kaismat a raison et c'est assez simple.
Maintenant si les valeurs entrées par le visiteur doivent passer de page en page tu peux utiliser les sessions.

Exemple :

<?php
$_SESSION['reponse1'] = ($_POST['reponse1']);
?>


Et n'oublies pas de mettre le session_start(); au début de ta page.

Bonne soirée

.cwx
Le 24 juillet 2008 à 23:33:58

HEu.... o_O

Voila ce que j'ai fait:
<form method="post" action="resultat.php">

<p align="center"><label for="pseudo">Votre pseudo</label>
<input type="text" name="pseudo" id="pseudo" /></p>


Puis:

<input type="submit" value="Valider!" />
</form>


Après le questionnaire.

Es ce que c'est normal que rien ne ce passe quand je clique sur valider ou resultat ? :-°




Le 24 juillet 2008 à 23:36:24

Faudrait mettre ton code PHP stp.
Le 24 juillet 2008 à 23:41:04

J'ai réussi à faire passer le "pseudo" sur la page d'après. :p


Mais le problème que j'ai c'est que lorsque que l'utilisateur clique sur "valider" il est envoyer sur la page des résultats sans faire le test o_O

Il y a il un moyen pour placer le bouton valider en bas de la page et lui faire envoyer aussi toute les autres variables du questionnaires ?

Edit: Tout marche :p

Merci à vous.
Morale: On as les idées plus claires le lendemain
;)

Il me reste encore a finalisé mais le principal est fonctionnel. Passez faire un tour. :-°

Transfert nombreuses variables entre plusieurs pages.

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown