Bonjour,
J'ai un petit soucis avec mon script php.
A partir d'une base de données déjà créée, dans laquelle se trouve notamment 2 tables : identifiant et mail, je dois insérer un nouveau mail dans cette base. Jusqu'ici, ça va ^^
Avant toute chose, je dois ouvrir une session avec mes identifiants, présents dans la table 'identification'. Une fois connecté, je souhaite ajouter une adresse mail dans ma table 'mail' pour moi uniquement. Et c'est là que réside mon problème.
Mon script est le suivant :
Lorsque j'exécute le script, le message suivant s'affiche : "Notice: Undefined index: email in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\ajouteMails.php on line 34
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 <?php session_start(); $nom = $_SESSION['nom'] ; $prenom = $_SESSION['prenom'] ; require("utilitaire.php"); $connexion = connexion() ; debutpagehtml("Ajout d'une nouvelle adresse mail") ; affichemenu(); affichesession($nom, $prenom); affichetitre("Ajouter un mail à votre identifiant", 1, "center") ; $requete=mysql_query("SELECT adresse FROM identification, mail WHERE mail.id_etudiant=identification.id and prenom='$prenom' and nom='$nom'"); $mail=mysql_result($requete, 0); echo "<FORM action='ajouteMails.php' method='post'> <TABLE align='center' border='1'> <TR><TD colspan=3 align='left'><B><FONT color='#00BFFF'>Mail actuel : </FONT></B>$mail</TD></TR> <TR><TD align='left'><B><FONT color='#00BFFF'>Nouveau mail :</FONT></B></TD><TD><INPUT type='text' name='email'></TD><TD><BR><INPUT type='submit' value='ajouter'></TD></TR> </TABLE> </FORM>"; $req = "SELECT nom, prenom, id_etudiant FROM mail, identification WHERE mail.id_etudiant= identification.id and prenom='$prenom' and nom='$nom'" ; $res = mysql_query($req) ; while($ligne = mysql_fetch_object($res)) { $id_etudiant=$ligne->id_etudiant; $nom=$ligne->nom; $prenom=$ligne->prenom; } if (isset($nom) AND (isset($prenom))){ $reqinsert='INSERT INTO mail (id_etudiant,adresse) VALUES ("'.$id_etudiant.'","'.$_POST['email'].'")'; <= ligne 34 mysql_query ($reqinsert) or die ('Erreur SQL !'.$reqinsert.'<br />'.mysql_error()); mysql_close(); echo "Nouveau mail ajouté";} else {echo "Echec de l'ajout";} mysql_close($connexion) ; finpagehtml() ?>
Nouveau mail ajouté " Ce qui semble logique puisque dans mon input je n'ai pas encore préciser la nouvelle adresse mail.
Je l'ajoute donc, ça me met "Nouveau mail ajouté". C'est donc ce que je veux.
Le problème, c'est que quand je me connecte à ma base, 2 ajouts sont effectués : le premier, qui prend mon identifiant mais rien pour la nouvelle adresse (normal puisque pas renseigné) ; le second, qui prend cette fois-ci exactement ce que je veux (c'est-à-dire identifiant + mail).
Pourquoi est ce qu'il fait un insert dans ma base avant même que je lui renseigne mon nouveau mail ?
Merci à vous de prendre le temps sur cette question, et soyez cléments, je débute en php
Partager