bonjour,
Comme je l'ai dit j'ai téléchargé Php 5.6 et j'essaie d'adapter mes requêtes faites avec php 5.3 .
la première chose que je viens de voir sur le site https://www.developpez.net/forums/d1...eparee-update/ c'est qu'il faut éviter les doublons des noms et prénoms. Pour faire cela je demande donc d'ajouter un second prénom si le nom et le prénom existent déjà. Ce qui me semble peu probable pour un comité de jumelage qui compte une centaine de membres. mais bon !!

Donc la personne qui va insérer les membres ne saisira que le nom, le prénom et la nationalité.
Ensuite lorsqu'un membre veut se connecter pour la première fois il doit indiquer son nom et son prénom.
Je vérifie si les nom et prénom sont dans la bdd.
- Je récupère l'id, le prénom pour la SESSION
- Si oui j'insère son adresse mail et son mot de passe.
- Si non je lui demande de recommencer ou de contacter l'administrateur.

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
 
<?php
//include('connect.php');
include('fonctionsphp.php');
$message = "";
$message1 = "";
 
$nom = isset($_POST['nom']) ? $_POST['nom'] : "";
$prenom = isset($_POST['prenom']) ? $_POST['prenom'] : "";
$telephone = isset($_POST['telephone']) ? $_POST['telephone'] : "";
$mailFC = isset($_POST['mailFC']) ? $_POST['mailFC'] : "";
$mailbis = isset($_POST['mailbis']) ? $_POST['mailbis'] : "";
$passwordFC = isset($_POST['passwordFC']) ? $_POST['passwordFC'] : "";
$passwordbis = isset($_POST['passwordbis']) ? $_POST['passwordbis'] : "";
//vérifie l'adresse mail
if (!empty($_POST['mailFC'])){
	$adresse_mail = htmlentities($_POST['mailFC']);
	if(!VerifierAdresseMail($adresse_mail)){
  		$message = "L'adresse internet n'est pas valide";
	}
}
if (!empty($_POST['mailbis'])){
	$adresse_mail = htmlentities($_POST['mailbis']);
	if(!VerifierAdresseMail($adresse_mail)){
  		$message = "L'adresse internet n'est pas valide";
	}
}
if ((!empty($_POST['mailFC'])) && (!empty($_POST['mailbis']))) {
	if ($mailFC != $mailbis) {
		$message = "Les adresses mail sont différentes!";
	}
}
 
if ((!empty($_POST['passwordFC'])) && (!empty($_POST['passwordbis']))) {
	if ($passwordFC != $passwordbis) {
		$message = "Les mots de passe sont différents!";
	}
}
 
if (isset($_POST['Enregistrer'])){
	if ($message == ''){
		// connexion à la ba base de données
		$cnx = new PDO('mysql:host=127.0.0.1;dbname=jumelage;charset=utf8', 'root', '');
		$nom = $_POST['nom'];
		$nom = mb_strtoupper($nom,'UTF-8'); // met toutes les lettres en majuscule
		$prenom = $_POST['prenom'];
		$trouve = '-'; 
		$position = strpos($prenom, $trouve);//donne la position de la lettre suivant $trouve
		if ($position === false) { // si $trouve n'existe pas 
			$prenom = ucwords($prenom); // on met une majuscule à tous les noms
		}
		else {
			$split = explode("-", $prenom);
			$prenom1 = ucfirst($split[0]); 
			$prenom2 = ucfirst($split[1]); 
			$prenom = $prenom1."-".$prenom2;
		}
		// on cherche le nom et prenom dans la bdd
		$cnx = new PDO('mysql:host=127.0.0.1;dbname=jumelage;charset=utf8', 'root', '');
		// teste si les nom et le prénom sont déjà dans la base de données
		$sql = $cnx->prepare("SELECT * FROM membres WHERE nom = ? AND prenom = ? ");
		$sql->execute(array($nom, $prenom));
		$result = $sql->rowCount();
		if ($result == 1){
			$user_id = $result['id'];
			$_SESSION['utilisateur'] = $prenom;
			$_SESSION['id_utilisateur'] = $result['id'];
			$pass_hache = password_hash($passwordFC, PASSWORD_DEFAULT);
			$passwordFC = $pass_hache;
 
			//enregistre l'adresse mail et le mot de passe 
			$sql = new PDO("UPDATE membres SET telephone = :$telephone, mail = :$mailFC, password = :$passwordFC WHERE id = :$user_id");
			$sql->execute(array(
				'id' => $user_id,
				'telephone' => $telephone,
				'mail' => $mailFC,
				'password' => $passwordFC
				));
			$message1 = "Vos données sont bien enregistrés.";
		}
		else {
			$message = "Oups! Nous ne vous avons pas trouvé dans notre base!!<br />
			Merci de vérifier votre saisie ou contacter l'administrateur";
		}
 
	}
}
 
