Bonjour à tous,
Une âme charitable peut-elle m'aider à corriger et à compléter le formulaire de modification ci-joint qui fonctionne très bien. Cependant,je viens de constater que si ma mégarde ou oubli ,je tape un mauvais mdp ou prénom(pas de correspondance dans la bdd) je n'en suis pas avertie et en conséquence aucune modifications apportées. Où placer la requête pour checker le mot de passe et le prénom avec insertion du message de réussite ou d'échec?
Voilà, 8 jours que j'essaie sans succès.

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
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
if (!session_id()) session_start();//déclare l'ouverture d'une session si aucune n'a été déclarée auparavant.
if (isset($_POST['envoyer'])) {
    function Verif_magicquotes ($chaine){  // fonction qui applique stripslashes si get_magic_quotes_gpc() est activé
		if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
		return $chaine;
    } 
    $message = array();// Pour enregistrer les messages d'information
    $_SESSION['post_form']['message'] =& $message;// avec & on assigne $message à $_SESSION['post_form']['message'] c.a.d. tout changement dans $message sera répercuté dans $_SESSION['post_form']['message']
	$_SESSION['post_form']['motdepasse'] = $motdepasse = isset($_POST['motdepasse']) && trim($_POST['motdepasse']) != '' ? Verif_magicquotes(trim($_POST['motdepasse'])) : null;  
     $_SESSION['post_form']['prenom'] = $prenom = isset($_POST['prenom']) && trim($_POST['prenom']) != '' ? Verif_magicquotes(ucfirst(trim($_POST['prenom']))) : null;//ucfirst pour convertir le première lettre en majuscule
    $_SESSION['post_form']['nv_numtel'] = $nv_numtel = isset($_POST['nv_numtel']) && trim($_POST['nv_numtel']) != '' ? Verif_magicquotes(trim($_POST['nv_numtel'])) : null;
  $_SESSION['post_form']['ville'] = $ville = isset($_POST['ville']) && trim($_POST['ville']) != '' ? Verif_magicquotes(ucfirst(trim($_POST['ville']))) : null;//ucfirst pour convertir le première lettre en majuscule
    	if (! isset($motdepasse)){
		 $message[] = 'Veuillez indiquer votre mot de passe';
	}
	else{ 
		if(!preg_match('`^[a-zA-Z0-9]{6,18}$`',$motdepasse))
			//if (! preg_match('#^[a-zéèàçïêë]{3,12}$#i',$motdepasse))	{
				  $message[] = 'Le '. $motdepasse .' n\'est pas valide, recommencez !';   
			 }
		 }
	if (! isset($nv_numtel)){
		$message[] = 'Veuillez indiquer votre nouveau numéro de téléphone';
	}
	else{
		if (!(preg_match("#^0[1-8]([-. ]?[0-9]{2}){4}$#", $nv_numtel) || preg_match("#^0[1-8]([-. ]?[0-9]{1}){7}$#", $nv_numtel))){
			$message[] = 'Le '. $nv_numtel .' n\'est pas valide, recommencez !';   
		}
	}
	if (! isset($prenom)){
		$message[] = 'Veuillez indiquer votre prénom';
	}
	else{ 
		//if (!preg_match('/^[\p{L} ]+$/u',$prenom)) 
		if (! preg_match('#^[a-zéèàçïêë]{3,12}$#i',$prenom)){
			$message[] = 'Le '.$prenom.' n\'autorise que des lettres, recommencez !'; 
		}  
	if (! isset($ville)){
		$message[] = 'Veuillez indiquer la ville';
	}
	else{ 
		//if (!preg_match('/^[\p{L} ]+$/u',$prenom)) 
		if (! preg_match('#^[a-zéèàçïêë]{3,12}$#i',$ville)){
			$message[] = 'Le '.$ville.' n\'autorise que des lettres, recommencez !'; 
		}  
	}
}
if (isset($message) && count($message) == 0){
	 // Connexion à la base de données
	 try{
		$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
		$bdd = new PDO('mysql:host=localhost;dbname=forum', 'root', '', $pdo_options);
	  // Insertion du message à l'aide d'une requête préparée
		$req = $bdd-> prepare('UPDATE forum_membres SET membre_telephone=:nv_numtel, membre_localisation=:ville WHERE membre_pseudo=:prenom AND membre_mdp=:motdepasse'); 
		$req->execute(array('motdepasse' =>$motdepasse, 'prenom'=>$prenom, 'nv_numtel'=>$nv_numtel, ville=>$ville));
	 // Redirection du visiteur vers la page Index du site//
		header('Location:message.php');
	 }
	catch(Exception $e){
		die('Erreur : '.$e->getMessage());
	 }
}
}	
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formulaire de modification du n° de téléphone</title>
<style type="text/css">
<!--
.Style2 {
	font-size: 24px;
	font-weight: bold;
	color: #9933CC;
}
.Style6 {color: #000066}
-->
</style>
</head>
 
<body>
<span class="Style2"><u>Formulaire de modification du n° de téléphone </u></span>
<form method="post" class="Style6">
  <p>
      <label for="motdepasse">Votre mot de passe :</label>
         <input type="text" id="motdepasse" name="motdepasse" 
         value="<?php echo (isset($_POST['motdepasse'])) ? $motdepasse : '' ?>"  
         />
  </p>
    <p>
        <label for="prenom">Votre pseudo(pr) :</label>
        <input type="text" id="prenom" name="prenom" 
        value="<?php echo (isset($_POST['prenom'])) ? $prenom : '' ?>" 
        />
    <p>
        <label for="nv_numtel">Votre nouveau n°de téléphone :</label>
        <input type="text" id="nv_numtel" name="nv_numtel" 
        value="<?php echo (isset($_POST['nv_numtel'])) ? $nv_numtel : '' ?>" 
        />
    </p>
 
		<p>
        <label for="ville">Votre nouvelle adresse(ville):</label>
        <input type="text" id="ville" name="ville" 
        value="<?php echo (isset($_POST['ville'])) ? $ville : '' ?>" 
        />
    </p>
  <input type="submit" name = "envoyer" value="Envoyer" />
  </p>
</form>
<p><a href="index.php">Retour &agrave; l'accueil </a></p>
</body>
</html>
<?php
// Afficher les messages d'erreurs : champs vides ou non conformes//
if(isset($message) && count($message) > 0)
{
foreach($message as $value) echo '<p>'.$value.'</p>';
}
?>
Débutante je le reste, l'âge n'améliorant pas les choses.
Sincères remerciements pour votre aide
Claudine