Page 1 sur 1

Caractére special - insertion en base

Posté : 31 juil. 2017, 14:44
par scorleon
Bonjur,

Depuis quelques jours je me casse la tête pour les caractère spéciaux et l'injection dans la base.
Au début c'était le type de ma table en latin1 qui causait problème, alors j'ai convertis ma table à utf8. Mais j'ai résolut qu'une partie de problème.

Voila mon problème :

Dans ma page :

Code : Tout sélectionner

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"> // <tr> <td class="tableau-eleveurs" align="right"> <label for="annee_canari"><b>Prénom : </b></label> </td> <td class="tableau-eleveurs" align="left"> <input type="text" name="prenom_eleveur"> </td> </tr> // Injection en base $Prenom_eleveur = trim(html_entity_decode($_POST["prenom_eleveur"]) ); $sqlup = "UPDATE $nom_table_e SET Prenom_e = '$Prenom_eleveur' WHERE Id = '$Id'" ;
Affichage de la requete : UPDATE eleveur SET Prenom= 'José' WHERE Id = '2';
Résultat dans la base pour le prénom : José ==> José

J'ai vérifié la colonne prénom, elle est de type : utf8_general_ci

Autre point :
Autre chose, quand je veut afficher le prénom de la base, il s'affiche bien : José.

Merci pour votre aide.

Re: Caractére special - insertion en base

Posté : 31 juil. 2017, 14:51
par @rthur
Bonjour,

Il faut vérifier aussi quel est le charset renvoyé par ton serveur quand on lui demande une page PHP.

Pour le forcer en utf8 il faut ajouter ceci au tout début de ta page PHP :
header('Content-Type: text/html; charset=utf-8');

Re: Caractére special - insertion en base

Posté : 31 juil. 2017, 15:31
par scorleon
Re,
Malheureusement, même avec le forçage ça ne donne rien.

Re: Caractére special - insertion en base

Posté : 31 juil. 2017, 16:18
par @rthur
Et lors de la connexion PHP -> MySQL tu as bien défini le charset de connexion ?

<?php
// Avec mysql_* (obsolète)
mysql_set_charset('utf8');

// Avec mysqli_*
mysqli_set_charset($link, 'utf8');
// ou
$mysqli->set_charset('utf8');

// Avec PDO :
$bdd = new PDO('mysql:host=localhost;dbname=nom_bdd;charset=utf8', 'login', 'password');

Re: Caractére special - insertion en base

Posté : 31 juil. 2017, 16:27
par scorleon
Non, voila ma fonction de connexion :

Code : Tout sélectionner

function connect_db() { global $sql_serveur,$sql_user,$sql_passwd,$sql_bdd; $db_link = mysqli_connect($sql_serveur, $sql_user, $sql_passwd, $sql_bdd) or die (mysqli_error($db_link)); return $db_link; }

Re: Caractére special - insertion en base

Posté : 31 juil. 2017, 16:29
par @rthur
Donc il faut que tu la complètes, je t'ai donné la ligne de code, à toi de l'intégrer correctement.
Regarde la doc si tu veux + de détails et exemples.

Re: Caractére special - insertion en base

Posté : 31 juil. 2017, 16:31
par scorleon
Oups je n'ai pas vu ton code, :)
Oui merci je vais l'ajouter.

Re: Caractére special - insertion en base

Posté : 31 juil. 2017, 16:33
par scorleon
Ohhhh cool, ça marche.
Merci beaucoup