bonjour,
Je rencontre un problème lorsque j'envoi mes données vers ma base de données. Je ne sais pas comment contourner le problème. J'ai lu sur d'autre problème que c'était parce que mon php n'était pas à jour (plus précisément qu'il fallait la version 5.5 pour que "password_default" puisse fonctionner. J'ai donc réinstaller une version plus récente mais rien n'y change... .
Message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Notice: Use of undefined constant password_default - assumed 'password_default' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\Nouveau dossier (2)\script_inscription.php on line 8 Warning: password_hash() expects parameter 2 to be long, string given in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\Nouveau dossier (2)\script_inscription.php on line 8 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\Nouveau dossier (2)\script_inscription.php:60 Stack trace: #0 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\Nouveau dossier (2)\script_inscription.php(60): PDOStatement->execute(Array) #1 {main} thrown in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\Nouveau dossier (2)\script_inscription.php on line 60Ma version de php est 5.5.8.
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 <?php $pass = 'mdp'; $hash = password_hash($pass, password_default); $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=fonctions', 'root', '', $pdo_options); $erreurs = []; if(empty($_POST['nom'])) { $erreurs[] = 'Veuillez entrer un nom'; } else { $stmt = $bdd->prepare('SELECT COUNT(*) FROM abonnes WHERE nom = :nom'); $stmt->execute(['nom' => $_POST['nom']]); if ($stmt->fetchColumn()) { $erreurs[] = 'Ce nom est déjà utilisé'; } } if(empty($_POST['Prénom'])) { $erreurs[] = 'Veuillez entrer un Prénom'; } if(empty($_POST['mdp'])) { $erreurs[] = 'Veuillez entrer un mot de passe'; } elseif($_POST['mdp'] != $_POST['mdp_confirm']) { $erreurs[] = 'mots de passes différents '; } if(empty($_POST['mail'])) { $erreurs[] = 'Veuillez entrer un mail'; } elseif($_POST['mail'] != $_POST['mail_confirm']) { $erreurs[] = 'les deux adresses emails sont différentes '; } if(empty($_POST['Adresse'])) { $erreurs[] = 'Veuillez entrer une Adresse'; } if(empty($_POST['CP'])) { $erreurs[] = 'Veuillez entrer un code postal'; } if(empty($_POST['Ville'])) { $erreurs[] = 'Veuillez entrer une ville'; } if ($erreurs) { echo '<ul><li>', implode('</li><li>', $erreurs), '</li></ul>'; } else { $req = $bdd->prepare('INSERT INTO abonnes(nom, Prénom, mdp, mail, Adresse, CP, Ville) VALUES(:nom, :Prénom, :mdp, :mail, :Adresse, :CP, :Ville)'); $req->execute([ 'nom' => $_POST['nom'], 'Prénom' => $_POST['Prénom'], 'mdp' => $_POST['mdp'], 'mail' => $_POST['mail'], 'Adresse' => $_POST['Adresse'], 'CP' => $_POST['CP'], 'Ville' => $_POST['Ville'], ]); header('Location: inscription.php'); } ?>
$version_easyphp = "14.1";
$version_apache = "2.4.7";
$version_php = "5.5.8 VC11";
$version_mysql = "5.6.15";
$version_phpmyadmin = "4.1.4";
$version_xdebug = "2.2.3";
?>
Merci d'avance à celui qui pourra m'aider!
Partager