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

Langage PHP Discussion :

casse tête variable [PHP 5.2]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de alain78
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 160
    Par défaut casse tête variable
    Bonjour,

    Voici un mystère que je ne comprend pas et surtout que je n'arrive pas à résoudre depuis plusiuers heures. Peut être trouverez vous la solution/explication.

    Cela a l'air simple...et pourtant.

    Je veux enregistrer dans ma table 'debug' ma variable $notes. Lorsque j'affecte
    à $notes comme valeur une chaine de caractère cela fonctionne très bien. Lorsque j'affecte à ma variable $notes une autre variable, cela ne fonctionne plus. Bien sûr, j'ai vérifié que la variable $msg_acces_ho_nok est bien remplie.

    Pourquoi ? Je précise que je suis en PHP 5.2.9


    code qui fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $notes="toto";
    $sql_temp="INSERT into debug (c1,c2) VALUES (NULL, '$notes')";
    mysql_query($sql_temp);
    code qui ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $notes=$msg_acces_ho_nok;
    $sql_temp="INSERT into debug (c1,c2) VALUES (NULL, '$notes')";
    mysql_query($sql_temp);
    En cette veille de Noël si vous me trouvez la solution ce serait un super cadeau.
    En tout cas, bonnes fêtes de Noël à toutes et tous.

    Alain:

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    Que contient ta variable $msg_acces_ho_nok ? As-tu une erreur SQL ? Si oui laquelle ?

    Assures-toi que ta variable ne contienne pas de caractère ' (quote). Aussi, n'oublie pas de protéger la valeur insérée contre les injections SQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $notes=$msg_acces_ho_nok;
    // if(strpos($notes, '\'')) $notes = addslahses($notes);
    $sql_temp="INSERT into debug (c1,c2) VALUES (NULL, '".mysql_real_escape_string($notes)."')";
    mysql_query($sql_temp);

  3. #3
    Membre confirmé Avatar de alain78
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 160
    Par défaut Bravo
    Bravo et merci. C'était bien cela.
    En fait la valeur de la variable venait du contenu d'une table que j'avais moi même remplie par saisie directe dans la table. Donc je ne pensais pas utile de protéger ce contenu par un "mysql_real_escape_string. Erreur donc car ma chaine de caractère contenait bien des quotes.

    Merci donc et Joyeux Noël.

    PS: petite erreur dans ton code que j'ai rectifié comme suit (pour les suivants)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(strpos($notes, '\'')) {$notes = addslashes($notes);}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. XML > XSL : Un casse-tête avec les variables
    Par ricolx dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 07/04/2013, 22h31
  2. [FPDF] Casse tête avec variable d'un formulaire et FPDF
    Par edperceval dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 08/05/2010, 22h52
  3. [Tableaux] Casse têtes de boucles
    Par Anduriel dans le forum Langage
    Réponses: 5
    Dernier message: 28/06/2006, 01h24
  4. Classe, pile, pointeurs et casse-tête!
    Par zazaraignée dans le forum Langage
    Réponses: 6
    Dernier message: 26/09/2005, 17h57
  5. casse-tête excel
    Par gregius dans le forum Access
    Réponses: 2
    Dernier message: 21/09/2005, 17h38

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