Probleme_php

Fermé
le_me - 4 juil. 2014 à 17:46
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 4 juil. 2014 à 20:32
Salut,
j'essais de créer une application d'inscription en php au niveau de l'execution je rencontre deux problèmes : Notice: Undefined index: nbr_ventes in C:\...ligne18
Notice: Undefined variable: nom in C:\... ligne21
voici mon code :
<?php
include('../bdd.php');
if (isset($_POST['nom_c']) & isset($_POST['prenom_c']) & isset($_POST['num_tel']) & isset($_POST['adresse']) & isset($_POST['nbr_reservation']) & isset($_POST['nbr_ventes']) & isset($_POST['val_credit']))

$nom = $_POST["nom_c"] ;
$prenom = $_POST["prenom_c"] ;
$tel = $_POST["num_tel"] ;
$adress = $_POST["adresse"];
$nbr_res = $_POST["nbr_reservation"];
$nbr_vent = $_POST["nbr_ventes"]; // col18
$val_cre = $_POST["val_credit"];
$sql=("INSERT INTO client(id_c,nom_c,prenom_c,adresse,num_tel,nbr_reservation,nbr_ventes,val_credit)
VALUES('', '$nom', '$prenom', '$adress', '$tel','$nbr_res','$nbr_vent','$val_cre')"); //col21
$requete = mysql_query($sql, $connect)//l'execution de ma requete

?>

des idées ?! :(

4 réponses

Mrmichant Messages postés 257 Date d'inscription lundi 26 mai 2014 Statut Membre Dernière intervention 17 août 2014 9
4 juil. 2014 à 17:50
regarde si nbr_ventes est bien écrit sans majuscrule ou avec des S.
0
Mrmichant Messages postés 257 Date d'inscription lundi 26 mai 2014 Statut Membre Dernière intervention 17 août 2014 9
4 juil. 2014 à 17:52
('', '$nom', '$prenom', '$adress', '$tel','$nbr_res','$nbr_vent','$val_cre')") t'a pas une virgule en trop avant $ nom?
0
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
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
0
Mrmichant Messages postés 257 Date d'inscription lundi 26 mai 2014 Statut Membre Dernière intervention 17 août 2014 9
4 juil. 2014 à 17:54
Dépend de quelle logiciel des fois ca change rien les types de guillemet
0
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
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!!!
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
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):
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.
0
Mrmichant Messages postés 257 Date d'inscription lundi 26 mai 2014 Statut Membre Dernière intervention 17 août 2014 9
4 juil. 2014 à 20:06
mysqli suffirait aussi non?
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
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 ;)
0