Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour,
J'ai un formulaire en PHP...
Au début de mon formulaire, j'ai mis header en utf 8
En suite dans l’Head de la partie HTML, j'ai fait la même chose :
Je passe les variables ENT-QUOTES
Exemple :
Dans le champ de mon mySql (sous phpMyAdmin) :
Type : TEXT
Interclassement : utf8_general_ci
Lorsque l’utilisateur remplit "textarea" avec les accents, l'enregistrement dans le bd n'est pas bon. Voici l'exemple :
l'utilisateur remplit le "textarea" comme cela: je m'appelle luc côté Montréal
Mais dans bd ce que je vois : je m'appelle luc côté Montréal
Comment je peux remédier mon problème ?
Merci
Brave autiste
Cl... clown
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
@*|*@
Hors ligne
Bonjour,
Sache que de déclarer un entête de fichier en UTF8 n'est pas une condition suffisante pour qu'il le soit. Il faut en effet que le fichier concerné soit enregistré au même format. Ensuite, vu ton problème, tu n'utilises pas apparemment la bibliothèque PDO pour te connecter à la base de données. Donc saches que le module MySQL de PHP passe par l'interpréteur PHP pour envoyer les infos au serveur DB. Il faut donc aussi que ton PHP sur ton serveur soit configuré en UTF8 et ce, en deux endroits : via .htaccess sur la racine de ton site et via ton PHP.ini
++
EDIT/PS: Sinon tu as la possibilité de passer par UTF8_encode() et UTF8_decode() de PHP.
Dernière modification par Jc (11-08-2010 17:06:24)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Salut,
Tu peu en plus préciser que l'encodge dans le champ textarea si tu veut être complet (tu ne sais pas quel est l'encodage du client au final).
@+
Il en faut peu pour être heureux pompompompompompompompompompompom
Hors ligne
Pour moi un encodage en latin1 a résolu mon problème d'accent ...
Hors ligne
Hey !
Tu peux aussi essayer d'ajouter le code suivant (lors de la connexion) :
[code php]
<?php
/*
$DB = mysql_connect(self::HOST, self::LOGIN, self::PASS);
mysql_select_db(self::DATA_BASE_NAME, $DB);
*/
mysql_query('SET NAMES utf8');
?>
[/code]
Hors ligne
sinon je suis tombé la dessus http://www.natsimhan.com/2007/07/20/49- … ql-en-utf8
@+
Il en faut peu pour être heureux pompompompompompompompompompompom
Hors ligne
Merci à vous,
Suite vos explication j'ai réglé une grande partie de mon problème
Voici la solution
En fait je ne devrais pas faire htmlspecialchars avant l'insertion de mes données dans la BD mais simplement lors de l'affichage donc ici c'est inutile
Ensuite avant la requête d'insertion il faut faire
Hey !
Tu peux aussi essayer d'ajouter le code suivant (lors de la connexion) :
<?php
/*
$DB = mysql_connect(self::HOST, self::LOGIN, self::PASS);
mysql_select_db(self::DATA_BASE_NAME, $DB);
*/
mysql_query('SET NAMES utf8');
?>
Avec le code suivant tout va bien...
// Insertion en bdd si les variables (exemple [$var_ville] non vide
if(!empty($var_ville))
{
//connection au serveur
include"bd_db/connection.php";
//sélection de la base de données et table
include"bd_db/selection.php";
//juste après la connexion encodage
mysql_query("SET NAMES 'utf8'");
//------...............---ecriture cvs debut
// va voir plus bas
//------...............---ecriture cvs FIN
//écriture de la requête d'insertion
//$query = "INSERT INTO matable (champ_ville) VALUE ('" .mysql_real_escape_string($var_ville). "' )";
$var_query = "INSERT INTO $table_db (bd_ville,bd_code_postal)";
$var_query .= "VALUE ('" .mysql_real_escape_string($var_ville). "','" .mysql_real_escape_string($var_code_postal). "')";
$result = mysql_query($var_query, $cnx) or die (mysql_error());
}
?>
Ça marche avec MySql et PhpMyAdmin...
Par contre j'ai un souci dans un autre niveau...
Je écris aussi les donnés dans un fichier csv...
Lorsque j'ouvre mon fichier sous NotePad++, tout va bien...
Alors, l'utilisateur écrit dans le champ "ville" [ll'assomption côté] et je peux l'afficher correctement le résultat dans une page PHP et aussi dans phpMyMyAdmin
: [l'assomption côté]. C'est la même chose lorsque j'ouvre mon fichier csv sous NodePad++... Super content...
Par contre, lorsque j'ouvre le même fichier sous Excel, il y a un pépin :
je vois comme cela : [l'assomption çôté] :oops: :cry:
Comment je peux corriger mon histoire sous excel ?;)
voici mon code ....
// formatage du date avec fonction 'date'
//$var_date = date('d_m_Y--H_i_s_');
$var_date = date('d/m/Y');
//Définir le fichier qui nous intéresse
//$fichier_data_FD = "data/" . date("Ymd").".csv";
// . date('dmY') . '
// ('Y-m-d\TH:i:s:u')
$fichier_data_FD = "data/envoie.csv";
//ou en mode "ajouter" à la fin d'info existant
//créé si inexistant
$ouvrir_FD = fopen($fichier_data_FD,"a");
//La position du pointeur est dans le file
$pointeur_adresse_memoire = ftell($ouvrir_FD);
//et est modifiable
$pointeur_adresse_memoire = fseek($ouvrir_FD,$pointeur_adresse_memoire-10);
//pour passer à la ligne, écrire \n
fputs($ouvrir_FD, $var_ville.';'.$var_code_postal.';'."\n");
//Enfin fermer le fichier
fclose($ouvrir_FD);
//------...............---ecriture cvs FIN
?>
Alors est-ce que vous avez des idées ?
Merci encore:)
Brave autiste
Cl... clown
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
@*|*@
Hors ligne
Hors ligne
j'ai trouve
Il fallait
utf8_decode()
Merci
Bonsoir...
Dernière modification par phpdos (19-08-2010 21:41:37)
Brave autiste
Cl... clown
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
@*|*@
Hors ligne
Pages :: 1