Ok,
que te donnes ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo 'magic_quote_runtime : ', get_magic_quotes_runtime();
Ok,
que te donnes ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo 'magic_quote_runtime : ', get_magic_quotes_runtime();
- PDO++ : Une nouvelle façon d'utiliser PDO. Billet de blog || Code source
- PhpEcho : Un moteur de rendu en une seule classe ! Nouvelle version (release 2.3.2) publiée le 18/04/2020 : Billet de blog || Code source
Essaies ton script en mettant ceci au début :
Et change la config de ton serveur parce que elle est obsolète.
Code : Sélectionner tout - Visualiser dans une fenêtre à part set_magic_quotes_runtime(false);
- PDO++ : Une nouvelle façon d'utiliser PDO. Billet de blog || Code source
- PhpEcho : Un moteur de rendu en une seule classe ! Nouvelle version (release 2.3.2) publiée le 18/04/2020 : Billet de blog || Code source
Résultat :
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);
magic_quote_runtime : 0 []
en indiquant :
toujours l'affichage du \
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 set_magic_quotes_runtime(false);
si ton \ est dans ta base c'est normale, faut tout enlever de la base
stealth35, tu m'as grillé.
après qu'il ait dit :et get_magic_quotes_runtime() qui renvoie false, il ne reste plus logiquement que le nettoyage de la base de données.pour d'autres requêtes sans PDO, cela fonctionne bien avec stripslashes...
Bref, au boulot
- PDO++ : Une nouvelle façon d'utiliser PDO. Billet de blog || Code source
- PhpEcho : Un moteur de rendu en une seule classe ! Nouvelle version (release 2.3.2) publiée le 18/04/2020 : Billet de blog || Code source
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 :
Donc, j'ai des \ à chaque fois dans le nom "nom4" et la description "comments"
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']);
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.
- PDO++ : Une nouvelle façon d'utiliser PDO. Billet de blog || Code source
- PhpEcho : Un moteur de rendu en une seule classe ! Nouvelle version (release 2.3.2) publiée le 18/04/2020 : Billet de blog || Code source
@ 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.
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'); }
- PDO++ : Une nouvelle façon d'utiliser PDO. Billet de blog || Code source
- PhpEcho : Un moteur de rendu en une seule classe ! Nouvelle version (release 2.3.2) publiée le 18/04/2020 : Billet de blog || Code source
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); ?>
regardes ce que tu écris :
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)
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');
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');
- PDO++ : Une nouvelle façon d'utiliser PDO. Billet de blog || Code source
- PhpEcho : Un moteur de rendu en une seule classe ! Nouvelle version (release 2.3.2) publiée le 18/04/2020 : Billet de blog || Code source
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); ?>
Dans le code modifié, tu peux supprimer la classe AutoCompletion qui ne t'est plus d'aucune utilité
- PDO++ : Une nouvelle façon d'utiliser PDO. Billet de blog || Code source
- PhpEcho : Un moteur de rendu en une seule classe ! Nouvelle version (release 2.3.2) publiée le 18/04/2020 : Billet de blog || Code source
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager