Problème pour la création d'un site de question réponse.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème pour la création d'un site de question réponse.

Re: Problème pour la création d'un site de question réponse.

par sirakawa » 18 avr. 2013, 18:25

erreur de ma part: (pas testé)
if($anglais == $french)

Re: Problème pour la création d'un site de question réponse.

par geogeolepro60 » 18 avr. 2013, 14:59

Merci sirakawa pour ta réponse, mais quand je mais ton morceau de programme à la place du mien, je ne sais pour quoi, mais il ne rentre pas dans la condition if($anglais==$french).

Re: Problème pour la création d'un site de question réponse.

par sirakawa » 18 avr. 2013, 09:19

Remarque générale:
Utiliser mysqli ou pdo à la place de mysql.
Sur ton problème:
Chaque fois que tu cliques une réponse, tu relances ton script et donc tu recalcules une nouvelle valeur pour $nombre; et bien sûr tu as faux plus souvent que vrai.
Il faut repenser ton script:
1) test de la réponse (la réponse donnée est passée en post comme tu fais; la bonne réponse est passée en post (rinput type='hidden'...> ou en session)
$french = isset($_POST['french']) ? $_POST['french'] : "";
$anglais= isset($_POST['anglais']) ? $_POST['anglais'] : "";
if ($anglais != "")
{
 if($anglais]== $french)
  {
           echo"bien";
  }
  else
  {
           echo"pas bien";
  }
}
et maintenant ton tirage aléatoire et:
$anglais = $val[2];
<input type='hidden' value = '$anglais' name ="'anglais' />
et si ça ne passe pas le mot anglais, tu remplaces echo par print.

Problème pour la création d'un site de question réponse.

par geogeolepro60 » 17 avr. 2013, 23:11

Bonjour,
J'ai un petit souci qui est que je voudrais créer un site de question réponse pour m'aider à apprendre le vocabulaire en anglais ou tout autre langue, donc j'ai créé une BDD dans la qu'elle il y avait un champ pour l'id, un autre pour les mots en anglais et encore un autre pour les mots en français.
Donc en cela pas de problème, sauf que quand je lance mon programme je ne sais pour quoi il vérifie le mot en français que j'ai mit dans mon formulaire avec la variable aléatoire suivante alors que j'aurais voulu que se soit avec la variable actuel se qui fait qu'il n'est plus apte de me dire si il est bon ou pas.

Voila mon programme:
<html>
<?php

	if($link = mysql_connect("127.0.0.1", "root", ""))
	{
		if(mysql_select_db("anglais"))
		{	

				$nb_min = 1;
				$e=mysql_query("SELECT * FROM anglais");
				$nb_max=mysql_num_rows($e);
				$nombre = mt_rand($nb_min,$nb_max);
				$requete=mysql_query("SELECT * FROM anglais WHERE id=$nombre");
				$val = mysql_fetch_row($requete);
					
					
				echo"$val[1]";
				echo"<form action='anglais_french.php' method='post'>
				 Votre traduction : <input type='text' name='french' />
				 <input type='submit' name='OK' value='OK'>
				</form>";
				
				if(isset($_POST["OK"]))
				{					
					if($val1[2]==$_POST["french"])
					{
						echo"bien";
					}
					else
					{
						echo"pas bien";
					}
				}
				
				echo"<a href='../index.php'>Choix du language</a>";
		}
	}
	else
	{
		die("Echec de connexion au serveur de base de données!<br>");
	}
?>
</html>
Je remercie tout personne qui aura lu se poste et qui sera assez gentil pour m'aider.
(ps:Pardon pour les fautes d’orthographe)