[PHP] Erreur : Undefined index

Fermé
yasmine - 4 mai 2009 à 22:33
emna.hidr Messages postés 34 Date d'inscription lundi 25 février 2013 Statut Membre Dernière intervention 1 mars 2013 - 27 févr. 2013 à 11:27
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 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
4 mai 2009 à 22:55
Ç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 94 Date d'inscription vendredi 1 mai 2009 Statut Membre Dernière intervention 4 mars 2011 36
4 mai 2009 à 22:57
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 Date d'inscription lundi 25 février 2013 Statut Membre Dernière intervention 1 mars 2013
27 févr. 2013 à 11:27
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