OVH Community, votre nouvel espace communautaire.

PHP 5.4 et Base de Données ???


teopath
28/07/2015, 11h37
Je viens de comprendre où était le problème qui en fait n'en était pas un.

C'est que PhpMyAdmin travaille également en Php 5.4 et donc présente les données en retirant les antislashes

Ce n'est qu'en réalisant une sauvegarde de la table et en scruptant cette sauvegarde que je me suis rendu compte de mon erreur.

teopath
26/07/2015, 17h25
Bonjour à tous,

Hier soir je me suis décidé à basculer un de mes site en PHP 5.4, le site était avant en PHP 5.2, tout fonctionne parfaitement.

Cependant, sensibilisé au risque d'injection apparaissant suite à la disparition des Magic Quotes, j'ai voulu échapper les données sensible.

Je saisi donc une variable contenant une apostrophe

$ville = "Villeneuve d'Ascq";
$ville = addslashes($ville);
echo $ville;
Cà me donne : Villeneuve d\'Ascq

Jusque là tout est normal.

Après çà je veux enregistrer cette variable ville dans une table avec la requête

$sql="UPDATE table SET ville='$ville' WHERE id_ville='$code'";
Encore une fois çà fonctionne, pas d'erreur

Mais quand je lis le champ avec PhpMyAdmin ou quand je réintroduit dans une page le contenu du champ, l'apostrophe n'est pas échappé

Une variable échappée avec addslashes() ne serait elle pas compatible avec MySql ?



En cherchant sur le net j'ai trouvé çà : http://php.net/manual/fr/function.addslashes.php

Et plus particulièrement çà : http://php.net/manual/fr/mysqli.real-escape-string.php

Quelqu'un peut il me confirmer ou m'infirmer si c'est comme çà qu'il faut procéder ?

D'avance merci