?>
 
 
<!------------------------------------------- PARTIE HTML---------------------------------->
<div id="divFirstConnect">
	<p class="pagereservee"> Espace réservé aux membres du jumelage </p><br />
	<p class="spanchoix">
		<a href='index.php?page=passoublie'style='margin-left:3em;' >Mot de passe oublié </a> 
		<a href='index.php?page=changemail' style='margin-left:2.2em;' >Changer mon adresse mail </a> 
		<a href='index.php?page=changepassw' style='margin-left:1.8em;' >Changer mon mot de passe </a><br /><br /> 
	</p>
	<p class="ptext">En tant que membre du jumelage votre nom et votre prénom ont été enregistrés. 
	Pour accéder aux pages vous devez saisir votre adresse mail et un mot de passe.</p>
	<FORM NAME="log" ACTION="index.php?page=firstconnect" METHOD="POST">
	    <table style="margin: 0 auto;">
		<tr class="trHeight"><td class="tdAlignRight">Nom &nbsp;</td><td class="tdAlignLeft">&nbsp;<input type="text" value="<?php echo $nom;?>" name="nom" id="nom" ></td></tr>
		<tr class="trHeight"><td class="tdAlignRight">Prénom &nbsp;</td><td class="tdAlignLeft">&nbsp;<input type="text" value="<?php echo $prenom;?>" name="prenom" id="prenom" ></td></tr>
		<tr class="trHeight"><td class="tdAlignRight">Téléphone &nbsp;</td><td class="tdAlignLeft">&nbsp;<input type="text" value="<?php echo $telephone;?>" name="telephone" id="telephone" ></td></tr>
		<tr class="trHeight"><td class="tdAlignRight">Adresse mail &nbsp;</td><td class="tdAlignLeft">&nbsp;<input type="text" value="<?php echo $mailFC;?>" name="mailFC" id="mail1" style="width:17em;"></td></tr>		
		<tr class="trHeight"><td class="tdAlignRight">Confirmez l'adresse mail &nbsp;</td> <td class="tdAlignLeft">&nbsp;<input type="text" value="<?php echo $mailbis;?>" name="mailbis" id="mail2" style="width:17em;"></td></tr>
		<tr class="trHeight"><td class="tdAlignRight">Mot de passe &nbsp;</td><td class="tdAlignLeft">&nbsp;<input type="password" value="<?php echo $passwordFC;?>" name="passwordFC" id="password1" ></td></tr>
		<tr class="trHeight"><td class="tdAlignRight">Confirmez le mot de passe &nbsp;</td><td class="tdAlignLeft">&nbsp;<input type="password" value="<?php echo $passwordbis;?>" name="passwordbis" id="password2" ></td></tr>
		<tr class="trHeight"><td colspan="2" style="text-align:center";><input type="submit" name="Enregistrer" value="Enregistrer" style="width:7em; cursor:pointer;" /> </td></tr>
	    </table>
		<p class="pcommunred"> <?php echo $message;?> </p>
		<p class="pcommunblue"> <?php echo $message1;?> </p>
 
	</FORM>
</div>
la partie SELECT semble fonctionner car je n'ai pas message d'erreur

Mais la requête UPDATE me génère ça

Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in
C:\Weblocal\Sites\Jumelage\fr\connexion\firstconnect.php:72 Stack trace: #0
C:\Weblocal\Sites\Jumelage\fr\connexion\firstconnect.php(72): PDO->__construct('UPDATE membres ...') #1
C:\Weblocal\Sites\Jumelage\index.php(170): include('C:\\Weblocal\\Sit...') #2 {main} thrown in
C:\Weblocal\Sites\Jumelage\fr\connexion\firstconnect.php on line 72

en cherchant sur internet il semble que cela provienne du fichier php.ini !!!

ok le tableau c'est pas très beau mais pour le moment je veux avancer !!