Problème de cache ?
DocN
-
DocN -
DocN -
Bonjour,
Voila, je commence a venir souvent quand même, mais je vais representer mon projet, je dois faire un envoi de mail en combinant php et html, tout ça en 3 pages, l'une qui prend les variables (le formulaire html) qui passe a la seconde page qui vérifie tous les champs, réajustent quelques problèmes, et affiche un récapitulatif, permettant a l'utilisateur de faire précedent (c'est la le problème, mais j'y reviens.), et enfin la troisième page, qui envoie le mail après validation.
Lorsque l'utilisateur se trompe dans la syntaxe d'un champ, ou oublie d'en remplir un, la deuxième page le bloque, et lui demande de faire "précedent", le bouton marche, mais l'utilisateur se retrouve devant un formulaire vide. Exit les informations qu'il avait saisi. Je suis pratiquemment sûr que c'est un problème lié au cache du serveur php, mais mes variables sont récupérés en post pour la seconde page, puis je les attribue en session directement après (Pas très utile, vous me direz.).
Est ce que c'est vraiment le cache du serveur attribué a la session utilisateur ? Auquel cas, mes variables doivent être directement en session, ou bien je peux garder ma méthode Post ?
Merci d'avance.
Voila, je commence a venir souvent quand même, mais je vais representer mon projet, je dois faire un envoi de mail en combinant php et html, tout ça en 3 pages, l'une qui prend les variables (le formulaire html) qui passe a la seconde page qui vérifie tous les champs, réajustent quelques problèmes, et affiche un récapitulatif, permettant a l'utilisateur de faire précedent (c'est la le problème, mais j'y reviens.), et enfin la troisième page, qui envoie le mail après validation.
Lorsque l'utilisateur se trompe dans la syntaxe d'un champ, ou oublie d'en remplir un, la deuxième page le bloque, et lui demande de faire "précedent", le bouton marche, mais l'utilisateur se retrouve devant un formulaire vide. Exit les informations qu'il avait saisi. Je suis pratiquemment sûr que c'est un problème lié au cache du serveur php, mais mes variables sont récupérés en post pour la seconde page, puis je les attribue en session directement après (Pas très utile, vous me direz.).
Est ce que c'est vraiment le cache du serveur attribué a la session utilisateur ? Auquel cas, mes variables doivent être directement en session, ou bien je peux garder ma méthode Post ?
Merci d'avance.
A voir également:
- Problème de cache ?
- Copie caché - Guide
- Numéro caché - Guide
- Jeux google caché - Guide
- Message caché whatsapp - Guide
- C'est quoi le cache d'une application - Guide
29 réponses
Mon code n'est pas un copié, il manque un echo au début du input, et je le sais. Mais je crois en fait savoir ce qu'il me manque, du moins, l'emplacement :
if (isset($_SESSION['options'])) { ICI {echo '<input type="checkbox" name="options[]" value="option1" checked = "checked"/> texte <br/>'; } }
else { echo '<input type="checkbox" name="options[]" value="option1"/> option1 <br/>'
Il me manquerait un if avec une certaine condition qui puisse lire le tableau, et voir la valeur "option1" pour dire "ok, c'est check"... si quelqu'un a une idée de la syntaxe...
if (isset($_SESSION['options'])) { ICI {echo '<input type="checkbox" name="options[]" value="option1" checked = "checked"/> texte <br/>'; } }
else { echo '<input type="checkbox" name="options[]" value="option1"/> option1 <br/>'
Il me manquerait un if avec une certaine condition qui puisse lire le tableau, et voir la valeur "option1" pour dire "ok, c'est check"... si quelqu'un a une idée de la syntaxe...
Qu'est ce que ton tableau contient ? (var_dump)
pour parcourir un tableau tu peux faire un foreach et après pour controler les valeurs tu peux utiliser un switch
pour parcourir un tableau tu peux faire un foreach et après pour controler les valeurs tu peux utiliser un switch
Pour le var_dump le voici : array(5) { [0]=> string(7) "option1" [1]=> string(7) "option2" [2]=> string(7) "option3" [3]=> string(7) "option4" [4]=> string(7) "Option5" }
un switch ? Je connais pas cette commande, je vais voir ça tout de suite.
un switch ? Je connais pas cette commande, je vais voir ça tout de suite.
c'est en gros un if multiple, tout indiqué pour contrôler des valeurs de tableau
tu peux faire un truc du genre :
tu peux faire un truc du genre :
$option1 = "";
$option2 = "";
$option3 = "";
$option4 = "";
$option5 = "";
foreach ($_SESSION['options'] as $val) {
switch ($val) {
case "option1" :
$option1 = " checked";
break;
case "option2" :
$option2 = " checked";
break;
case "option3" :
$option3 = " checked";
break;
case "option4" :
$option4 = " checked";
break;
case "option5" :
$option5 = " checked";
break;
}
}
echo "<input type=\"checkbox\" name=\"options[]\" value=\"option1\" $option1/>";
etc...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai fait a quelque chose près ce que tu as marqué, vraiment, a quelque chose près, j'ai préfère faire ça pour chaque input, c'était pas plus rapide, mais ça me paraissait plus lisible pour moi.
ça donne ça du coup :
if (isset($_SESSION['options'])) { foreach ($_SESSION['options'] as $i) { switch ($i) { case "option1 " :
echo '<input type="checkbox" name="options[]" value="option1" checked = "checked"/> option1<br/>'; break; } } } else {
echo '<input type="checkbox" name="options[]" value ="option1"/>option1<br/>' ; }
Il reprend bien les cases cochées, même trop bien, puisque il efface celles qui ne le sont pas, faute a un manque d'echo qui afficherait l'input même si la variable $_SESSION['options'] est set.
Le problème, c'est que je sais pas vraiment ou mettre ce code, le switch ne dispose pas de else, et dans mon if, je ne sais pas comment l'écrire au niveau de la syntaxe...
ça donne ça du coup :
if (isset($_SESSION['options'])) { foreach ($_SESSION['options'] as $i) { switch ($i) { case "option1 " :
echo '<input type="checkbox" name="options[]" value="option1" checked = "checked"/> option1<br/>'; break; } } } else {
echo '<input type="checkbox" name="options[]" value ="option1"/>option1<br/>' ; }
Il reprend bien les cases cochées, même trop bien, puisque il efface celles qui ne le sont pas, faute a un manque d'echo qui afficherait l'input même si la variable $_SESSION['options'] est set.
Le problème, c'est que je sais pas vraiment ou mettre ce code, le switch ne dispose pas de else, et dans mon if, je ne sais pas comment l'écrire au niveau de la syntaxe...
le mieux, c'est que tu utilises le code que je t'ai donné tel quel. Le switch est un peu comme un if multiple, mais tu l'auras remarqué, il n'a pas vraiment de else.
Le but ici du code est de faire une variable pour chaque checkbox dans laquelle on rajoute le bout de ligne permettant de dire si elle sera cochée ou non.
Donc je commence par passer sur toutes ces variables à vide, puis je parcours mon tableau et le switch remplit les variables s'il le faut.
Ensuite je fais un echo par input avec la variable complétée ou non...
C'est mieux de faire un seul echo par input, comme ça si tu veux changer un truc dans ton input, pas besoin de modifier à plusieurs endroits.
C'est une logique qui t'évitera des soucis.
Le but ici du code est de faire une variable pour chaque checkbox dans laquelle on rajoute le bout de ligne permettant de dire si elle sera cochée ou non.
Donc je commence par passer sur toutes ces variables à vide, puis je parcours mon tableau et le switch remplit les variables s'il le faut.
Ensuite je fais un echo par input avec la variable complétée ou non...
C'est mieux de faire un seul echo par input, comme ça si tu veux changer un truc dans ton input, pas besoin de modifier à plusieurs endroits.
C'est une logique qui t'évitera des soucis.
A la suite d'un problème de connexion internet, j'ai pas pu te remercier encore une fois pour ton aide. Donc, merci encore, tout ça marche maintenant, je suis devant un autre problème, qui ne vient pas de moi je pense, je posterai un autre sujet pour ça.
Désolé pour le retard, et l'impolitesse, merci de ton aide.
Désolé pour le retard, et l'impolitesse, merci de ton aide.