Problème d'encodage

cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012 - 11 nov. 2011 à 16:39
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012 - 11 nov. 2011 à 18:07
Bonjour,

Je ne retrouve plus le poste que j'avais poster pour mon problème donc je vais l'exposer de nouveau ici !

J'ai une BDD en UTF8_BIN, j'ai mis un champ "pseudo" en interclassement UTF_8. J'ai mis en PHP header -> UTF8 puis une meta html UTF8

Bref ma page est bien en UTF8! Dans ma bdd pour le champ pseudo j'ai : e280b0e280b0027ec3afe280931fe280991932c39b7349c5a01966

OR, quand je fais un select et que je l'affiche depuis ma page PHP j'obtiens : SELECT pseudo,id,statut FROM `nd_membres` WHERE `pseudo` '��~���2�sI�f' AND `password` 'CRTxoohWtF1xg' LIMIT 0 , 1

Ma requète ne marche évidemment pas. Pourquoi ce problème d'encodage ? Tout est en UTF8

A noter que le champ pseudo est crypté.

Merci d'avance pour votre aide!
Julien.

5 réponses

Zut13 Messages postés 50 Date d'inscription dimanche 6 mai 2007 Statut Membre Dernière intervention 14 novembre 2011
11 nov. 2011 à 16:59
le '��~���2�sI�f' il vient d'où ? quel est la procédure de récupération car d'après ton code il est déjà sous cette forme avant même la requete sql.
0
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
11 nov. 2011 à 17:14
Salut,

En fait j'appel une fonction login :

public function login($pseudo,$password) {
$pseudo = strtolower($pseudo);
$pseudo = Secure::Crypter($pseudo,$this->Cle);
$password = crypt($password,'CRYPT_SHA512');
$result Mysql::MyQuery("SELECT pseudo,id,statut FROM `nd_membres` WHERE `pseudo` '$pseudo' AND `password` = '$password' LIMIT 0 , 1");
echo "SELECT pseudo,id,statut FROM `nd_membres` WHERE `pseudo` '$pseudo' AND `password` '$password' LIMIT 0 , 1";
$res=mysql_fetch_array($result);
if (mysql_result($result,0) == 0) { return 1; }
else {
$_SESSION['pseudo']=$res['pseudo'];
$_SESSION['idpseudo']=$res['id'];
$_SESSION['statut']=$res['statut'];
}
}

A prioris il y a un problème d'encodage quand on SELECT. En fait je ne comprend pas grand chose. Merci de ton aide.
0
Zut13 Messages postés 50 Date d'inscription dimanche 6 mai 2007 Statut Membre Dernière intervention 14 novembre 2011
11 nov. 2011 à 17:45
Le problème doit venir de cette ligne je pense :
$pseudo = Secure::Crypter($pseudo,$this->Cle); 


ce qu'il faudrait vérifier c'est ce qu'il se passe dans ta fonction crypter sinon je vois pas trop d'où ça peut venir...
0
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
11 nov. 2011 à 18:05
Salut,

J'ai pris une fonction sur internet pour Crypter.

Le voici :


function Crypter($str, $key)
{
# Add PKCS7 padding.
$block = mcrypt_get_block_size('des', 'ecb');
if (($pad = $block - (strlen($str) % $block)) < $block) {
$str .= str_repeat(chr($pad), $pad);
}

return mcrypt_encrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);
}



Une idée? Merci d'avance pour ton aide!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
11 nov. 2011 à 18:07
Ce que je ne comprend pas c'est que le champ pseudo semble OK quand on regarde via PHPMYADMIN.
0