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

SQL Procédural MySQL Discussion :

pb avec quote...php + mysql


Sujet :

SQL Procédural MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 33
    Points : 16
    Points
    16
    Par défaut pb avec quote...php + mysql
    Bonjour à toutes et tous,
    J'ai un petit pb que je n'arrive pas à resoudre...
    Lorsque j'envoie des données via un formulaire sur ma base mysql, les mots avec quote sont ecrits correctement dans la base. Par contre, lorsque j'appelle ces données dans le même formulaire, elles me reviennent tronquéees à partir du 'quote'...
    J'ai essayé le addslashes() et stripslashes() sur mon formulaire d'appel et ça me renvoie toujours la même chose....à noter, magic_quotes_gpc est à ON...
    Quelqu'ubn aurait-il une solution ?
    ci-joint le code de :
    mon formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //adresse du membre
    $req2 = "SELECT * FROM adresse WHERE Id_Membre=$choix"; //selection membre choisi dans omar
    $res2= mysql_query($req2,$conn);
    // or die($res2."<br>".mysql_error());
    if ($res2==TRUE){
      $ad=mysql_fetch_array($res2);
    }
    else {
      $ad=0;
    }
    .........
    print ("<input type='field' name='voie' value='".addslashes($ad['Voie'])."'>");
    et celui du script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            $req2="replace into Adresse (Id_adresse, Id_Membre, numero, voie, quartier, ville, codpost)
    	       values('".$_POST["Id"]."','".$_POST["Id"]."','".$_POST["numero"]."','".$_POST["voie"]."','".$_POST["quartier"]."','".$_POST["ville"]."','".($_POST["Codpost"])."')";
    Merci pour votre aide.

  2. #2
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    http://www.phpinfo.net/articles/article_magic-quotes.html
    Pour les magic_quotes c'est très utile
    En particulier les fonctions MyAddSlashes et MyStripSlashes.

    Quand tu insères une donnée: MyAddSlashes()
    Quand tu récupères les donées: rien (il faut fixer les magic_quotes_runtime à 0)
    Quand tu affiches à partir d'un formulaire: MyStripSlashes

  3. #3
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    addslashes n'est pas suffisant pour mysql. Il faut utiliser mysql_real_escape_string.

  4. #4
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Le plus simple pour ces choses la etant utiliser une fonction génrique,

    quelque chose comme cela en somme :
    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
    22
    23
    24
    25
     
    	function Protect ( $value )
    	{
    		// Si c'est un tableau, appel récursif
    		if(is_array($value))
    		{
    			foreach($value as $key=>$val)
    			{
    				$value[$key] = $this->Protect($value[$key]);
    			}
    		}
    		else
    		{	// Stripslashes
    			if (get_magic_quotes_gpc())
    			{
    				 $value = stripslashes($value);
    			}
    			// Protection si ce n'est pas un entier
    			if (!is_numeric($value))
    			{
    				 $value = mysql_real_escape_string($value);
    			}
    		}
    		return $value;
    	}

    Bye

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    J'ai essayé ça dans le formulaire qui recupere les données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print ("<input type='field' name='voie' value='".mysql_real_escape_string($ad['Voie'])."'>");
    et j'obtiens ce message d'erreur :
    Fatal error: Call to undefined function: mysql_real_escape_string() in c:\documents and settings\lexton_t\mes documents\projet cnam\www\omar\ecrans\gestion\choixmemb.php on line 105
    En fait, ma version php ici (boulot) doit être inférieure à 4.3.0...je reessaie ce soir chez moi...
    Si entre temps vous pensez à autre chose...n'hésitez pas !
    a+

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    lol ! je confirme...c'est du 4.2...faut absolument que je me mette à jour !

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    RE,
    Bon chez moi avec php 4.3.1, même quand je mets le magic_quotes_gpc = ON, c'est la même chose.
    je reposte mon formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print ("<input type='field' name='voie' value='".mysql_real_escape_string($ad['Voie'])."'>");
    et son action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            if (trim($_POST["idad"]<>"")){
            $req2="replace into Adresse (Id_adresse, Id_Membre, numero, voie, quartier, ville, codpost)
    	       values('".$_POST["Id"]."','".$_POST["Id"]."','".$_POST["numero"]."','".$_POST["voie"]."','".$_POST["quartier"]."','".$_POST["ville"]."','".($_POST["Codpost"])."')";
    Donc, maintenant, le formulaire me retourne le char tronqué à partir du quote en ajoutant le "\"
    merci de votre aide.
    a+

  8. #8
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Tu n'as pas bien compris ce que cette fonctions réalise et dans quels buts elle existe.

    mysql_real_escape_string() est utilisé pour protéger tes requetes d'une utilisation malicieuse.
    Donc on s'en sert avec les requetes SQL.

    Pour afficher dans ton formuaire la valeur avec son double quote, utilisent addslashes().

    Ainsi si tu as $t = 'rrrrr"rrrr';
    Et que tu l'affiches dans un input avec addslashes :
    <input type="text" value ="rrrr\"rrrrr" />

    Si tu n'utilises pas addslashes tu auras ceci :
    <input type="text" value ="rrrr"rrrrr" />
    et du coup c'est tronqué.

    bye

Discussions similaires

  1. [MySQL] Problème avec Jpgraph+PHP+Mysql
    Par nitro97130 dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 07/08/2012, 10h04
  2. Pas d'Insertion avec Fullcalendar PHP/MySQL
    Par leerickx dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 06/06/2012, 12h23
  3. Probleme avec IIS + PHP + MySQL
    Par mordrake dans le forum IIS
    Réponses: 5
    Dernier message: 01/01/2009, 11h22
  4. Réponses: 2
    Dernier message: 04/06/2008, 22h02
  5. Problème avec Flash + PHP/MySQL
    Par wylls dans le forum Flash
    Réponses: 12
    Dernier message: 04/01/2007, 12h23

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