Probleme_php
Fermé
le_me
-
4 juil. 2014 à 17:46
ElementW Messages postés 4814 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 4 juil. 2014 à 20:32
ElementW Messages postés 4814 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 4 juil. 2014 à 20:32
4 réponses
Mrmichant
Messages postés
258
Date d'inscription
lundi 26 mai 2014
Statut
Membre
Dernière intervention
17 août 2014
9
4 juil. 2014 à 17:50
4 juil. 2014 à 17:50
regarde si nbr_ventes est bien écrit sans majuscrule ou avec des S.
Mrmichant
Messages postés
258
Date d'inscription
lundi 26 mai 2014
Statut
Membre
Dernière intervention
17 août 2014
9
4 juil. 2014 à 17:52
4 juil. 2014 à 17:52
('', '$nom', '$prenom', '$adress', '$tel','$nbr_res','$nbr_vent','$val_cre')") t'a pas une virgule en trop avant $ nom?
pierre72210
Messages postés
67
Date d'inscription
mercredi 16 mai 2012
Statut
Membre
Dernière intervention
13 décembre 2014
4 juil. 2014 à 17:52
4 juil. 2014 à 17:52
tout d'abord je pense que si la ligne 18 etait resolu la lige 21 le serait aussi ensuite je peut remarquer que tu a utiliser des ' et des " ce qui pourrait peut poser probleme essaye de modifier ceci et post le resultat
Mrmichant
Messages postés
258
Date d'inscription
lundi 26 mai 2014
Statut
Membre
Dernière intervention
17 août 2014
9
4 juil. 2014 à 17:54
4 juil. 2014 à 17:54
Dépend de quelle logiciel des fois ca change rien les types de guillemet
pierre72210
Messages postés
67
Date d'inscription
mercredi 16 mai 2012
Statut
Membre
Dernière intervention
13 décembre 2014
4 juil. 2014 à 19:34
4 juil. 2014 à 19:34
le logiciel na rien a voir c'est la version de php qui change quelque chose mais je suis d'accord il se peut que ca n'est rien a voir!!!
ElementW
Messages postés
4814
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 227
4 juil. 2014 à 20:04
4 juil. 2014 à 20:04
'lut, oulalalah que c'est moche:
1. il faut faire une vérification de chaque élément $_POST, renvoyer une erreur s'il y en a besoin, ou le remplir avec une valeur par défaut. Donc fait comme ceci (emballe tout ça dans une fonction):
2. Injection SQL en masse: tu met des paramètres fourni par le client (navigateur) du site directement dans une requête SQL, c'est la destruction de ta BDD assurée.
Je vois que tu utilises les fonctions
1. il faut faire une vérification de chaque élément $_POST, renvoyer une erreur s'il y en a besoin, ou le remplir avec une valeur par défaut. Donc fait comme ceci (emballe tout ça dans une fonction):
if (!isset($_POST["nom_c"]) || empty($_POST["nom_c"])) return "Erreur"; $nom = $_POST["nom_c"]; ... idem pour les autres ...
2. Injection SQL en masse: tu met des paramètres fourni par le client (navigateur) du site directement dans une requête SQL, c'est la destruction de ta BDD assurée.
Je vois que tu utilises les fonctions
mysql_*, elles sont obsolètes donc à ne plus utiliser, et il faut passer à PDO, qui permet d'intégrer des paramètres à la requête sans risquer l'injection.
Mrmichant
Messages postés
258
Date d'inscription
lundi 26 mai 2014
Statut
Membre
Dernière intervention
17 août 2014
9
4 juil. 2014 à 20:06
4 juil. 2014 à 20:06
mysqli suffirait aussi non?
ElementW
Messages postés
4814
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 227
Modifié par gravgun le 4/07/2014 à 20:34
Modifié par gravgun le 4/07/2014 à 20:34
Bah de manière générale il vaut mieux apprendre PDO car c'est Portable (Database Object). Mysqli irait certes bien mais est spécifique à mysql, et fournit deux interfaces: une procédurale et une objet, et je déplore cette diversité: on fait soit l'un soit l'autre, mais avoir les deux peux inciter au mélange (car les 2 interfaces sont compatibles entre elles; mélange surtout susceptible chez les apprentis qui commencent tout juste le PHP Orienté Objet, venant du modèle procédural) et intrinsèquement à un mauvais design de code.
Mais autrement mysqli se vaut aussi ;)
Mais autrement mysqli se vaut aussi ;)