[PHP] Erreur : Undefined index

yasmine -  
emna.hidr Messages postés 34 Statut Membre -
Bonjour, je ss nouvelle en php et mysql , j'ai essayer d'executer une insertion d'une ligne à la bdd avec le code php suivent :
<?php
$id=mysql_connect("localhost","root",""); //se connecter à mysql
if($id>0) echo"connexion mysql ok"; echo"<br><br>";
$id=mysql_select_db("restaurent"); //selection de la base de données
if($id>0) echo "connexion bas restaurent ok"; echo"<br><br>";
//pour simplifier l'écriture on définit des variables
$nom=$_POST['nom'];$mail=$_POST['mail'];
//insertion du client dans la table 'clients'
$id=mysql_query("INSERT INTO'clients'('id','NomClient','MailClient','NbVisites') VALUES('','$nom','$mail','1')");
if ($id>0) echo "client enregistré";echo"<br><br>";
mysql_close();
?>

et en executant ce code voilà l'erreur qui me parais :

Notice: Undefined index: nom in c:\program files\easyphp1-8\www\tp\insertion.php on line 7

Notice: Undefined index: mail in c:\program files\easyphp1-8\www\tp\insertion.php on line 7

merci d'avance !!

2 réponses

pyschopathe Messages postés 2053 Statut Membre 135
 
Ça veut simplement dire que tes variables $_POST['nom'] et $_POST['mail'] n'existent pas.
edit : vérifie que ton formulaire n'envoie pas les données par la méthode get par exemple.

Une des règles en PHP (et en programmation en général d'ailleurs) : Never Trust User Input : Ne fais jamais confiance au données provenant de l'utilisateur !

Donc avant d'utiliser tes variables issues d'un formulaire, tu dois vérifier qu'elles existent et qu'elles sont bien ce qu'elles devraient être : intval() pour un entier, mysql_real_escape_string() avec chaque chaine de caractères... C'est la base pour prévenir la plupart des attaques par injection SQL. Sinon tu laisses de grosses failles dans ton site et n'importe qui pourrait faire n'importe quoi !
0
Ki!l Messages postés 100 Statut Membre 36
 
comme le dit le msg d'erreur il nexiste pas qq chose dans ton formulaire qui s'appelle nom et mail
tu peut utiliser simplement isset pour tester l'existence d'une variable
poster le code de formulaire pour que je peut t aider
0
emna.hidr Messages postés 34 Statut Membre
 
Bonjour,
j'ai le même problème: Notice: Undefined index: mail in C:\xampp\web\htdocs\g_h travelv1\demande_location.php on line 8.
Pouvez vous m'aidiez. voici mon code:

<?php
$host = "localhost";
$user = "root";
$pass = "";
$bdd = "ghts";
$nom=$_POST['nom'];
$mail=$_POST['mail'];
$sujet=$_POST['sujet'];
$message=$_POST['message'];

$cnx= mysql_connect($host,$user,$pass) or die("Impossible de se connecter");
$db = mysql_select_db($bdd) or die("Impossible d'ouvrir la base de données ");
if (mysql_connect ($host,$user,$pass))
{
echo "Connexion réussie"; echo "<br>";
}
else
{
echo "Connexion impossible...".mysql_error(); echo "<br>";
}
$query=" INSERT INTO contact_bus
( nom, mail, sujet, message)
VALUES('$nom','$mail','$sujet','message')";
$requete = mysql_query( $query, $cnx ) or die(mysql_error());
mysql_close() ;
?>
0