Accents et majuscules et PHP

Résolu/Fermé
kiocubic Messages postés 1 Date d'inscription jeudi 7 août 2008 Statut Membre Dernière intervention 7 août 2008 - 7 août 2008 à 20:23
gryzzly Messages postés 4607 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 - 7 août 2008 à 20:45
Bonjour à tous et à toutes!

Donc j'ai un quiz en PHP.

Les gens doivent écrire leur réponse dans un textarea qui serait traité dans une base de données MYSQL.

Le problème est le suivant : Lorsque l'on écrit une réponse avec soit un accent ou une majuscule mal placé, eh bien cela résulte en une mauvaise réponse!
j'ai fait des recherche concernant ce problème sur le forum mais je ne sais pas comment l'inséré dans mon code pour que cela fonctionne !
question.php

<?php
session_start();
if($_SESSION['s_logged_n'] == 'true'){
include 'process.php';
?>
<?php
session_start();
include 'config.php';

if (isset($_POST['id_questionnaire']) and !isset($_SESSION['id_questionnaire']))
{
	$query = "SELECT * FROM yoxi_quest WHERE id=".$_POST['id_questionnaire'];
	$result = mysql_query($query) or die("Erreur dans le fichier: ".__FILE__." à la ligne: ".__LINE__.", erreur : ".mysql_error());
	$questionnaire = mysql_fetch_array($result, MYSQL_ASSOC);

	$_SESSION['id_questionnaire'] = $questionnaire['id'];
	$_SESSION['title_questionnaire'] = $questionnaire['quest_name'];
	$_SESSION['questions'] = array();
	$_SESSION['mark'] = 0;
	//$_SESSION['nb_questionnaire'] = $questionnaire['NbQuestions'];
}

if (isset($_SESSION['id_questionnaire']))
{
	if(sizeof($_SESSION['questions']) < 8)
	{
		$except = "";
		if (sizeof($_SESSION['questions']) > 0)
		{
			$except = "AND id NOT IN (";
			$i = 0;
			for ($i ; $i<sizeof($_SESSION['questions'])-1 ; $i++)
				$except .= $_SESSION['questions'][$i].", ";
			$except .= $_SESSION['questions'][$i].") ";
		}
		
		$query = "SELECT * FROM yoxi_survey WHERE id_quest=".$_SESSION['id_questionnaire']." ".$except."ORDER BY RAND() LIMIT 1";
		$result = mysql_query($query) or die("Erreur dans le fichier: ".__FILE__." à la ligne: ".__LINE__.", erreur : ".mysql_error());
		$question = mysql_fetch_array($result, MYSQL_ASSOC);
		
		$_SESSION['questions'][] = $question['id'];
		
		$title = "Yoxi - Questionnaires : ".$_SESSION['title_questionnaire'];
		$head = "Questionnaire : ".$_SESSION['title_questionnaire'];
		$main = "<div>Question ".sizeof($_SESSION['questions'])."/10 :<br />".$question['question']."</div>
				<textarea id='answer' cols='48' rows='4' onkeyup=\"javascript: test();\" value="echo htmlEntities($reponse);"></textarea>
				<br /><br />
				<span id='result'></span>
				<button id='reset' class='textBox' onclick=\"javascript: document.getElementById('answer').value='';\">Effacer</button>
				<button id='continue' class='textBox' disabled='disabled' onclick=\"javascript: submitAnswer('".$question['id']."');\">Soumettre</button>
				<br /><br /><br /><br />Vous avez actuellement : ".$_SESSION['mark']." sur 100";
	}
	else
	{
		$query = "SELECT * FROM scores WHERE id_quest=".$_SESSION['id_questionnaire']." AND id_user=".$_SESSION['s_id'];
		$result = mysql_query($query) or die("Erreur dans le fichier: ".__FILE__." à la ligne: ".__LINE__.", erreur : ".mysql_error());
		if (mysql_num_rows($result) == 1)
		{
			$score = mysql_fetch_array($result, MYSQL_ASSOC);
			$query = "UPDATE scores SET mark=".$_SESSION['mark']." WHERE id_score=".$score['id_score'];
		}
		else
			$query = "INSERT INTO scores VALUES ('', ".$_SESSION['id_questionnaire'].", ".$_SESSION['s_id'].", ".$_SESSION['mark'].")";
		$result = mysql_query($query) or die("Erreur dans le fichier: ".__FILE__." à la ligne: ".__LINE__.", erreur : ".mysql_error());
		
		$title = "Yoxi - Résultats : ".$_SESSION['title_questionnaire'];
		$head = "Résultat : ".$_SESSION['title_questionnaire'];
		$main = "Vous avez eu ".$_SESSION['mark']."/100,";
		if ($_SESSION['mark'] >= 80)
			$main .= " Vous avez réussi le questionnaire.";
		else
			$main .= "Vous n'avez pas réussi le questionnaire.";
		$main .= "Cliquez <a href='questions.php'>ici</a> pour continuer.";
		
		unset($_SESSION['id_questionnaire']);
		unset($_SESSION['questions']);
		unset($_SESSION['mark']);
	}
}
else
{
	$query = "SELECT * FROM yoxi_quest";
	$result = mysql_query($query) or die("Erreur dans le fichier: ".__FILE__." à la ligne: ".__LINE__.", erreur : ".mysql_error());
	if (mysql_num_rows($result) > 0)
	{
		$title = "Yoxi - Questionnaires";
		$head = "Listes des Questionnaires";
		$main = "<form id='formulary' action='questions.php' method='POST'>
				<input type='hidden' id='questionnaire' name='id_questionnaire' />
				</form>";
		while ($questionnaires = mysql_fetch_array($result, MYSQL_ASSOC))
		{
			$pass = "";
			
			$query_score = "SELECT * FROM scores WHERE id_quest=".$questionnaires['id']." AND id_user=".$_SESSION['s_id'];
			$result_score = mysql_query($query_score) or die("Erreur dans le fichier: ".__FILE__." à la ligne: ".__LINE__.", erreur : ".mysql_error());
			if (mysql_num_rows($result_score) > 0)
			{
				$score = mysql_fetch_array($result_score, MYSQL_ASSOC);
				if ($score['mark'] > 80)
					$pass = "&nbsp;&nbsp;<span style='color:green;'>réussi : ".$score['mark']."/100</span>";
				else
					$pass = "&nbsp;&nbsp;<span style='color:red;'>non réussi : ".$score['mark']."/100</span>";
			}
			
			$main .= "<p><a href='#' onclick=\"javascript: submitForm('".$questionnaires['id']."')\">".$questionnaires['quest_name']."</a>".$pass."</p>";
		}
	}
	else
	{
		$title = "Yoxi - Questionnaire non trouve";
		$head = "Questionnaire non trouve";
		$main = "Questionnaire non trouve.";
	}
}
?>

	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
	<html>
	<head>
	<title><?php echo $title; ?></title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	<script type='text/javascript' src='Js/functions.js'></script>
	<style type="text/css">
<!--
body {
	background-image: url(images/bg.jpg);
	background-repeat: repeat-x;
	margin-top: 50px;
}
-->
</style>
	<link href="untitled.css" rel="stylesheet" type="text/css">
	</head>

	
<body bgcolor="#FFFFFF" leftmargin="0" marginwidth="0">
<table width="200" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
      <tr>
        <td width="24%"><img src="images/question_03.jpg" width="115" height="64" alt=""></td>
        <td width="32%">&nbsp;</td>
        <td width="40%" bgcolor="#FFFFFF"><div id="menutext" align="right">
            <?php if ($_SESSION['s_questionnaires'] < 0)
		$nbDevoirs = "<p>Il vous reste ".$_SESSION['s_questionnaires']." devoirs.</p>";
	else
		$nbDevoirs = "Vous avez fait tous les devoirs.<br>";
		echo 'Bienvenue '.$_SESSION['s_name'].'!<br>
			  IP connect&eacute;e :  '.$_SERVER['REMOTE_ADDR'].'<br>'.$nbDevoirs ?>
        </div></td>
        <td width="4%"><img src="images/question_06.jpg" width="29" height="64" alt=""></td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td><table width="47%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="19%"><img src="images/question_08.jpg" width="259" height="41" alt=""></td>
        <td width="81%"><img src="images/question_09.jpg" width="397" height="46" alt=""></td>
      </tr>
      <tr>
        <td><img src="images/question_10.jpg" width="259" height="20" alt=""></td>
        <td><img src="images/question_11.jpg" width="397" height="20" alt=""></td>
      </tr>
      <tr>
        <td valign="top" background="images/question_10.jpg">
<div class="table">
	 <a href="etudiants.php">Retourner à l'accueil</a><br>
	<a href="logout.php">Me déconnecter</a>
</div>
</td>
        <td background="images/question_11.jpg"><div id="content"><?php echo $head; ?><br><br><?php echo $main; ?></div>
        </td>
      </tr>
      <tr>
        <td><img src="images/question_14.jpg" width="259" height="46" alt=""></td>
        <td><img src="images/question_15.jpg" width="397" height="46" alt=""></td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
	</html>
<?php
mysql_close($l);
?>
<?php
} else {
	/*echo $_SESSION['s_logged_n'].'b';
	echo $_SESSION['s_username'].'c';
	echo $_SESSION['s_name'].'d';*/
	header("Location: login.php");
}
?>


checkanswer.php
<?php
session_start();
include("../config.php");
include("../functions.php");

$query = "SELECT * FROM answers WHERE id_question=".$_POST['question'];
$result = mysql_query($query);
if (mysql_num_rows($result) > 0)
{
	$score = "false";
	while ($answer = mysql_fetch_array($result, MYSQL_ASSOC))
	{
		if (removeAccents($answer['text']) == removeAccents($_POST['answer']))
		{
			$_SESSION['mark'] += 10;
			$score = "true";
			break;
		}
	}
	echo $score;
}
else
	echo "false";

mysql_close($l);
?>


Désolé pour la longueur des codes !

Merci d'avance !

kiocubic

1 réponse

gryzzly Messages postés 4607 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 319
7 août 2008 à 20:45
Salut,

J'ai pas envie de lire ton code ...

Mais :

1) remplacer les caractères accentués par les caractères non accentués :
php : preg_replace()

2) probleme de majuscule :
fonctions de modification de casse
ou
charset CaseInsensible (ci)
1