[RESOLU] Caractére special - insertion en base

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Caractére special - insertion en base

Re: Caractére special - insertion en base

par scorleon » 31 juil. 2017, 16:33

Ohhhh cool, ça marche.
Merci beaucoup

Re: Caractére special - insertion en base

par scorleon » 31 juil. 2017, 16:31

Oups je n'ai pas vu ton code, :)
Oui merci je vais l'ajouter.

Re: Caractére special - insertion en base

par @rthur » 31 juil. 2017, 16:29

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

par scorleon » 31 juil. 2017, 16:27

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

par @rthur » 31 juil. 2017, 16:18

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

par scorleon » 31 juil. 2017, 15:31

Re,
Malheureusement, même avec le forçage ça ne donne rien.

Re: Caractére special - insertion en base

par @rthur » 31 juil. 2017, 14:51

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');

Caractére special - insertion en base

par scorleon » 31 juil. 2017, 14:44

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.