Erreur conditions variables php

Résolu/Fermé
Lavozano Messages postés 11 Date d'inscription dimanche 25 décembre 2016 Statut Membre Dernière intervention 29 décembre 2016 - Modifié par Lavozano le 25/12/2016 à 19:52
Lavozano Messages postés 11 Date d'inscription dimanche 25 décembre 2016 Statut Membre Dernière intervention 29 décembre 2016 - 29 déc. 2016 à 15:41
Bonsoir,

Je suis en train de créer une sorte de quizz. J'ai trouvé comment rendre aléatoire mes questions. Cependant je souhaite 3 choses :

- lorsque la bonne réponse est renseignée dans le formulaire par rapport à la question générée aléatoirement, je veux pouvoir dire "bonne réponse" (donc c'est un echo "bonne réponse";)

- si echo "bonne réponse" alors tu additionnes 1 point dans une div (elle commence par 0 puisqu'au début il n'y a ni question ni réponse)

- puis la question s'efface dès qu'on clique sur valider dans le formulaire meme si la réponse est fausse ou inexistante;

(le tout en boucle, par exemple, pour 10 questions).

Pourriez vous m'aider svp ?

Cela fait des heures que j'essaie et je n'y arrive pas. Merci, c'est gentil.

1 réponse

yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
25 déc. 2016 à 21:20
Tu demandes de l'aide pour une point précis, ou bien tu cherches quelqu’un qui va faire l'exercice à ta place?
0
Lavozano Messages postés 11 Date d'inscription dimanche 25 décembre 2016 Statut Membre Dernière intervention 29 décembre 2016
Modifié par Lavozano le 25/12/2016 à 21:34
Je demande de l'aide pour un point précis : comment faire pour créer une condition qui prend en compte la variable qu'affiche l'echo (de façon aléatoire) et en même la variable qui dépend de ce qui est renseigner dans le formulaire.

Explications :

<?php

$numero = rand(1, 4);
$liste = array('quel âge as-tu ?', 'Aimes-tu aller au ciné ?', 'Est-ce que ça va ?', 'Où es-tu?');
$ques = $liste[$numero];
echo $ques;
?>

L' echo va m'afficher la question de façon aléatoire.

Et je veux répondre à cette question dans un formulaire :

<form name="mdplsdlet" id="acceslsdlet" action="" method="post">
<p>
<input type="text" placeholder="Entrez votre réponse" size="20" maxlength="50" name="mot_de_passe" required/>
<span class="texte">Afficher</span>
<input type="submit" value="Valider" />
</p>
</form>

En dessous, j'aimerais que si la réponse à la question (quel age as-tu?) est 30 et que je tape 30 dans le formulaire, alors s'affiche en dessous "bonne réponse" sinon "mauvaise réponse".

C'est tout, après je vais continuer à chercher.
Merci si tu peux me donner un coup de main là dessus yg_be , ce serait cool de ta part.
Je rame depuis des heures là dessus.
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
25 déc. 2016 à 21:40
Dans ton formulaire, tu spécifies en "action" quelle page sera appelée pour traiter la réponse au formulaire. Dans le code php de cette page, tu pourras vérifier si c'est la bonne réponse.
Tu as de l'expérience en php? Sinon, je te conseille de commencer par des exercices plus faciles. Tu suis un cours de php?
0
Lavozano Messages postés 11 Date d'inscription dimanche 25 décembre 2016 Statut Membre Dernière intervention 29 décembre 2016 > yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024
25 déc. 2016 à 22:11
Merci yg_be pour ta réponse. Oui, je suis un cours de php.
Mais concernant ton explication, j'aimerais que le tout se fasse sur la meme page.
Pour ce faire, je sais qu'il faut ne rien mettre dans "action" du formulaire :
(<form name="mdplsdlet" id="acceslsdlet" action="" method="post">
<p>
<input type="text" placeholder="Entrez votre réponse" size="20" maxlength="50" name="mot_de_passe" required/>
<span class="texte">Afficher</span>
<input type="submit" value="Valider" />
</p>
</form>)

D'après mes recherches il faudrait une fonction à deux paramètres comme la suivante :
<?php
function familyName($fname, $year) {
echo "$fname Refsnes. Born in $year <br>";
}

familyName("Hege", "1975");
familyName("Stale", "1978");
familyName("Kai Jim", "1983");
?>

La question est Hege, et la réponse 1975.

Si lorsque Hege s'affiche aléatoirement, je tape 1975 dans le formulaire, j'aimerais avoir un "bonne réponse" retour.

Ex :
<div align="center">
Question : En quelle année est née Hege ?
</div>

Je tape 1975 dans le formulaire, je valide et en-dessous, s'affiche un "bonne réponse".

Puis, une nouvelle question est posée, et ainsi de suite 10 fois.

A la fin, chaque bonne réponse, j'obtiens 1 point et la somme s'affiche dans mon footer.

C'est possible à réaliser mais je ne trouve toujours pas.

Quelqu'un peut-il m'expliquer svp ?

Merci
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
26 déc. 2016 à 11:20
Je te déconseille de faire le tout sur la même page.
Cependant, que ce soit la même page ou pas, la page va être rappelée à nouveau au retour du formulaire. Est-ce que tu fais ton code php comme si le code allait continuer à s'exécuter au retour du formulaire?
C'est le premier exercice de ton cours de php? Tu as commencé par le début du cours?
0
Lavozano Messages postés 11 Date d'inscription dimanche 25 décembre 2016 Statut Membre Dernière intervention 29 décembre 2016 > yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024
26 déc. 2016 à 11:39
Merci yg_be, effectivement le code continue à être effectif après validation. En effet, je débute mais le problème concernant le cas présent n'est toujours pas résolu. J'essaie de me focaliser à sa résolution car il implique déjà beaucoup de questions :

- Comment faire pour que les questions posées ne soient pas les mêmes ?
- Comment faire pour en poser 10 en tout ?
- Comment faire pour attribuer 1 point à chaque bonne réponse et d'en afficher le total dans une div (ex: le footer) ?

Je me documente et il semblerait que le modulo puisse servir pour gérer les restes liés à l'application d'une fonction; concernant le fait de ne poser que 10 questions, cela peut être gérer lors de l'application du random (ex :
$random = range(1,6);
shuffle($random);
echo $random[0];
echo "<br>";
echo $random[1];
echo "<br>";
echo $random[2];)

Sauf que dans le cas ci-dessus, tous les tirages (qui correspondent dans mon cas à des questions) s'affichent simultanément. Or j'aimerais qu'un seul chiffre soit tiré puis selon la réponse que je donne à ce tirage, j'obtienne 1 point; et ainsi de suite 10 fois.

La contrainte que je pose est que le formulaire se redirige vers la page de départ parce que j'ai voulu ce script pour plusieurs questions (une trentaine)....

Si tu penses être en mesure de m'aider alors tant mieux, c'est sympa de ta part.

Merci.
0