Notice: Undefined index:

Résolu/Fermé
AMARI - 18 févr. 2013 à 15:41
 AMARI - 18 févr. 2013 à 16:58
Bonjour,


<?php
$cnx = mysql_connect("localhost", "root","" );//on se connecte à MySQL
$db = mysql_select_db( "contact" ); //On selectionne la base
mysql_close();// facultative, on ferme la connexion */
$nom = $_POST["nom"] ;
$prenom = $_POST["prenom"] ;
$adresse = $_POST["adresse"] ;
$sql = "insert into personne( nom, prenom, adresse) values
( '$nom', '$prenom' , '$adresse')";
//Si ca a fonctionne, on naffiche pas le formulaire

$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
?>
<html><head></head>
<body>
<form id="" action="index.php" method="GET">
<table border="1">
<tr>
<td> NOM:<input name="nom" type="text" value=""/></td></tr><br/>
<td> PRENOM:<input name="prenom" type="text" value=""/></td></tr><br/>
<td> ADRESSSE:<input name="adresse" type="text" value=""/></td></tr><br/>
<td><center><INPUT type="submit" Value="submit" align="middle" /></center></td>
</table>
</form>
</body>
</html>

il m'affiche comme erreur
Notice: Undefined index: nom in C:\wamp\www\personne\index.php on line 15
Notice: Undefined index: prenom in C:\wamp\www\personne\index.php on line 16
Notice: Undefined index: adresse in C:\wamp\www\personne\index.php on line 17
quelqu'un peux m'aider svp , merci d'avance

9 réponses

Angelneonizz Messages postés 788 Date d'inscription mardi 9 décembre 2003 Statut Membre Dernière intervention 19 février 2018 137
18 févr. 2013 à 15:48
Bonjour,

il faut mettre une condition pour tes variables $nom, $prenom, ...
car $_POST['nom'] par exemple, n'existe pas si la première fois que tu lances la page.

Si ton formulaire est empli alors :
$nom = $_POST['nom'];
...
Si non tu affiches le formulaire
1
merci pour votre réponse rapide ,

j'ai mais une condition , voilà le code corrigé mais il m'affiche encore un erreur :(
<?php
$cnx = mysql_connect("localhost", "root","" );//on se connecte à MySQL
$db = mysql_select_db( "contact" ); //On selectionne la base
if (isset($POST['envoi']) && $_POST['envoi']=='Envoyer')
{
$nom = $_POST["nom"] ;
$prenom = $_POST["prenom"] ;
$adresse = $_POST["adresse"] ;
$sql = "insert into personne( nom, prenom, adresse) values
( '$nom', 'prenom' , '$adresse')";
}
//Si ca a fonctionne, on naffiche pas le formulaire

$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
else
{
?>
<html><head></head>
<body>
<?php
echo'<form id="" action="index.php" method="GET">
<table border="1">
<tr>
<td> NOM:<input name="nom" type="text" value=""/></td></tr><br/>
<td> PRENOM:<input name="prenom" type="text" value=""/></td></tr><br/>
<td> ADRESSSE:<input name="adresse" type="text" value=""/></td></tr><br/>
<td><center><INPUT type="submit" Value="Envoyer" name="envoi"align="middle" /></center></td>
</table>';
?>
</form>
<?
}?>
</body>
</html>
0
Utilisateur anonyme
18 févr. 2013 à 16:13
Bonjour

echo'<form id="" action="index.php" method="GET">
Si tu veux récupérer des valeurs dans la variable $_POST, il faut mettre metod="post" et non pas method="get".
0
merci pour ta réponse rapide : j'ai essayé mais rien ni changé :(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
18 févr. 2013 à 16:22
De plus, il faut écrire $_POST sans oublier le _ :
if (isset($POST['envoi']) && ..
Tu as toujours le même message d'erreur ?
0
je te remercie pour ta réponse , en fait voilà le code:
<?php
$cnx = mysql_connect("localhost", "root","" );//on se connecte à MySQL
$db = mysql_select_db( "contact" ); //On selectionne la base
if (isset($_POST['envoi']) && $_POST['envoi']=='Envoyer')
{
$nom = $_POST["nom"] ;
$prenom = $_POST["prenom"] ;
$adresse = $_POST["adresse"] ;
$sql = "insert into personne( nom, prenom, adresse) values
( '$nom', 'prenom' , '$adresse')";
}
//Si ca a fonctionne, on naffiche pas le formulaire

$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
else
{
?>
<html><head></head>
<body>
<?php
echo'<form id="" action="index.php" method="post">
<table border="1">
<tr>
<td> NOM:<input name="nom" type="text" value=""/></td></tr><br/>
<td> PRENOM:<input name="prenom" type="text" value=""/></td></tr><br/>
<td> ADRESSSE:<input name="adresse" type="text" value=""/></td></tr><br/>
<td><center><INPUT type="submit" Value="Envoyer" name="envoi"align="middle" /></center></td>
</table>';
?>
</form>
<?
}?>
</body>
</html>
et il m'affiche comme erreur
( ! ) Parse error: syntax error, unexpected T_ELSE in C:\wamp\www\personne\index.php on line 15
0
Utilisateur anonyme
18 févr. 2013 à 16:35
Merci de ne pas nous dire que "rien ni changé " alors qu'en fait ça avait changé. La première erreur était bien corrigée, et nous on continuait de la chercher.
Si tu ne fais pas attention, non seulement tu n'arriveras pas à programmer par toi même, mais tu n'arriveras même pas à obtenir de l'aide.
Ceci étant dit, tu as mal placé l'accolade de fin du if ; elle devrait être juste avant le else :
$sql = "insert into personne( nom, prenom, adresse) values 
( '$nom', 'prenom' , '$adresse')"; 

//Si ca a fonctionne, on naffiche pas le formulaire 

$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ; 
}
else 


Mais il serait quand même bon, de prévoir quelque chose dans le cas où le formulaire est correctement rempli car là, tu vas te retrouver avec une page blanche.
0
merci beaucoup pour ton aide la ça marche il ne m'affiche aucune erreur mais le problème quand je consulte ma base des données j'ai remarqué qu'il incrémente l'id par contre il rentre pas les données de ma formulaire: le nom , prenom et adresse, est que tu peux m'expliquer pourquoi il ne récupère pas les données ???
0
là c'est bon , le code il fonctionne bien , juste j'ai oublié de fermer la formulaire , je te remercie beaucoup pour ton aide . bon soirée :)
0