Source php
seydou
-
^Abel^ Messages postés 15399 Date d'inscription Statut Contributeur Dernière intervention -
^Abel^ Messages postés 15399 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
ci-dessous le message d'erreur
ERROR :SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
EDIT : Ajout des balises de code
<?php try { $connect= new PDO("mysql:host=localhost; dbname=donnees; charset=utf8", 'root', ''); $connect->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); if ($connect) { echo "reussie!"; } $nom=htmlspecialchars($_POST['nom']); $prenom=htmlspecialchars($_POST['prenoms']); $email=htmlspecialchars($_POST['email']); $daten=htmlspecialchars($_POST['daten']); $fonction=htmlspecialchars($_POST['fonction']); $matricule=htmlspecialchars($_POST['matricule']); $mot_passe=sha1($_POST['password']); $confirmation=sha1($_POST['mdp']); $requete=$connect->prepare("INSERT INTO coordonnees(nom, prenoms, email, date_n, fonction, matricule, mot_passe, confirmation) VALUES (:nom, :prenoms, :email, :daten, :fonction, :matricule, :password, :mdp)"); $requete->execute(array('nom' => $nom , 'prenom' => $prenom , 'email' => $email , 'daten' => $daten , 'fonction' => $fonction , 'matricule' => $matricule , 'password' => $mot_passe , 'mdp' => $confirmation ,)); } catch (Exception $e) { die('ERROR :' .$e->getMessage()); } ?>
ci-dessous le message d'erreur
ERROR :SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
EDIT : Ajout des balises de code
A voir également:
- Source php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Qui regarde mon profil facebook code source - Guide
- Source tv antenne - Guide
- Php alert ✓ - Forum PHP
2 réponses
Bonjour,
Il y aurait beaucoup de choses à dire sur ton code....
Comme le fait qu'on n'utilise PAS la fonction htmlspecialchar pour insérer des données ( on ne s'en sert que pour de l'affichage !! )
mais déjà, concernant l'erreur.... c'est du au fait que tu n'as pas utilisé les même noms de variables dans la requete ET dans l'array de l'execute...
Voici
et on n’utilise pas le sha1 pour les passwords !
Désormais il faut passer par password_verify et password_hash.
(pour que ça fonctionne correctement il faut une version php supérieur à 5.5 )
https://www.php.net/manual/fr/function.password-hash.php
Dans l'idéal, on travaille désormais en php 7 ( 7.3 ) qui est trois fois plus rapide que la version php 5
Il y aurait beaucoup de choses à dire sur ton code....
Comme le fait qu'on n'utilise PAS la fonction htmlspecialchar pour insérer des données ( on ne s'en sert que pour de l'affichage !! )
mais déjà, concernant l'erreur.... c'est du au fait que tu n'as pas utilisé les même noms de variables dans la requete ET dans l'array de l'execute...
Voici
$sql = "INSERT INTO coordonnees(nom, prenoms, email, date_n, fonction, matricule, mot_passe, confirmation) VALUES (:nom, :prenoms, :email, :daten, :fonction, :matricule, :password, :mdp)"; $datas = array( ':nom' => $nom , ':prenoms' => $prenom , ':email' => $email , ':daten' => $daten , ':fonction' => $fonction , ':matricule' => $matricule , ':password' => $mot_passe , ':mdp' => $confirmation ); try{ $requete=$connect->prepare($sqm); $requete->execute($datas); }catch (Exception $e) { die('ERROR :' .$e->getMessage()); }
et on n’utilise pas le sha1 pour les passwords !
Désormais il faut passer par password_verify et password_hash.
(pour que ça fonctionne correctement il faut une version php supérieur à 5.5 )
https://www.php.net/manual/fr/function.password-hash.php
Dans l'idéal, on travaille désormais en php 7 ( 7.3 ) qui est trois fois plus rapide que la version php 5