<?php ob_start(); ?> puis ton code avec des affichages, les "setcookie" là où tu veux et à la fin du fichier <?php ob_end_flush(); ?> je l'ai copié sur un de mes codes, donc c'est un principe qui marche ; l'idée, c'est que les sorties sont bufférisées et émises seulement par ob_end_flush()1.<?php
ob_start();
2.if (isset($_GET['butIEatedIt'])){
3. setcookie("prenom", '', time()-3600);
4. setcookie("nom", '', time()-3600);
5. setcookie("promo", '', time()-3600);
6.}
7.?>
8.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
9.<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
10. <head>
11. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
12. <title>Exercice 1</title>
13. </head>
<body>
14. <?php
15. var_dump($_COOKIE);
16.function my_prenom()
17.{
18. ?>
19.
20. 21. <table>
22. <form method="post" action="iMadeYouACookie.php" >
23. <tr>
24. <td>prenom</td>
25. <td>
26. <input type="text" name="prenom" value=""/>
27. </td>
28. </tr>
29. <tr>
30. <td>
31. <input type="submit" name="savePrenom" value="suivant"/>
32. </td>
33. </tr>
34. </form>
35. </table>
36. 38.<?php
39.}
40.function my_nom()
41.{
42.?>
45. <table>
46. <form method="post" action="iMadeYouACookie.php" >
47. <tr>
48. <td>nom</td>
49. <td>
50. <input type="text" name="nom" value=""/>
51. </td>
52. </tr>
53. <tr>
54. <td>
55. <input type="submit" name="saveNom" value="suivant"/>
56. </td>
57. </tr>
58. </form>
59. </table>
62.<?php
63.}
64.function my_promo()
65.{
66.?>
69. <table>
70. <form method="post" action="iMadeYouACookie.php" >
71. <tr>
72. <td>promo</td>
73. <td>
74. <input type="text" name="promo" value=""/>
75. </td>
76. </tr>
77. <tr>
78. <td>
79. <input type="submit" name="savePromo" value="suivant"/>
80. </td>
81. </tr>
82. </form>
83. </table>
84.
86.<?php
87.}
88.
89.function my_array($_COOKIE)
90.{
91.?>
92.<table>
93. <tr>
94. <td>
95. <?php
96. echo $_COOKIE['prenom'];
97. ?>
98. </td>
99. </tr>
100. <tr>
101. <td>
102. <?php
103. echo $_COOKIE['nom'];
104. ?>
105. </td>
106. </tr>
107. <tr>
108. <td>
109. <?php
110. echo $_COOKIE['promo'];
111. ?>
112. </td>
113. </tr>
114. <tr>
115. <td>
116. <a href="iMadeYouACookie.php?butIEatedIt">Recommencer</a>
117. </td>
118. </tr>
119.</table>
120.<?php
121.}
122.
123./* traitement des données */
124.if (!empty($_POST))
125.{
126. if (isset($_POST['savePrenom'])){
127. if (!empty($_POST['prenom'])){
128. setcookie("prenom", $_POST['prenom'], time()+3600);
129. my_nom();
130. }
131. }
132. elseif (isset($_POST['saveNom'])){
133.if (!empty($_POST['nom'])){
134. setcookie("nom", $_POST['nom'], time()+3600);
135. my_promo();
136. }
137. }
138. elseif (isset($_POST['savePromo'])){
139. if (!empty($_POST['promo'])){
140. setcookie("promo", $_POST['promo'], time()+3600);
141. my_array($_COOKIE);
142. }
143. }
144.}
145.else
146.
147.{
148.my_prenom();
149.}
ob_end_flush();
150.?>
</body>
</html>
c'est pour tant simple et logiqueOui, mais sachant que tout doit être en PHP (donc AJAX, ça va pas) et que tout doit être dans un seul fichier (ce qui élimine une iframe), je ne vois pas d'autre solution...
<?php
/* traitement du formulaire*/
if (isset($_POST['truc'])) {
// etc etc
}
?>
<html>
<!-- Affichage des formulaires en fonction des choix fait avant
utilisation de isset / empty pour l'affichage
->
</html>
Pas besoin de buffeur, et le problème reste le même, il renvoie avec un header sur la page avec un paramètre dans l'url, je ne vois pas comment faire autrement Code : Tout sélectionner
<?php
/* traitement du formulaire*/
if (isset($_POST['prenom'])) {
}
if (isset($_POST['nom'])){
}
if (isset($_POST['promo'])){
}
?>Code : Tout sélectionner
<?php
}
/* traitement des données */
if (!empty($_POST))
{
if (isset($_POST['savePrenom'])){
if (!empty($_POST['prenom'])){
setcookie("prenom", $_POST['prenom'], time()+3600);
$val_cookie_prenom=$_POST['prenom'];
my_nom();
}
}
elseif (isset($_POST['saveNom'])){
if (!empty($_POST['nom'])){
setcookie("nom", $_POST['nom'], time()+3600);
$val_cookie_nom=$_POST['nom'];
my_promo();
}
}
elseif (isset($_POST['savePromo'])){
if (!empty($_POST['promo'])){
setcookie("promo", $_POST['promo'], time()+3600);
$val_cookie_promo=$_POST['promo'];
my_array($_COOKIE);
}
}
}
else
{
my_prenom();
}
?>
<?php
if (isset($_GET['butIEatedIt'])){
setcookie("prenom", '', time()-3600);
setcookie("nom", '', time()-3600);
setcookie("promo", '', time()-3600);
}
/* traitement des données */
if (!empty($_POST))
{
if (isset($_POST['savePrenom'])){
if (!empty($_POST['prenom'])){
setcookie("prenom", $_POST['prenom'], time()+3600);
$val_cookie_prenom=$_POST['prenom'];
$fonc = 'my_nom';
}
}
elseif (isset($_POST['saveNom'])){
if (!empty($_POST['nom'])){
setcookie("nom", $_POST['nom'], time()+3600);
$val_cookie_nom=$_POST['nom'];
$fonc = 'my_promo';
}
}
elseif (isset($_POST['savePromo'])){
if (!empty($_POST['promo'])){
setcookie("promo", $_POST['promo'], time()+3600);
$val_cookie_promo=$_POST['promo'];
header('Location: toffu.php?step=final');
// la faut prévoir une fonction pour afficher le resultat ^^
}
}
else{
$fonc = 'my_prenom';
}
}
if (isset($_GET['step']) && $_GET['step'] == 'final') $fonc = 'my_array';
?>
<!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" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Exercice 1</title>
</head>
<body>
<?php
echo '<pre>';
var_dump($_COOKIE);
echo '</pre>';
function my_prenom()
{
?>
<table>
<form method="post" action="" >
<tr>
<td>prenom</td>
<td>
<input type="text" name="prenom" value=""/>
</td>
</tr>
<tr>
<td>
<input type="submit" name="savePrenom" value="suivant"/>
</td>
</tr>
</form>
</table>
<?php
}
function my_nom()
{
?>
<table>
<form method="post" action="" >
<tr>
<td>nom</td>
<td>
<input type="text" name="nom" value=""/>
</td>
</tr>
<tr>
<td>
<input type="submit" name="saveNom" value="suivant"/>
</td>
</tr>
</form>
</table>
<?php
}
function my_promo()
{
?>
<table>
<form method="post" action="" >
<tr>
<td>promo</td>
<td>
<input type="text" name="promo" value=""/>
</td>
</tr>
<tr>
<td>
<input type="submit" name="savePromo" value="suivant"/>
</td>
</tr>
</form>
</table>
<?php
}
function my_array()
{
?>
<table>
<tr>
<td>
<?php
echo $_COOKIE['prenom'];
?>
</td>
</tr>
<tr>
<td>
<?php
echo $_COOKIE['nom'];
?>
</td>
</tr>
<tr>
<td>
<?php
echo $_COOKIE['promo'];
?>
</td>
</tr>
<tr>
<td>
<a href="testexos2.php?butIEatedIt">Recommencer</a>
</td>
</tr>
</table>
<?php
}
if (isset ($fonc))
echo $fonc();
else
echo my_prenom();
?>
</body>
</html>
je ne sais pas comment fonctionne ton formateur mais le miens il préconise des boite de bonbon en récompense