IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Problème enregitrement en bdd


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Full Stack
    Inscrit en
    Mai 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mai 2010
    Messages : 159
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Full Stack
    Inscrit en
    Mai 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mai 2010
    Messages : 159
    Par défaut
    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.

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    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

Discussions similaires

  1. [MySQL] problème de récupération bdd
    Par Kerod dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 05/02/2006, 15h52
  2. Problème de transfert BDD Sql
    Par Invité dans le forum Outils
    Réponses: 4
    Dernier message: 28/10/2005, 09h19
  3. ORA-01190 Problème après Activation BDD Standby
    Par Sergio_free dans le forum Oracle
    Réponses: 2
    Dernier message: 23/10/2005, 00h38
  4. Problème de transfert BDD
    Par bodybug dans le forum Administration
    Réponses: 2
    Dernier message: 10/07/2005, 03h12
  5. [Tomcat]problème jsp et bdd, bibliotheque virtuelle
    Par drapier dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 09/01/2005, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo