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 :

PDO et apostrophes [PDO]


Sujet :

PHP & Base de données

  1. #21
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Ok,
    que te donnes ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'magic_quote_runtime : ', get_magic_quotes_runtime();

  2. #22
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Essaies ton script en mettant ceci au début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set_magic_quotes_runtime(false);
    Et change la config de ton serveur parce que elle est obsolète.

  3. #23
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo 'magic_quote_runtime : ', get_magic_quotes_runtime();
    set_magic_quotes_runtime(false);
    Résultat :
    magic_quote_runtime : 0 []

    en indiquant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set_magic_quotes_runtime(false);
    toujours l'affichage du \

  4. #24
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    si ton \ est dans ta base c'est normale, faut tout enlever de la base

  5. #25
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    stealth35, tu m'as grillé.
    après qu'il ait dit :
    pour d'autres requêtes sans PDO, cela fonctionne bien avec stripslashes...
    et get_magic_quotes_runtime() qui renvoie false, il ne reste plus logiquement que le nettoyage de la base de données.
    Bref, au boulot

  6. #26
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut
    Bonjour,
    je ne peux pas modifier ma base de données, car elle est sécurisée par ceci lors de l'insertion des données sur une autre page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $nom_artiste_recupere				= mysql_real_escape_string($_POST['nom4']);
    	$site_web_recupere					= mysql_real_escape_string($_POST['webinfos']);
    	$designation_recupere				= mysql_real_escape_string($_POST['comments']);
    Donc, j'ai des \ à chaque fois dans le nom "nom4" et la description "comments"
    et dans l'affichage de mes données, je n'ai jamais de problème avec la fonction stripslahes...

    ce qu'il me faut, c'est pouvoir utiliser stripslahes avec PDO !
    il y a bien un moyen mais lequel ?
    Merci.

  7. #27
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par fazpedro Voir le message
    ce qu'il me faut, c'est pouvoir utiliser stripslahes avec PDO !
    il y a bien un moyen mais lequel ?
    Merci.
    stripslahes avec PDO ! ça n'a strictement rien à voir. Arrêtes de fantasmer
    à la rigueur, une fois les données rapatriées avec PDO, tu les passes à la moulinette stripslashes()Après je pense que tu devrais nettoyer la base de données.

  8. #28
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut
    @ rawsrc :

    à la rigueur, une fois les données rapatriées avec PDO, tu les passes à la moulinette stripslashes()Après


    OK mais comment faire exactement ?

    après je devrais peut-être ré-écrire toutes mes requêtes d'insertion en PDO mais là je veux seulement afficher avec cette requête PDO mes données sans le \
    vous pensez que c'est faisable ?
    merci.

  9. #29
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Quelque chose comme ça :
    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
    <?php
     
    function strip_slashes(&$v, $k) {
       $v = stripslashes($v);
    }
     
    $data = array();
    $stmt = $pdo->prepare('SELECT * FROM t_table WHERE ...');
    $stmt->bindValue();
    $stmt->bindValue();
    $exec = $stmt->execute();
    if ($exec) {
       $data = $exec->fetchAll();
       array_walk_recursive($data, 'strip_slashes');
    }

  10. #30
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut
    j'ai essayé d'adapter à mon code mais rien n'y fait !

    avec le code ci-dessous je n'ai plus rien qui s'affiche...
    désolé mais je capte pas...
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    <?php
    function strip_slashes(&$v, $k) {	$v = stripslashes($v);	}
    ?>
    <?php
    class AutoCompletion 
    {public $Artiste;public $Description;public $Site_infos;}	
    //Initialisation de la liste
    $list = array();
    //Connexion MySQL
    require('configuration.php');	// $db dans le fichier !
    try	{$db;}
    catch (Exception $ex)
    {echo $ex->getMessage();}
    //Construction de la requete
    $strQuery = "SELECT artiste Artiste, description Description, site_infos Site_infos FROM favoris WHERE ";
    if (isset($_POST["artiste"]))
    {$strQuery .= "artiste LIKE :artiste ";}
    else	{	$strQuery .= "description LIKE :description ";	
    			$strQuery .= "site_infos LIKE :site_infos ";		
    		}
    if (isset($_POST["maxRows"]))	//Limite
    	{	$strQuery .= "LIMIT 0, :maxRows";	}
    $query = $db->prepare($strQuery);
    if (isset($_POST["artiste"]))
    	{	$value = "%".$_POST["artiste"]."%";	
    		$query->bindParam(":artiste", $value, PDO::PARAM_STR);
    	}
    else
    	{	
    		$value = $_POST["description"]."%";
    		$query->bindParam(":description", $value, PDO::PARAM_STR);
    		$value = $_POST["site_infos"]."%";
    		$query->bindParam(":site_infos", $value, PDO::PARAM_STR);
    	}
    if (isset($_POST["maxRows"]))	//Limite
    	{	$valueRows = intval($_POST["maxRows"]);
    		$query->bindParam(":maxRows", $valueRows, PDO::PARAM_INT);	
    	}
    $query->execute();
    $list = $query->fetchAll(PDO::FETCH_CLASS, "AutoCompletion");
    array_walk_recursive($list, 'strip_slashes');
    echo json_encode($list);
    ?>

  11. #31
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    regardes ce que tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $list = $query->fetchAll(PDO::FETCH_CLASS, "AutoCompletion");
    array_walk_recursive($list, 'strip_slashes');
    Tu ne peux pas faire ça avec une classe AutoCompletion qui n'a pas le comportement d'un tableau (pour cela elle doit étendre \ArrayObject)
    Voici comment faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $list = $query->fetchAll(PDO::FETCH_ASSOC);
    array_walk_recursive($list, 'strip_slashes');

  12. #32
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut
    Génial rawsrc !!!!
    Un grand merci, c'est exactement ce que je recherchais !

    Code modifié :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <?php
    function strip_slashes(&$v, $k) {	$v = stripslashes($v);	}
    ?>
    <?php
    class AutoCompletion 
    {public $Artiste;public $Description;public $Site_infos;}	
    //Initialisation de la liste
    $list = array();
    //Connexion MySQL
    require('configuration.php');	// $db dans le fichier !
    try	{$db;}
    catch (Exception $ex)
    {echo $ex->getMessage();}
    //Construction de la requete
    $strQuery = "SELECT artiste Artiste, description Description, site_infos Site_infos FROM favoris WHERE ";
    if (isset($_POST["artiste"]))
    {$strQuery .= "artiste LIKE :artiste ";}
    else	{	$strQuery .= "description LIKE :description ";	
    			$strQuery .= "site_infos LIKE :site_infos ";		
    		}
    if (isset($_POST["maxRows"]))	//Limite
    	{	$strQuery .= "LIMIT 0, :maxRows";	}
    $query = $db->prepare($strQuery);
    if (isset($_POST["artiste"]))
    	{	$value = "%".$_POST["artiste"]."%";	
    		$query->bindParam(":artiste", $value, PDO::PARAM_STR);
    	}
    else
    	{	
    		$value = $_POST["description"]."%";
    		$query->bindParam(":description", $value, PDO::PARAM_STR);
    		$value = $_POST["site_infos"]."%";
    		$query->bindParam(":site_infos", $value, PDO::PARAM_STR);
    	}
    if (isset($_POST["maxRows"]))	//Limite
    	{	$valueRows = intval($_POST["maxRows"]);
    		$query->bindParam(":maxRows", $valueRows, PDO::PARAM_INT);	
    	}
    $query->execute();
    $list = $query->fetchAll(PDO::FETCH_ASSOC);
    array_walk_recursive($list, 'strip_slashes');
    echo json_encode($list);
    ?>

  13. #33
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Dans le code modifié, tu peux supprimer la classe AutoCompletion qui ne t'est plus d'aucune utilité

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Apostrophe avec les requetes preparees pdo bindvalue
    Par sabdoul dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 17/09/2014, 18h34
  2. Réponses: 3
    Dernier message: 10/06/2004, 22h34
  3. Apres l'accent l'apostrophe
    Par man80 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 04/05/2004, 16h47
  4. Stocker un apostrophe
    Par Bowen dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/03/2004, 00h00
  5. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39

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