Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/01/2012, 14h37   #1
Membre du Club
 
Inscription : juillet 2006
Messages : 150
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 150
Points : 40
Points : 40
Par défaut user avec caractère accentué

Bonjour

J'ai une identification qui rejette systématiquement en cas d'emploi de caractères accentués.
Les champs de ma base sont encodés en UTF8_general_ci, et les noms en caractères accentués apparaissent correctement dans la base via php my admin.
Les pages du site sont encodés en UTF8. Quand je fait un echo des variables celles ci sont affichées correctement avec les bons accents.
Comment faire pour que la comparaison des user et pass avec la BDD fonctionnent avec les caractères accentués?
page du formulaire
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Accueil identification base Master Films</title>
<link href="style.css" rel="stylesheet" type="text/css" />
 
</head>
<body>
 
<div class="container">
 <div class="header">
 <center><img src="images/masterfilm2.png" alt=" logo " height="60px"  id="Insert_logo" style="background: #C6D580; display:block;" /></center>
 </div>
  <div class="content">
 
    <p><center>Veuillez vous identifier.</center></p><center>
 
    <form action="verif_util.php"  method="post">
    <label>Nom<br />
        <input type="text" name="nom" id="nom" />
      </label><br /><br />
      <label> mot de passe</label><br /><input name="passe" type="password" id="pass" />
      <br /><br /><input  type="submit" value="s'identifier" />
      </form></center>
    <p><!-- end .content --></p>
    <br />
 
  </div>
  <div class="footer">
 
    </p>
    <!-- end .footer --></div>
  <!-- end .container --></div>
</body>
</html>
code pour verification
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php 	
session_start();
include("base.php");
$id= $_REQUEST[nom];
$pass=$_REQUEST[passe];
$_SESSION['typeadmin']='rien';
$_SESSION['admin']='non';
$_SESSION['test']="nom".$id."  pass".$pass;
$sqlutil= "SELECT  * FROM  utilisateurs WHERE identifiant='$id'";  
$resultat = mysql_query($sqlutil) or die(mysql_error());
while ($user =mysql_fetch_array ($resultat)){
	$nomuser=$user['identifiant'];
	$pass2=$user['pass'];
	$genre=$user['type'];
	$typeclient=$user['client'];
 
	IF(($pass2==$pass)and ($nomuser==$id)){
		$_SESSION['admin']='oui';
		$_SESSION['typeadmin']=$genre;
		$_SESSION['typeclient']= $typeclient;
 
	 }
 
}
	 ?>
    <meta http-equiv='refresh' content='0; URL=recherche-master-global.php'>
 
</body>
</html>
rvm31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 14h40   #2
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Les fonctions utf8_decode() et utf8_encode() peuvent sûrement t'aider.
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 21h27   #3
Membre du Club
 
Inscription : juillet 2006
Messages : 150
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 150
Points : 40
Points : 40
OK super ça fonctionne.
Mais je ne comprend pas pourquoi alors que toutes mes pages ont en UTF8 il faut passer par un decode.
PHP traite tout en ISO-8859-1 ?

donc si cela peut aider les autres j'ai modifié le code comme ci dessous.
Code :
1
2
3
4
5
6
<?php
include("base.php");
$id= $_REQUEST[nom];
$id=UTF8_decode($id);
$pass=$_REQUEST[passe];
$pass=UTF8_decode($pass);
rvm31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 21h56   #4
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Ce ne serait pas plutôt ta base qui serait en latin 1 ?
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 19h40   #5
Membre du Club
 
Inscription : juillet 2006
Messages : 150
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 150
Points : 40
Points : 40
Ah oui les champs étaient en UTF8 mais pas la base elle même.
J'ai enlevé les decode et cela fonctionne.
Enfin j'espère que cela fonctionne.
Dans le post précédent je disais que cela fonctionnait et quand j'ai repris aujourd'hui cel ne fonctionnait plus !?
rvm31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h15.


 
 
 
 
Partenaires

Hébergement Web