Bonjour,

objectif du code de ma page : donner la possibilité à l'utilisateur de modifier son adresse mail.
Je rencontre 2 problèmes :
Mon premier souci est que je voudrai afficher un message si je ne trouve pas l'adresse indiquée.
Mon deuxième souci est que je n'arrive pas à modifier l'enregistrement.

Le code de ma page :

Code php : 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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
//partie pour modification adresse mail
if (isset($_POST['id']))			$id = $_POST['id'];
else $id = "";
if (isset($_POST['mail_origine']))		$mail_origine = $_POST['mail_origine'];
else $mail_origine = "";
if (isset($_POST['mail_new']))			$mail_new = $_POST['mail_new'];
else $mail_new = "";
if (isset($_POST['mail_new1']))			$mail_new1 = $_POST['mail_new1'];
else $mail_new1 = "";
 
if (!empty($mail_new) && !empty($mail_new1)){
	if ($mail_new <> $mail_new1){
		$message = "Les adresses internet ne correspondent pas. Merci de recommencer.";
	}
} 
if (!empty($_POST['mail_new'])){
	$adresse_mail=htmlentities($_POST['mail_new']);
	if(!VerifierAdresseMail($adresse_mail)){
  		$message = "L'adresse internet n'est pas valide";
	}
}
if (isset($_POST['effacer'])){
	$mail_new = "";
	$mail_new1 = "";
}
if (isset($_POST['enregistrer'])){
	if (empty($message)){
		modifier_membre($mail);	
		$message1 = "Votre adresse mail a bien été modifiée";
	}
}
?>
<br><br>
<FORM NAME="modifier_mail" ACTION="index.php?page=devenir_membre" METHOD="post">
	<table border="0px" style="margin-left:45px">
		<tr height="35px">
			<td width="350px">Pour modifier votre adresse internet, indiquer <br>votre adresse internet actuelle puis valider </td>
			<td width="250px"><INPUT type="text" value="<?php echo $mail_origine; ?>" name="mail_origine" size="30"></td>
			<td width="100px"><input name="valider" type="image" value="submit" src="images/valider.png"></td>
		</tr>
		<tr height="35px"><td colspan = 2 >
			<?php 
			if (isset($_POST['valider'])){
				if (!empty($mail_origine)){
					$result = mysql_query("SELECT * FROM membres WHERE mail = '$mail_origine'");
					$row = mysql_fetch_row($result);?>
					<span style="color:blue"> Si vous êtes bien <span style= "font-weight: bold"><?php echo $row[3]; echo " ";
					echo  $row[2];?> </span> ,modifiez votre adresse ci-dessous, puis valider.</span> 
					<input type="text" name="id" value="<?php echo $row[0];?>"><?php
						}
					}?> </td>
 
		<tr height="35px"><td >Indiquer votre nouvelle adresse internet</td>
				<td width="250px"><INPUT type="text" value="<?php echo $mail_new; ?>" name="mail_new" size="30"></td>
		</tr>			
		<tr height="35px"><td>Confirmer votre nouvelle adresse internet</td>
				<td width="250px"><INPUT type="text" value="<?php echo $mail_new1; ?>" name="mail_new1" size="30"></td>
		</tr>
		<tr height="35px">
			<td align="center"><input name="effacer" src="images/annuler.png" value="submit" type="image" alt=""></td>
			<td align="center" id="menu"><input name="enregistrer" src="images/enregistrer.png" value="submit" type="image" alt="" ></td>
		</tr>		
	</table>
</form>
<?php
echo "<p style='margin-left:165px; color:red'>$message </p>";
echo "<p style='margin-left:165px; color:blue'>$message1 </p>";
$message = "";
$message1 = "";
?>

La requête qui ne fonctionne pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
// Modifier une adresse mail
function modifier_membre($mail){
	$sql = "UPDATE membres SET mail = '$mail_new' WHERE id = $id";
	mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}
J'obtiens les messages suivants :
Notice: Undefined variable: mail_new in C:\Weblocal\Sites\association-culturelle\fonctionsphp.php on line 26

Notice: Undefined variable: id in C:\Weblocal\Sites\association-culturelle\fonctionsphp.php on line 26
Erreur SQL !UPDATE membres SET mail = '' WHERE id =
Erreur de syntaxe près de '' à la ligne 1
Il y a bien longtemps que je n'ai pas travaillé sur les BDD !! Merci de votre indulgence
Et merci pour aide