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 17/01/2012, 12h17   #1
Membre régulier
 
franck franck
Développeur Web
Inscription : mai 2010
Messages : 98
Détails du profil
Informations personnelles :
Nom : franck franck
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 98
Points : 91
Points : 91
Par défaut Problème enregitrement en bdd

Bonjour à tous,

Voila je rencontre un souci sur un site avec un code qui tourne déjà sans aucun problèmes sur d'autres sites.
Mon code concernant la bdd:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
private function __construct() {
$config = fConfig::getInstance();
 
$this->link = mysql_connect( $config->getParameter("database.default.host"), $config->getParameter("database.default.user"), $config->getParameter("database.default.pass") );
$this->setUTF();// si retiré plus de problèmes à l'enregistrement
$this->base = $config->getParameter("database.default.name");
$this->selectBase();
}
 
private function selectBase() {
mysql_select_db($this->base);
}
 
function setUTF() {
if ( function_exists( 'mysql_set_charset' ) ) {
@mysql_set_charset('utf8', $this->link);
} else {
@mysql_query( "SET NAMES 'utf8'", $this->link );
}
}
Jusqu'à maintenant je n'ai pas eu de problème mais la sur un site j'ai un gros souci en effet lors de l'enregistrement d'un $_POST ou autres contenant un mot accentué, le texte à partir de l'accent est supprimé.
Par contre si j'enlève $this->setUTF(); alors tout s'enregistre mais les caractères accentués ne sont pas propre.

Avez-vous une idée?

Franck
franck31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 13h45   #2
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 726
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 726
Points : 3 293
Points : 3 293
Salut

Supprime les @ devant les fonctions mysql_set_charset et mysql_query de cette méthode setUTF().
Ensuite active les retours d'erreur concernant MySQL (php.ini mysql.trace_mode à On), ou alors rajoute un mysql_error en cas d'erreur.
Tout cela histoire d'en savoir sur cette erreur.

Mise à part ça, essai/modifie comme ceci pour voir :
Code :
1
2
3
4
$this->link = mysql_connect( ... etc ... );
$this->base = $config->getParameter("database.default.name");
$this->selectBase();
$this->setUTF();
En appelant setUTF() après avoir sélectionné la Bdd.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 13h38   #3
Membre régulier
 
franck franck
Développeur Web
Inscription : mai 2010
Messages : 98
Détails du profil
Informations personnelles :
Nom : franck franck
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 98
Points : 91
Points : 91
Désolé pour ce retour tardif.

Après les modifications faites, rien ne change. Mysql_error ne fonctionne pas car l'injection se fait tout de même c'est ce que je ne comprends pas.
franck31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 19h55   #4
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 726
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 726
Points : 3 293
Points : 3 293
Si c'est juste un problème de caractères non conformes, fait le point sur ces tutos :
UTF-8 PHP MYSQL (histoire d'encodage)
ou/et Passez à l'UTF-8 sans manquer une étape
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h34.


 
 
 
 
Partenaires

Hébergement Web