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 :

fonction Mysql_real_escape_string sous PHP


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 : 72
    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 fonction Mysql_real_escape_string sous PHP
    Bonjour,

    Voici une erreur que je ne trouve pas et que je n'explique pas.
    Y voyez vous une explication ?
    Merci

    Dans un formulaire un champs de saisie utilisateur se nomme 'entite_nom'.
    Je récupère ce nom puis je le traite avec la fonction mysql_real_escape_string
    Puis je l'affiche (ma fonction message()).
    Lorsque entite_nom saisi par l'utilisateur est 'Région d'Alsace' le message affiché est "Région d\'Alsace" ce qui correspond à ce que j'attend.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	$nom_long=mysql_real_escape_string($_POST['entite_nom']);
    	message($nom_long);
    Immédiatement après, je souhaite enregistrer le champs saisi dans ma table sql debug.

    La requête 1 ne fonctionne pas alors que la requête 2 fonctionne ce qui me prouve la bonne connexion à la table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    base_connect();
    $sql1="INSERT into debug (`c2`,`c3`) VALUES ('nom1','mysql_real_escape_string({$_POST['entite_nom']})')";
    mysql_query($sql1);
     
    $sql2="INSERT into debug (`c2`,`c3`) VALUES ( 'nom1','')";
    mysql_query($sql2);
    Je ne comprends pas pourquoi la requête 1 ne fonctionne pas puisque :
    - la fonction mysql_real_escape_string fonctionne
    - la connexion à la table debug fonctionne.

  2. #2
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql1="INSERT into debug (`c2`,`c3`) VALUES ('nom1','".mysql_real_escape_string($_POST['entite_nom'])."')";
    ?

  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 : 72
    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 Cela ne fonctionne pas.
    Merci mais cette ligne ne fonctionne pas.

    Par contre le code ci dessous (anormal) fonctionne. C'est anormal car j'utilise 2 fois la fonction !!!

    Pourquoi cela fonctionne t il ? Je ne sais pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	$nom_long=mysql_real_escape_string($_POST['entite_nom']);
    	$nom_long=mysql_real_escape_string($nom_long);
     
    $sql1="INSERT into `debug` (`c2`,`c3`) VALUES ('nom1','$nom_long')";
    mysql_query($sql1);

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    La syntaxe fournie pas eric2a est bonne.

    "Ca ne fonctionne pas" n'est pas suffisant pour t'aider.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo mysql_error() . "<br/>" . $sql1;
    après ta requête pourra nous en dire plus.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé Avatar de alain78
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    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
    Effectivement le code fourni par Eric2a est correct (excuses).

    Maintenant l'affaire se complexifie.

    La fonction mysql_error() me retourne une valeur saisie correcte.
    Exemple si je saisi d'allemagne , mysql_error() me retourne d\allemagne.

    Mais dans ma table debug, c'est d'allemagne qui est affiché ?

    S'agirait-il d'une anomalie chez mon hébergeur (Infomaniak) ?

    Merci à sabotage.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je ne comprend pas bien ce que tu décris, si tu as une erreur dans le mysql_error() tu n'as rien d'inseré dans ta table.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. [PostgreSQL] Calculs sous PHP ou dans fonctions PostgreSQL
    Par ilalaina dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/09/2008, 08h20
  2. Réponses: 8
    Dernier message: 07/07/2007, 12h39
  3. Réponses: 6
    Dernier message: 16/01/2006, 15h24
  4. Fonction EXTRACT sous Informix
    Par lord_of_ankou dans le forum Informix
    Réponses: 3
    Dernier message: 20/08/2003, 17h37
  5. requête mysql sous php
    Par remi59 dans le forum Débuter
    Réponses: 9
    Dernier message: 03/07/2003, 10h39

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