Probleme_php
le_me
-
ElementW Messages postés 5690 Statut Contributeur -
ElementW Messages postés 5690 Statut Contributeur -
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 ?! :(
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
-
regarde si nbr_ventes est bien écrit sans majuscrule ou avec des S.
-
('', '$nom', '$prenom', '$adress', '$tel','$nbr_res','$nbr_vent','$val_cre')") t'a pas une virgule en trop avant $ nom?
-
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
-
'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 fonctionsmysql_*
, 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.-
-
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 ;)
-