Rechercher : dans
Par :

Accents et majuscules et PHP

Dernière réponse le 22 mar 2009 à 03:20:27 kiocubic, le 7 aoû 2008 à 20:23:46 
 Signaler ce message aux modérateurs

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
Configuration: Mac OS X
Safari 523.12.2

Meilleures réponses pour « Accents et majuscules et PHP » dans :
Supprimer les accents avec PHP Voir Pour un tas de raisons, il est parfois utile de convertir un texte accentué en un texte sans accents. Voici une fonction permettant de transformer très simplement la quasi-totalité des accents en leur équivalent non-accentués : function...
Google - Minuscules, majuscules, accents, pluriels VoirGoogle ne tient pas compte de la casse des caractères. Donc que vous utilisiez des majuscules, des minuscules ou les 2 mélangées vous obtiendrez les mêmes résultats. Google ne tient pas compte des accents, cédilles, tildes espagnols… Ainsi, une...
Sed - Mettre la première lettre de chaque mot en majuscule VoirCapitaliser la 1ère lettre de chaque mot Voici deux façons de procéder : Méthode 1 sed -r 's/(^.| .)/\U&/g' Méthode 2 sed 's/^.\| [a-z]/\U&/g' Méthode 3 sed -r 's/\
PHP - Nettoyer une chaîne de caractères VoirVoici une fonction en PHP qui peut être assez pratique, surtout quand on fait de l'URL Rewriting. Cette fonction permet de transformer les caractères de n'importe quelle chaîne de caractères en chaîne non accentuée, en enlevant les caractères...
Implantation du code Php VoirL'interprétation du code par le serveur Un script PHP est un simple fichier texte contenant des instructions écrites à l'aide de caractères ASCII 7 bits (des caractères non accentués) incluses dans un code HTML à l'aide de balises spéciales et...

1

 gryzzly, le 7 aoû 2008 à 20:45:39
  • +1

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) dites les gens ... google, ça vous dit rien ?

Répondre à gryzzly