Accents et majuscules et PHP

[Résolu/Fermé]
Signaler
Messages postés
1
Date d'inscription
jeudi 7 août 2008
Statut
Membre
Dernière intervention
7 août 2008
-
Messages postés
4607
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
-
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

Messages postés
4607
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
1 308
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci