Page 1 sur 1

[Résolu] Insérer un valeur négative dans mySQl

Publié : 11 septembre 2020 à 22:37
par Philippe40
Bonsoir,
J'ai une requête qui envoie les données suivantes dans une page PHP

array (
'id' => '160',
'code_article' => '3660603004927',
'product_name' => 'Bénédicta Sauce au bleu le pot de 260 g',
'createdon' => '2020-09-11',
'qt' => '1',
'pa' => '2.74',
'longitide' => '-1.2560526',
'latitude' => '44.0785292',
'id_magasin' => '2',
'utilisateur' => '82942d7411af0066',
)

Le champ longitude est négatif mais s'enregistre à zéro dans la base de données

Dans ma page PHP

$dbh = new PDO('mysql:host='.$host.';dbname='.$base, $user, $pass);
\t\t\t\t
$sql = "INSERT INTO wp3_achats (id,code_article, product_name,createdon,qt,pa,longitude,latitude,id_magasin,utilisateur)
\t\t\t\t VALUES
\t\t\t\t\t\t (
\t\t\t\t\t\t '$_POST[id]' ,
\t\t\t\t\t\t '$_POST[code_article]' ,
\t\t\t\t\t\t '$_POST[product_name]' ,
\t\t\t\t\t\t '$_POST[createdon]' ,
\t\t\t\t\t '$_POST[qt]' ,
\t\t\t\t\t\t '$_POST[pa]' ,
\t\t\t\t\t\t '$_POST[longiture]' ,
\t\t\t\t\t\t '$_POST[latitude]' ,
\t\t\t\t\t\t '$_POST[id_magasin]' ,
\t\t\t\t\t\t '$_POST[utilisateur]'
\t\t\t\t\t\t )";

Le type de champ dans ma base de données est double(10,4)

Mes recherche sur internet sont restées infructueuses

Avez vous une solution pour ce problème
Merci d'avance
Cordialement
Philippe

[Résolu] Insérer un valeur négative dans mySQl

Publié : 11 septembre 2020 à 22:49
par Elodie
Bonsoir,

Avant de se plonger dans votre questionnement, je dois vous faire remarquer quelque chose de TRES important.

Vous utilisez du POST directement dans la requête SQL sans la préparer avec PDO, du coup n'importe qui peut envoyer une sous requête SQL pour lancer ce qu'il veut sur toutes vos données SQL et même supprimer toutes vos données dans vos bases de données en quelques secondes. C'est ce que l'on nomme de l'injection SQL.

Ensuite, si la valeur de la longitude est à 0, c'est peut être parce que vous ne la renseignez pas et du coup elle est à 0 comme c'est un nombre. Vous avez mis un "R" au lieu de la lettre "D" dans le nom de la variable "longituRe" :
philippe40 a écrit :'$_POST[longiture]

[Résolu] Insérer un valeur négative dans mySQl

Publié : 12 septembre 2020 à 09:26
par Philippe40
Encore une fois merci de votre aide.
Je n'avais pas vu la faute et je tournais en rond.
Je vais tenir compte de votre avis sur la protection des injections
cordialement
Philippe