Deux erreurs en ligne 58
Résolu/Fermé
janyduchemin
-
11 août 2021 à 16:33
janyduchemin Messages postés 36 Date d'inscription mercredi 13 mars 2019 Statut Membre Dernière intervention 6 septembre 2023 - 13 août 2021 à 01:28
janyduchemin Messages postés 36 Date d'inscription mercredi 13 mars 2019 Statut Membre Dernière intervention 6 septembre 2023 - 13 août 2021 à 01:28
A voir également:
- Deux erreurs en ligne 58
- Vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
- Deux comptes whatsapp - Guide
- Aller à la ligne excel - Guide
- Apparaitre hors ligne instagram - Guide
16 réponses
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
Modifié le 11 août 2021 à 17:06
Modifié le 11 août 2021 à 17:06
Bonjour,
Quel sont les messages d'erreur ?
Tu es sûr que l'erreur se trouve sur le fichier signup ?
Je pense que c'est dans DB ...
Par contre, la réponse se trouve au niveau du fichier signup.
Tu as une virgule en trop dans ton $data .
Et il est préférable de préfixer les clés par des ":"
Quel sont les messages d'erreur ?
Tu es sûr que l'erreur se trouve sur le fichier signup ?
Je pense que c'est dans DB ...
Par contre, la réponse se trouve au niveau du fichier signup.
Tu as une virgule en trop dans ton $data .
Et il est préférable de préfixer les clés par des ":"
$data = array( ':nom_prenom'=>$nom_prenom, ':ville'=>$ville, ':email'=>$email, ':password'=>$password, ':token'=>$token ); $sql ='INSERT INTO users (nom_prenom,ville,email,password,token) VALUES(:non_prenom, :ville, :email, :password, :token)'; $req= $DB->insert($sql , $data);
oui effectivement
Les erreurs que voici
(1- Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\ndameyong\Classes\Db.php on line 58
2 - ) Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number in C:\wamp\www\ndameyong\Classes\Db.php on line 58) viennenet du fichier Db.php.
Aussi j'ai reçu le message de mon serveur qui me disait que:
'' Un émail a été envoyé a votre messagerie avec des instructions pour activer votre compte''
Je suis un peu perdu
Les erreurs que voici
(1- Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\ndameyong\Classes\Db.php on line 58
2 - ) Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number in C:\wamp\www\ndameyong\Classes\Db.php on line 58) viennenet du fichier Db.php.
Aussi j'ai reçu le message de mon serveur qui me disait que:
'' Un émail a été envoyé a votre messagerie avec des instructions pour activer votre compte''
Je suis un peu perdu
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
11 août 2021 à 19:19
11 août 2021 à 19:19
As-tu corriger le code par rapport à ce que je t'ai donné ???
Bsr
j'ai retiré la virgule mais le problème est toujours là.
j'ai retiré la virgule mais le problème est toujours là.
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
12 août 2021 à 00:21
12 août 2021 à 00:21
Modifies ta fonction INSERT comme ceci
public function insert($sql , $data=array()){ try{ $req = $this->connexion->prepare($sql); return $req->execute($data); } catch(Exception $e){ echo 'Erreur : '. $e->getMessage(); echo '<br> Dans la requête :' . $sql; echo '<br> Avec les DATAS :'; var_dump($data); exit; } }
Salut
J'ai changer la fonction INSERT avec votre modification mais les mêmes erreurs persistent.
Pourtant mon serveur m''envoi ce message ( Un émail a été envoyé a votre messagerie avec des instructions pour activer votre compte)
J'ai changer la fonction INSERT avec votre modification mais les mêmes erreurs persistent.
Pourtant mon serveur m''envoi ce message ( Un émail a été envoyé a votre messagerie avec des instructions pour activer votre compte)
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
12 août 2021 à 08:08
12 août 2021 à 08:08
Tu as une erreur.. et d'autres infos normalement...
Il serait bien de nous en faire une capture d'écran..
Si ce n'est pas le cas . C'est que tu n'as pas modifié le bon fichier...
Il serait bien de nous en faire une capture d'écran..
Si ce n'est pas le cas . C'est que tu n'as pas modifié le bon fichier...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
janyduchemin
Messages postés
36
Date d'inscription
mercredi 13 mars 2019
Statut
Membre
Dernière intervention
6 septembre 2023
1
12 août 2021 à 10:32
12 août 2021 à 10:32
Bjr
je ne me suis pas trompé de fichier.
je vous envoi la capture d'écran de la page d'inscription (quand un utilisateur rempli le formulaire il reçoit un e-mail mais ces erreurs dont je parle apparaissent aussi
Db.php modifié
capture d'écran signup.php
je ne me suis pas trompé de fichier.
je vous envoi la capture d'écran de la page d'inscription (quand un utilisateur rempli le formulaire il reçoit un e-mail mais ces erreurs dont je parle apparaissent aussi
Db.php modifié
<?php require 'includes/includes.php'; ?> <?php if(!empty($_POST)){ if(!empty($_POST['password']) && ( filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) ) ){ $email= addslashes($_POST['email']); // modifier sha1 par Auth::hashPassword(); $password = Auth::hashPassword($_POST['password']); $token = sha1(uniqid(rand())); $nom_prenom=addslashes($_POST['nom_prenom']); $ville = addslashes($_POST['ville']); $reponse = $DB->uniqueEmail($email); if($reponse !=0){ $_SESSION['erreur'] = "Adresse email déja utilisée par un membre."; }else{ $data = array( 'nom_prenom'=>$nom_prenom, 'ville'=>$ville, 'email'=>$email, 'password'=>$password, 'token'=>$token ); $sql ='INSERT INTO users (nom_prenom,ville,email,password,token) VALUES(:non_prenom,:ville,:email,:password,:token)'; $req= $DB->insert($sql, $data); //envoi d'email. $mail_to =$email; $mail_subject =" Validation de votre compte !!"; $headers = "From : Ndameyong\r\n"; $headers.="Reply-To:nkoayos@gmail.com \r\n"; $headers.="MIME-Version 1.0\r\n"; $headers.="Content-type: text/html;charset=utf-8\r\n"; $mail_body ='Bonjour <br/> Veuillez ciquer sur <a href="http://localhost/ndameyong/activate.php?token='.$token.'&email='.$email.'"> le lien </a>pour activer votre compte '; if(mail($mail_to,$mail_subject,$mail_body,$headers)){ $_SESSION['message'] = " Un émail a été envoyé a votre méssagerie avec des instructions pour activer votre compte "; unset($_POST); }else{ $_SESSION['erreur'] = "Un problème est survenu lors de l'envoi d'email !."; } } }else{ if(empty($_POST['password'])){ $erreur_password ='Un mot de passe est requis !.'; $_SESSION['erreur'] = ' Veuillez corriger les érreurs .'; } if(empty($_POST['email'])){ $erreur_email ='Le champs email est requis !'; $_SESSION['erreur'] = ' Veuillez corriger les érreurs .'; }else if(!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) ){ $erreur_email ='Adresse Email non valide !'; $_SESSION['erreur'] = ' Veuillez corriger les érreurs .'; } } } ?> <!-- message de session --> <?php if (isset($_SESSION['message'])): ?> <div class="message"> <?php echo $_SESSION['message']; ?></div> <?php unset($_SESSION['message']) ?> <?php endif ?> <?php if (isset($_SESSION['erreur'])): ?> <div class="errorMessage"> <?php echo $_SESSION['erreur']; ?></div> <?php unset($_SESSION['erreur']) ?> <?php endif ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- reponsive meta--> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Création de compte || Ndameyong - L'Ecole des Langues Camerounaises</title> <!-- Font Icon --> <link rel="icon" type="image/png" sizes="16x16" href="favicon/favicon-16x16.png"> <link rel="stylesheet" href="fonts/material-icon/css/material-design-iconic-font.min.css"> <!-- Main css --> <link rel="stylesheet" href="css/signup.css"> </head> <body> <div class="main"> <section class="signup"> <!-- <img src="images/signup-bg.jpg" alt=""> --> <div class="container"> <div class="signup-content"> <form action="signup.php" method="post" id="signup"> <h2 class="form-title"><a href="index.php"><span class ="moi">accueil du site</span></span></a></h2> <div class="form-group"> <input type="text" class="form-input" name="nom_prenom" id="nom_prenom" value="<?php echo isset($_POST['nom_prenom'])?$_POST['nom_prenom']:''; ?>" placeholder="Nom & Prénom"/> </div> <div class="form-group"> <input type="text" class="form-input" name="ville" id="ville" value="<?php echo isset($_POST['ville'])?$_POST['ville']:''; ?>" placeholder="Ville de Résidence"/> </div> <div class="form-group"> <input type="email" class="form-input" class="required" name="email" id="email" value="<?php echo isset($_POST['email'])?$_POST['email']:''; ?>" placeholder="Votre E-mail"/> </div> <?php if (!empty($erreur_email)): ?> <div class="error"><?php echo $erreur_email; ?></div> <?php endif ?> <div class="form-group"> <input type="Password" class="form-input" class="required" name="password" id="password" placeholder="Password"/> <span toggle="#password" class="zmdi zmdi-eye field-icon toggle-password"></span> </div> <?php if (!empty($erreur_password)): ?> <div class="error"><?php echo $erreur_password; ?></div> <?php endif ?> <p class="information">* Tous les champs sont requis</p> <div class="form-group"> <input type="checkbox" name="agree-term" id="agree-term" class="agree-term" /> <label for="agree-term" class="label-agree-term"><span><span></span></span>Je m'inscris et je deviens membre de l'association Ndameyong <a href="statut_reglement.php" class="term-service">Statut & Règlement</a></label> </div> <div class="form-group"> <input type="submit" name="submit" id="submit" class="form-submit" value="Sign up"/> </div> </form> <p class="loginhere"> Déja Membre ? <a href="login.php" class="loginhere-link">Connecte-toi ici</a> </p> </div> </div> </section> </div> <!-- JS --> <script src="vendor/jquery/jquery.min.js"></script> <script src="js/main.js"></script> </body> </html>
capture d'écran signup.php
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
12 août 2021 à 10:41
12 août 2021 à 10:41
Alors ...
Non seulement.. ce n'est pas le fichier Db que tu nous montres ....
Mais en plus.. tu n'as pas repris le code Exact que je t'avais donné pour celui la ..
Donc :
Modifie correctement le fichier Signup en reprenant ce que je t'avais donné
Et montres nous le fichier Db modifié ( là aussi en reprenant très précisément ce que je t'avais donné )
Une fois que ça sera fait... tu verras que l'affichage de ta page ne sera plus du tout pareil en cas d'erreur...
Non seulement.. ce n'est pas le fichier Db que tu nous montres ....
Mais en plus.. tu n'as pas repris le code Exact que je t'avais donné pour celui la ..
Donc :
Modifie correctement le fichier Signup en reprenant ce que je t'avais donné
Et montres nous le fichier Db modifié ( là aussi en reprenant très précisément ce que je t'avais donné )
Une fois que ça sera fait... tu verras que l'affichage de ta page ne sera plus du tout pareil en cas d'erreur...
janyduchemin
Messages postés
36
Date d'inscription
mercredi 13 mars 2019
Statut
Membre
Dernière intervention
6 septembre 2023
1
12 août 2021 à 11:00
12 août 2021 à 11:00
Salut,
les fichiers modifiés
signup.php
Db.php
les fichiers modifiés
signup.php
<?php require 'includes/includes.php'; ?> <?php if(!empty($_POST)){ if(!empty($_POST['password']) && ( filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) ) ){ $email= addslashes($_POST['email']); // modifier sha1 par Auth::hashPassword(); $password = Auth::hashPassword($_POST['password']); $token = sha1(uniqid(rand())); $nom_prenom=addslashes($_POST['nom_prenom']); $ville = addslashes($_POST['ville']); $reponse = $DB->uniqueEmail($email); if($reponse !=0){ $_SESSION['erreur'] = "Adresse email déja utilisée par un membre."; }else{ $data = array( ':nom_prenom'=>$nom_prenom, ':ville'=>$ville, ':email'=>$email, ':password'=>$password, ':token'=>$token ); $sql ='INSERT INTO users (nom_prenom,ville,email,password,token) VALUES(:non_prenom, :ville, :email, :password, :token)'; $req= $DB->insert($sql , $data); //envoi d'email. $mail_to =$email; $mail_subject =" Validation de votre compte !!"; $headers = "From : Ndameyong\r\n"; $headers.="Reply-To:nkoayos@gmail.com \r\n"; $headers.="MIME-Version 1.0\r\n"; $headers.="Content-type: text/html;charset=utf-8\r\n"; $mail_body ='Bonjour <br/> Veuillez ciquer sur <a href="http://localhost/ndameyong/activate.php?token='.$token.'&email='.$email.'"> le lien </a>pour activer votre compte '; if(mail($mail_to,$mail_subject,$mail_body,$headers)){ $_SESSION['message'] = " Un émail a été envoyé a votre méssagerie avec des instructions pour activer votre compte "; unset($_POST); }else{ $_SESSION['erreur'] = "Un problème est survenu lors de l'envoi d'email !."; } } }else{ if(empty($_POST['password'])){ $erreur_password ='Un mot de passe est requis !.'; $_SESSION['erreur'] = ' Veuillez corriger les érreurs .'; } if(empty($_POST['email'])){ $erreur_email ='Le champs email est requis !'; $_SESSION['erreur'] = ' Veuillez corriger les érreurs .'; }else if(!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) ){ $erreur_email ='Adresse Email non valide !'; $_SESSION['erreur'] = ' Veuillez corriger les érreurs .'; } } } ?> <!-- message de session --> <?php if (isset($_SESSION['message'])): ?> <div class="message"> <?php echo $_SESSION['message']; ?></div> <?php unset($_SESSION['message']) ?> <?php endif ?> <?php if (isset($_SESSION['erreur'])): ?> <div class="errorMessage"> <?php echo $_SESSION['erreur']; ?></div> <?php unset($_SESSION['erreur']) ?> <?php endif ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- reponsive meta--> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Création de compte || Ndameyong - L'Ecole des Langues Camerounaises</title> <!-- Font Icon --> <link rel="icon" type="image/png" sizes="16x16" href="favicon/favicon-16x16.png"> <link rel="stylesheet" href="fonts/material-icon/css/material-design-iconic-font.min.css"> <!-- Main css --> <link rel="stylesheet" href="css/signup.css"> </head> <body> <div class="main"> <section class="signup"> <!-- <img src="images/signup-bg.jpg" alt=""> --> <div class="container"> <div class="signup-content"> <form action="signup.php" method="post" id="signup"> <h2 class="form-title"><a href="index.php"><span class ="moi">accueil du site</span></span></a></h2> <div class="form-group"> <input type="text" class="form-input" name="nom_prenom" id="nom_prenom" value="<?php echo isset($_POST['nom_prenom'])?$_POST['nom_prenom']:''; ?>" placeholder="Nom & Prénom"/> </div> <div class="form-group"> <input type="text" class="form-input" name="ville" id="ville" value="<?php echo isset($_POST['ville'])?$_POST['ville']:''; ?>" placeholder="Ville de Résidence"/> </div> <div class="form-group"> <input type="email" class="form-input" class="required" name="email" id="email" value="<?php echo isset($_POST['email'])?$_POST['email']:''; ?>" placeholder="Votre E-mail"/> </div> <?php if (!empty($erreur_email)): ?> <div class="error"><?php echo $erreur_email; ?></div> <?php endif ?> <div class="form-group"> <input type="Password" class="form-input" class="required" name="password" id="password" placeholder="Password"/> <span toggle="#password" class="zmdi zmdi-eye field-icon toggle-password"></span> </div> <?php if (!empty($erreur_password)): ?> <div class="error"><?php echo $erreur_password; ?></div> <?php endif ?> <p class="information">* Tous les champs sont requis</p> <div class="form-group"> <input type="checkbox" name="agree-term" id="agree-term" class="agree-term" /> <label for="agree-term" class="label-agree-term"><span><span></span></span>Je m'inscris et je deviens membre de l'association Ndameyong <a href="statut_reglement.php" class="term-service">Statut & Règlement</a></label> </div> <div class="form-group"> <input type="submit" name="submit" id="submit" class="form-submit" value="Sign up"/> </div> </form> <p class="loginhere"> Déja Membre ? <a href="login.php" class="loginhere-link">Connecte-toi ici</a> </p> </div> </div> </section> </div> <!-- JS --> <script src="vendor/jquery/jquery.min.js"></script> <script src="js/main.js"></script> </body> </html>
Db.php
<?php /** * Gestion de la base de données */ class Db{ private $host=HOST; private $name=DBNAME; private $user=USER; private $pass=PWD; private $connexion; function __construct($host=null,$name=null,$user=null,$pass=null){ if($host != null){ $this->host = $host; $this->name = $name; $this->user = $user; $this->pass = $pass; } try{ $this->connexion = new PDO('mysql:host='.$this->host.';dbname='.$this->name, $this->user,$this->pass,array( 1002 =>'SET NAMES UTF8', PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING )); $this->connexion->exec('SET NAMES utf8'); //PDO::MYSQL_ATTR_INIT_COMMAND }catch (PDOException $e){ //echo 'Erreur : Impossible de se connecter à la BD !';die(); echo $e->getMessage(); } } /* requete */ public function query($sql , $data=array()){ $req = $this->connexion->prepare($sql); $req->execute($data); return $req->fetchAll(PDO::FETCH_OBJ); } public function tquery($sql , $data=array()){ $req = $this->connexion->prepare($sql); $req->execute($data); return $req->fetchAll(PDO::FETCH_ASSOC); } public function insert($sql , $data=array()){ try{ $req = $this->connexion->prepare($sql); return $req->execute($data); } catch(Exception $e){ echo 'Erreur : '. $e->getMessage(); echo '<br> Dans la requête :' . $sql; echo '<br> Avec les DATAS :'; var_dump($data); exit; } } public function exec($sql , $data=array()){ try{ $req = $this->connexion->prepare($sql); $req->execute($data); return $req->rowCount(); // Retourne le nombre de lignes impactées par la reuqête }catch(Exception $e){ echo 'Erreur : ' . $e->getMessage(); // en cas d'erreur dans la requête ! } } public function deleteuser($id){ $sql = 'DELETE FROM users WHERE id=:id'; $data = [':id'=>$id]; return $DB->exec($sql , $data) ; } public function uniqueEmail($email){ $req = $this->connexion->prepare('SELECT count(*) as nbre from users WHERE email=:email limit 1'); $req->execute(array('email'=>$email)); $reponse = $req->fetchAll(PDO::FETCH_ASSOC); return $reponse[0]['nbre']; } }
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
12 août 2021 à 11:03
12 août 2021 à 11:03
et donc, maintenant ?
Tu as quoi qui s'affiche ? Toujours des erreurs ? Si oui, toujours le même message ??
Pourrais tu, également nous donner le lien vers cette page ?
Tu as quoi qui s'affiche ? Toujours des erreurs ? Si oui, toujours le même message ??
Pourrais tu, également nous donner le lien vers cette page ?
janyduchemin
Messages postés
36
Date d'inscription
mercredi 13 mars 2019
Statut
Membre
Dernière intervention
6 septembre 2023
1
12 août 2021 à 14:04
12 août 2021 à 14:04
Salut,
J'ai toujours des erreurs....Voilà ce qui s'affiche:
1) Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\ndameyong\Classes\Db.php on line 58
2) Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number in C:\wamp\www\ndameyong\Classes\Db.php on line 58
Pour le lien de la page étant en local je ne pense pas que le lien de cette page puisse s'ouvrir chez vous (http://127.0.0.1/ndameyong/signup.php)
je vous ai fait la capture de l’écran de la page singup.php
J'ai toujours des erreurs....Voilà ce qui s'affiche:
1) Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\ndameyong\Classes\Db.php on line 58
2) Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number in C:\wamp\www\ndameyong\Classes\Db.php on line 58
Pour le lien de la page étant en local je ne pense pas que le lien de cette page puisse s'ouvrir chez vous (http://127.0.0.1/ndameyong/signup.php)
je vous ai fait la capture de l’écran de la page singup.php
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
12 août 2021 à 14:21
12 août 2021 à 14:21
En local, je n'y aurais pas accès c'est clair...
Par contre,
Vu le code que je t'ai donné .... tu devrais avoir une page blanche avec le message d'erreur et des infos complémentaires...
La page que tu nous montres ne peut clairement pas être celle contenant le code que je t'ai donné..
Soit tu ne modofies pas le bon fichier .. soit tu as un cache quelque part...
Peux tu arrêter et relancer ton logiciel ( wamp, xampp, laragon.. ) et retester ?
Et, pour être sûr, peux tu modifier le fichier signup en ajoutant un exit après le insert ( comme ceci : )
Si malgré ce "exit" .. tu as encore la même page qui s'affiche.. c'est que clairement tu n'es pas dans les bons fichiers !!
Par contre,
Vu le code que je t'ai donné .... tu devrais avoir une page blanche avec le message d'erreur et des infos complémentaires...
La page que tu nous montres ne peut clairement pas être celle contenant le code que je t'ai donné..
Soit tu ne modofies pas le bon fichier .. soit tu as un cache quelque part...
Peux tu arrêter et relancer ton logiciel ( wamp, xampp, laragon.. ) et retester ?
Et, pour être sûr, peux tu modifier le fichier signup en ajoutant un exit après le insert ( comme ceci : )
$data = array( ':nom_prenom'=>$nom_prenom, ':ville'=>$ville, ':email'=>$email, ':password'=>$password, ':token'=>$token ); $sql ='INSERT INTO users (nom_prenom,ville,email,password,token) VALUES(:non_prenom, :ville, :email, :password, :token)'; $req= $DB->insert($sql , $data); exit("TEST"); //envoi d'email.
Si malgré ce "exit" .. tu as encore la même page qui s'affiche.. c'est que clairement tu n'es pas dans les bons fichiers !!
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
>
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
12 août 2021 à 14:21
12 août 2021 à 14:21
et au fait .. tu as cette erreur APRES avoir renseigné le formulaire .. ou avant ???
janyduchemin
Messages postés
36
Date d'inscription
mercredi 13 mars 2019
Statut
Membre
Dernière intervention
6 septembre 2023
1
12 août 2021 à 14:46
12 août 2021 à 14:46
Salut,
je viens de remodifier le fichier signup en ajoutant exit ("TEST") et la j'ai la page blanche avec les messages d'erreurs
1) Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\ndameyong\Classes\Db.php on line 58
2) Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number in C:\wamp\www\ndameyong\Classes\Db.php on line 58
Les erreurs apparaissent APRES avoir renseigné le formulaire
je viens de remodifier le fichier signup en ajoutant exit ("TEST") et la j'ai la page blanche avec les messages d'erreurs
1) Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\ndameyong\Classes\Db.php on line 58
2) Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number in C:\wamp\www\ndameyong\Classes\Db.php on line 58
Les erreurs apparaissent APRES avoir renseigné le formulaire
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
12 août 2021 à 14:54
12 août 2021 à 14:54
Tu es certain de modifier le bon fichier Db.php ??
Peux tu vérifier que tu n'en as pas un second qui traine quelque part et donc que tu ne modifies pas celui qui est appellé par ton script actuel ???
Tu as redémarré le logiciel comme je te l'ai demandé ??
Et à la limite.. pour être certain que tu édites le bon fichier db .... on va essayer de provoquer une erreur volontairement...
Donc, à la place de
Après ça.. si tu n'as pas d'erreur.. c'est que tu ne modifies clairement pas le bon fichier !!
Peux tu vérifier que tu n'en as pas un second qui traine quelque part et donc que tu ne modifies pas celui qui est appellé par ton script actuel ???
Tu as redémarré le logiciel comme je te l'ai demandé ??
Et à la limite.. pour être certain que tu édites le bon fichier db .... on va essayer de provoquer une erreur volontairement...
Donc, à la place de
class Db{tu vas écrire :
class Db_err{
Après ça.. si tu n'as pas d'erreur.. c'est que tu ne modifies clairement pas le bon fichier !!
janyduchemin
Messages postés
36
Date d'inscription
mercredi 13 mars 2019
Statut
Membre
Dernière intervention
6 septembre 2023
1
12 août 2021 à 15:01
12 août 2021 à 15:01
Je viens de remplacer class Db{ par class Db_err{
et j'ai ces erreurs
1) Fatal error: Uncaught Error: Class 'Db' not found in C:\wamp\www\ndameyong\includes\includes.php on line 6
2) Error: Class 'Db' not found in C:\wamp\www\ndameyong\includes\includes.php on line 6
et j'ai ces erreurs
1) Fatal error: Uncaught Error: Class 'Db' not found in C:\wamp\www\ndameyong\includes\includes.php on line 6
2) Error: Class 'Db' not found in C:\wamp\www\ndameyong\includes\includes.php on line 6
janyduchemin
Messages postés
36
Date d'inscription
mercredi 13 mars 2019
Statut
Membre
Dernière intervention
6 septembre 2023
1
12 août 2021 à 15:11
12 août 2021 à 15:11
Cependant j'ai une question,
Etant en local j'ai parametré php ini et sendmail avec une seul adresse gmail et un mot de passe. Avec ces informations, l'utilisateur admin se connecte sans problème, Cependant quand j'essaye d'inscrire un autre usager j'ai ces messages d'erreurs qui apparaissent du coup j'ai peur qu'en mettant ce site en ligne que les gens ne puissent pas s'inscrire.
Etant en local j'ai parametré php ini et sendmail avec une seul adresse gmail et un mot de passe. Avec ces informations, l'utilisateur admin se connecte sans problème, Cependant quand j'essaye d'inscrire un autre usager j'ai ces messages d'erreurs qui apparaissent du coup j'ai peur qu'en mettant ce site en ligne que les gens ne puissent pas s'inscrire.
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
12 août 2021 à 16:04
12 août 2021 à 16:04
Peux tu remplacer ta class Db par celle la :
Et dans ton signup.php, remplacer le code par ça
<?php /** * Gestion de la base de données */ class Db { private $host = HOST; private $name = DBNAME; private $user = USER; private $pass = PWD; private $connexion; function __construct($host = null, $name = null, $user = null, $pass = null) { if ($host != null) { $this->host = $host; $this->name = $name; $this->user = $user; $this->pass = $pass; } try { $this->connexion = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->name, $this->user, $this->pass); // Activation des erreurs PDO $this->connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $this->connexion->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch (PDOException $e) { die('Erreur : ' . $e->getMessage()); } } private function dbQuery($sql,$data=NULL){ try { $prep = $this->connexion->prepare($sql); return $prep->execute($data); } catch (Exception $e) { echo 'Erreur : ' . $e->getMessage(); echo '<br> Dans la requête :' . $sql; echo '<br> Avec les DATAS :'; var_dump($data); exit; } } /* requete */ public function query($sql, $data = array()) { $req = $this->connexion->prepare($sql); $req->execute($data); return $req->fetchAll(PDO::FETCH_OBJ); } public function tquery($sql, $data = array()) { $req = $this->dbQuery($sql,$data); return $req->fetchAll(PDO::FETCH_ASSOC); } public function insert($sql, $data = array()) { return $this->dbQuery($sql,$data); } public function exec($sql, $data = array()) { try { $req = $this->dbQuery($sql,$data); return $req->rowCount(); // Retourne le nombre de lignes impactées par la reuqête } catch (Exception $e) { echo 'Erreur : ' . $e->getMessage(); // en cas d'erreur dans la requête ! } } public function deleteuser($id) { $sql = 'DELETE FROM users WHERE id=:id'; $data = [':id' => $id]; return $this->exec($sql, $data); } public function uniqueEmail($email) { $sql = 'SELECT count(*) as nbre from users WHERE email=:email limit 1'; $data = array(':email' => $email); $req = $this->dbQuery($sql,$data); $reponse = $req->fetch(PDO::FETCH_ASSOC); return !empty($reponse['nbre']) ? $reponse['nbre'] : 0; } public function createUser($nom_prenom,$ville,$email,$password,$token){ $data = array( 'nom_prenom'=>$nom_prenom, 'ville'=>$ville, 'email'=>$email, 'password'=>$password, 'token'=>$token, ); $sql ='INSERT INTO users (nom_prenom,ville,email,password,token) VALUES(:non_prenom,:ville,:email,:password,:token)'; return $this->dbQuery($sql,$data); } }
Et dans ton signup.php, remplacer le code par ça
<?php require 'includes/includes.php'; //récupération PROPRE des variables AVANT de les utiliser $email = !empty($_POST['email']) ? addslashes(trim($_POST['email'])) : ""; $password = !empty($_POST['password']) ? addslashes(trim($_POST['password'])) : ""; $nom_prenom = !empty($_POST['nom_prenom']) ? addslashes($_POST['nom_prenom']) : ""; $ville = !empty($_POST['ville']) ? addslashes($_POST['ville']) : ""; if (!empty($_POST['email'])) { if (!empty($_POST['password']) && ( filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) )) { $password = Auth::hashPassword($password); $token = sha1(uniqid(rand())); $reponse = $DB->uniqueEmail($email); if ($reponse != 0) { $_SESSION['erreur'] = "Adresse email déja utilisée par un membre."; } else { $createUser = $BD->createUser($nom_prenom, $ville, $email, $password, $token); if ($createUser) { //envoi d'email. $mail_to = $email; $mail_subject = " Validation de votre compte !!"; $headers = "From : Ndameyong\r\n"; $headers .= "Reply-To:nkoayos@gmail.com \r\n"; $headers .= "MIME-Version 1.0\r\n"; $headers .= "Content-type: text/html;charset=utf-8\r\n"; $mail_body = 'Bonjour <br/> Veuillez ciquer sur <a href="http://localhost/ndameyong/activate.php?token=' . $token . '&email=' . $email . '"> le lien </a>pour activer votre compte '; if (mail($mail_to, $mail_subject, $mail_body, $headers)) { $_SESSION['message'] = " Un émail a été envoyé a votre méssagerie avec des instructions pour activer votre compte "; unset($_POST); } else { $_SESSION['erreur'] = "Un problème est survenu lors de l'envoi d'email !."; } } else { echo "Erreur lors de la création de l'utilisateur !"; exit('Error!!!'; ) } } } else { if (empty($_POST['password'])) { $erreur_password = 'Un mot de passe est requis !.'; $_SESSION['erreur'] = ' Veuillez corriger les érreurs .'; } if (empty($_POST['email'])) { $erreur_email = 'Le champs email est requis !'; $_SESSION['erreur'] = ' Veuillez corriger les érreurs .'; } else if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $erreur_email = 'Adresse Email non valide !'; $_SESSION['erreur'] = ' Veuillez corriger les érreurs .'; } } } ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- reponsive meta--> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Création de compte || Ndameyong - L'Ecole des Langues Camerounaises</title> <!-- Font Icon --> <link rel="icon" type="image/png" sizes="16x16" href="favicon/favicon-16x16.png"> <link rel="stylesheet" href="fonts/material-icon/css/material-design-iconic-font.min.css"> <!-- Main css --> <link rel="stylesheet" href="css/signup.css"> </head> <body> <!-- message de session --> <?php if (isset($_SESSION['message'])): ?> <div class="message"> <?php echo $_SESSION['message']; ?></div> <?php unset($_SESSION['message']) ?> <?php endif ?> <?php if (isset($_SESSION['erreur'])): ?> <div class="errorMessage"> <?php echo $_SESSION['erreur']; ?></div> <?php unset($_SESSION['erreur']) ?> <?php endif ?> <div class="main"> <section class="signup"> <!-- <img src="images/signup-bg.jpg" alt=""> --> <div class="container"> <div class="signup-content"> <form action="" method="post" id="signup"> <h2 class="form-title"><a href="index.php"><span class ="moi">accueil du site</span></span></a></h2> <div class="form-group"> <input type="text" class="form-input" name="nom_prenom" id="nom_prenom" value="<?php echo $nom_prenom; ?>" placeholder="Nom & Prénom"/> </div> <div class="form-group"> <input type="text" class="form-input" name="ville" id="ville" value="<?php echo $ville; ?>" placeholder="Ville de Résidence"/> </div> <div class="form-group"> <input type="email" class="form-input" class="required" name="email" id="email" value="<?php echo $email; ?>" placeholder="Votre E-mail"/> </div> <?php if (!empty($erreur_email)): ?> <div class="error"><?php echo $erreur_email; ?></div> <?php endif ?> <div class="form-group"> <input type="Password" class="form-input" class="required" name="password" id="password" placeholder="Password"/> <span toggle="#password" class="zmdi zmdi-eye field-icon toggle-password"></span> </div> <?php if (!empty($erreur_password)): ?> <div class="error"><?php echo $erreur_password; ?></div> <?php endif ?> <p class="information">* Tous les champs sont requis</p> <div class="form-group"> <input type="checkbox" name="agree-term" id="agree-term" class="agree-term" /> <label for="agree-term" class="label-agree-term"><span><span></span></span>Je m'inscris et je deviens membre de l'association Ndameyong <a href="statut_reglement.php" class="term-service">Statut & Règlement</a></label> </div> <div class="form-group"> <input type="submit" name="submit" id="submit" class="form-submit" value="Sign up"/> </div> </form> <p class="loginhere"> Déja Membre ? <a href="login.php" class="loginhere-link">Connecte-toi ici</a> </p> </div> </div> </section> </div> <!-- JS --> <script src="vendor/jquery/jquery.min.js"></script> <script src="js/main.js"></script> </body> </html>
janyduchemin
Messages postés
36
Date d'inscription
mercredi 13 mars 2019
Statut
Membre
Dernière intervention
6 septembre 2023
1
12 août 2021 à 19:44
12 août 2021 à 19:44
Bsr,
Je reviens vers vous après avoir fait des changements. Cependant, des erreurs sont apparues:
1) il est impossible de se connecter sur le site
- Fatal error: Uncaught Error: Call to a member function fetchAll() on bool in C:\wamp\www\ndameyong\Classes\Db.php on line 56
- Error: Call to a member function fetchAll() on bool in C:\wamp\www\ndameyong\Classes\Db.php on line 56
2) en essayant de valider le formulaire d'inscription, deux erreurs apparaissent dans la bdd
- Fatal error: Uncaught Error: Call to a member function fetch() on bool in C:\wamp\www\ndameyong\Classes\Db.php on line 82
- Error: Call to a member function fetch() on bool in C:\wamp\www\ndameyong\Classes\Db.php on line 82
signup.php
Db.php
Je reviens vers vous après avoir fait des changements. Cependant, des erreurs sont apparues:
1) il est impossible de se connecter sur le site
- Fatal error: Uncaught Error: Call to a member function fetchAll() on bool in C:\wamp\www\ndameyong\Classes\Db.php on line 56
- Error: Call to a member function fetchAll() on bool in C:\wamp\www\ndameyong\Classes\Db.php on line 56
2) en essayant de valider le formulaire d'inscription, deux erreurs apparaissent dans la bdd
- Fatal error: Uncaught Error: Call to a member function fetch() on bool in C:\wamp\www\ndameyong\Classes\Db.php on line 82
- Error: Call to a member function fetch() on bool in C:\wamp\www\ndameyong\Classes\Db.php on line 82
signup.php
<?php require 'includes/includes.php'; //récupération PROPRE des variables AVANT de les utiliser $email = !empty($_POST['email']) ? addslashes(trim($_POST['email'])) : ""; $password = !empty($_POST['password']) ? addslashes(trim($_POST['password'])) : ""; $nom_prenom = !empty($_POST['nom_prenom']) ? addslashes($_POST['nom_prenom']) : ""; $ville = !empty($_POST['ville']) ? addslashes($_POST['ville']) : ""; if (!empty($_POST['email'])) { if (!empty($_POST['password']) && ( filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) )) { $password = Auth::hashPassword($password); $token = sha1(uniqid(rand())); $reponse = $DB->uniqueEmail($email); if ($reponse != 0) { $_SESSION['erreur'] = "Adresse email déja utilisée par un membre."; } else { $createUser = $BD->createUser($nom_prenom, $ville, $email, $password, $token); if ($createUser) { //envoi d'email. $mail_to = $email; $mail_subject = " Validation de votre compte !!"; $headers = "From : Ndameyong\r\n"; $headers .= "Reply-To:nkoayos@gmail.com \r\n"; $headers .= "MIME-Version 1.0\r\n"; $headers .= "Content-type: text/html;charset=utf-8\r\n"; $mail_body = 'Bonjour <br/> Veuillez ciquer sur <a href="http://localhost/ndameyong/activate.php?token=' . $token . '&email=' . $email . '"> le lien </a>pour activer votre compte '; if (mail($mail_to, $mail_subject, $mail_body, $headers)) { $_SESSION['message'] = " Un émail a été envoyé a votre méssagerie avec des instructions pour activer votre compte "; unset($_POST); } else { $_SESSION['erreur'] = "Un problème est survenu lors de l'envoi d'email !."; } } else { echo "Erreur lors de la création de l'utilisateur !"; exit('Error!!!'); } } } else { if (empty($_POST['password'])) { $erreur_password = 'Un mot de passe est requis !.'; $_SESSION['erreur'] = ' Veuillez corriger les érreurs .'; } if (empty($_POST['email'])) { $erreur_email = 'Le champs email est requis !'; $_SESSION['erreur'] = ' Veuillez corriger les érreurs .'; } else if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $erreur_email = 'Adresse Email non valide !'; $_SESSION['erreur'] = ' Veuillez corriger les érreurs .'; } } } ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- reponsive meta--> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Création de compte || Ndameyong - L'Ecole des Langues Camerounaises</title> <!-- Font Icon --> <link rel="icon" type="image/png" sizes="16x16" href="favicon/favicon-16x16.png"> <link rel="stylesheet" href="fonts/material-icon/css/material-design-iconic-font.min.css"> <!-- Main css --> <link rel="stylesheet" href="css/signup.css"> </head> <body> <!-- message de session --> <?php if (isset($_SESSION['message'])): ?> <div class="message"> <?php echo $_SESSION['message']; ?></div> <?php unset($_SESSION['message']) ?> <?php endif ?> <?php if (isset($_SESSION['erreur'])): ?> <div class="errorMessage"> <?php echo $_SESSION['erreur']; ?></div> <?php unset($_SESSION['erreur']) ?> <?php endif ?> <div class="main"> <section class="signup"> <!-- <img src="images/signup-bg.jpg" alt=""> --> <div class="container"> <div class="signup-content"> <form action="" method="post" id="signup"> <h2 class="form-title"><a href="index.php"><span class ="moi">accueil du site</span></span></a></h2> <div class="form-group"> <input type="text" class="form-input" name="nom_prenom" id="nom_prenom" value="<?php echo $nom_prenom; ?>" placeholder="Nom & Prénom"/> </div> <div class="form-group"> <input type="text" class="form-input" name="ville" id="ville" value="<?php echo $ville; ?>" placeholder="Ville de Résidence"/> </div> <div class="form-group"> <input type="email" class="form-input" class="required" name="email" id="email" value="<?php echo $email; ?>" placeholder="Votre E-mail"/> </div> <?php if (!empty($erreur_email)): ?> <div class="error"><?php echo $erreur_email; ?></div> <?php endif ?> <div class="form-group"> <input type="Password" class="form-input" class="required" name="password" id="password" placeholder="Password"/> <span toggle="#password" class="zmdi zmdi-eye field-icon toggle-password"></span> </div> <?php if (!empty($erreur_password)): ?> <div class="error"><?php echo $erreur_password; ?></div> <?php endif ?> <p class="information">* Tous les champs sont requis</p> <div class="form-group"> <input type="checkbox" name="agree-term" id="agree-term" class="agree-term" /> <label for="agree-term" class="label-agree-term"><span><span></span></span>Je m'inscris et je deviens membre de l'association Ndameyong <a href="statut_reglement.php" class="term-service">Statut & Règlement</a></label> </div> <div class="form-group"> <input type="submit" name="submit" id="submit" class="form-submit" value="Sign up"/> </div> </form> <p class="loginhere"> Déja Membre ? <a href="login.php" class="loginhere-link">Connecte-toi ici</a> </p> </div> </div> </section> </div> <!-- JS --> <script src="vendor/jquery/jquery.min.js"></script> <script src="js/main.js"></script> </body> </html>
Db.php
<?php /** * Gestion de la base de données */ class Db { private $host = HOST; private $name = DBNAME; private $user = USER; private $pass = PWD; private $connexion; function __construct($host = null, $name = null, $user = null, $pass = null) { if ($host != null) { $this->host = $host; $this->name = $name; $this->user = $user; $this->pass = $pass; } try { $this->connexion = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->name, $this->user, $this->pass); // Activation des erreurs PDO $this->connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $this->connexion->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch (PDOException $e) { die('Erreur : ' . $e->getMessage()); } } private function dbQuery($sql,$data=NULL){ try { $prep = $this->connexion->prepare($sql); return $prep->execute($data); } catch (Exception $e) { echo 'Erreur : ' . $e->getMessage(); echo '<br> Dans la requête :' . $sql; echo '<br> Avec les DATAS :'; var_dump($data); exit; } } /* requete */ public function query($sql, $data = array()) { $req = $this->connexion->prepare($sql); $req->execute($data); return $req->fetchAll(PDO::FETCH_OBJ); } public function tquery($sql, $data = array()) { $req = $this->dbQuery($sql,$data); return $req->fetchAll(PDO::FETCH_ASSOC); } public function insert($sql, $data = array()) { return $this->dbQuery($sql,$data); } public function exec($sql, $data = array()) { try { $req = $this->dbQuery($sql,$data); return $req->rowCount(); // Retourne le nombre de lignes impactées par la reuqête } catch (Exception $e) { echo 'Erreur : ' . $e->getMessage(); // en cas d'erreur dans la requête ! } } public function deleteuser($id) { $sql = 'DELETE FROM users WHERE id=:id'; $data = [':id' => $id]; return $this->exec($sql, $data); } public function uniqueEmail($email) { $sql = 'SELECT count(*) as nbre from users WHERE email=:email limit 1'; $data = array(':email' => $email); $req = $this->dbQuery($sql,$data); $reponse = $req->fetch(PDO::FETCH_ASSOC); return !empty($reponse['nbre']) ? $reponse['nbre'] : 0; } public function createUser($nom_prenom,$ville,$email,$password,$token){ $data = array( 'nom_prenom'=>$nom_prenom, 'ville'=>$ville, 'email'=>$email, 'password'=>$password, 'token'=>$token, ); $sql ='INSERT INTO users (nom_prenom,ville,email,password,token) VALUES(:non_prenom,:ville,:email,:password,:token)'; return $this->dbQuery($sql,$data); } }
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
12 août 2021 à 20:43
12 août 2021 à 20:43
petite erreur de ma part.
Faut corriger la fonction dbQuery
Faut corriger la fonction dbQuery
private function dbQuery($sql,$data=NULL){ try { $prep = $this->connexion->prepare($sql); $prep->execute($data); return $prep; } catch (Exception $e) { echo 'Erreur : ' . $e->getMessage(); echo '<br> Dans la requête :' . $sql; echo '<br> Avec les DATAS :'; var_dump($data); exit; } }
janyduchemin
Messages postés
36
Date d'inscription
mercredi 13 mars 2019
Statut
Membre
Dernière intervention
6 septembre 2023
1
12 août 2021 à 21:23
12 août 2021 à 21:23
Trois nouvelles erreurs sur le fichier signup.php
1) Notice: Undefined variable: BD in C:\wamp\www\ndameyong\signup.php on line 25
2) Fatal error: Uncaught Error: Call to a member function createUser() on null in C:\wamp\www\ndameyong\signup.php on line 25
3) Error: Call to a member function createUser() on null in C:\wamp\www\ndameyong\signup.php on line 25
signup.php
1) Notice: Undefined variable: BD in C:\wamp\www\ndameyong\signup.php on line 25
2) Fatal error: Uncaught Error: Call to a member function createUser() on null in C:\wamp\www\ndameyong\signup.php on line 25
3) Error: Call to a member function createUser() on null in C:\wamp\www\ndameyong\signup.php on line 25
signup.php
<?php require 'includes/includes.php'; //récupération PROPRE des variables AVANT de les utiliser $email = !empty($_POST['email']) ? addslashes(trim($_POST['email'])) : ""; $password = !empty($_POST['password']) ? addslashes(trim($_POST['password'])) : ""; $nom_prenom = !empty($_POST['nom_prenom']) ? addslashes($_POST['nom_prenom']) : ""; $ville = !empty($_POST['ville']) ? addslashes($_POST['ville']) : ""; if (!empty($_POST['email'])) { if (!empty($_POST['password']) && ( filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) )) { $password = Auth::hashPassword($password); $token = sha1(uniqid(rand())); $reponse = $DB->uniqueEmail($email); if ($reponse != 0) { $_SESSION['erreur'] = "Adresse email déja utilisée par un membre."; } else { $createUser = $BD->createUser($nom_prenom, $ville, $email, $password, $token); if ($createUser) { //envoi d'email. $mail_to = $email; $mail_subject = " Validation de votre compte !!"; $headers = "From : Ndameyong\r\n"; $headers .= "Reply-To:nkoayos@gmail.com \r\n"; $headers .= "MIME-Version 1.0\r\n"; $headers .= "Content-type: text/html;charset=utf-8\r\n"; $mail_body = 'Bonjour <br/> Veuillez ciquer sur <a href="http://localhost/ndameyong/activate.php?token=' . $token . '&email=' . $email . '"> le lien </a>pour activer votre compte '; if (mail($mail_to, $mail_subject, $mail_body, $headers)) { $_SESSION['message'] = " Un émail a été envoyé a votre méssagerie avec des instructions pour activer votre compte "; unset($_POST); } else { $_SESSION['erreur'] = "Un problème est survenu lors de l'envoi d'email !."; } } else { echo "Erreur lors de la création de l'utilisateur !"; exit('Error!!!' ); } } } else { if (empty($_POST['password'])) { $erreur_password = 'Un mot de passe est requis !.'; $_SESSION['erreur'] = ' Veuillez corriger les érreurs .'; } if (empty($_POST['email'])) { $erreur_email = 'Le champs email est requis !'; $_SESSION['erreur'] = ' Veuillez corriger les érreurs .'; } else if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $erreur_email = 'Adresse Email non valide !'; $_SESSION['erreur'] = ' Veuillez corriger les érreurs .'; } } } ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- reponsive meta--> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Création de compte || Ndameyong - L'Ecole des Langues Camerounaises</title> <!-- Font Icon --> <link rel="icon" type="image/png" sizes="16x16" href="favicon/favicon-16x16.png"> <link rel="stylesheet" href="fonts/material-icon/css/material-design-iconic-font.min.css"> <!-- Main css --> <link rel="stylesheet" href="css/signup.css"> </head> <body> <!-- message de session --> <?php if (isset($_SESSION['message'])): ?> <div class="message"> <?php echo $_SESSION['message']; ?></div> <?php unset($_SESSION['message']) ?> <?php endif ?> <?php if (isset($_SESSION['erreur'])): ?> <div class="errorMessage"> <?php echo $_SESSION['erreur']; ?></div> <?php unset($_SESSION['erreur']) ?> <?php endif ?> <div class="main"> <section class="signup"> <!-- <img src="images/signup-bg.jpg" alt=""> --> <div class="container"> <div class="signup-content"> <form action="" method="post" id="signup"> <h2 class="form-title"><a href="index.php"><span class ="moi">accueil du site</span></span></a></h2> <div class="form-group"> <input type="text" class="form-input" name="nom_prenom" id="nom_prenom" value="<?php echo $nom_prenom; ?>" placeholder="Nom & Prénom"/> </div> <div class="form-group"> <input type="text" class="form-input" name="ville" id="ville" value="<?php echo $ville; ?>" placeholder="Ville de Résidence"/> </div> <div class="form-group"> <input type="email" class="form-input" class="required" name="email" id="email" value="<?php echo $email; ?>" placeholder="Votre E-mail"/> </div> <?php if (!empty($erreur_email)): ?> <div class="error"><?php echo $erreur_email; ?></div> <?php endif ?> <div class="form-group"> <input type="Password" class="form-input" class="required" name="password" id="password" placeholder="Password"/> <span toggle="#password" class="zmdi zmdi-eye field-icon toggle-password"></span> </div> <?php if (!empty($erreur_password)): ?> <div class="error"><?php echo $erreur_password; ?></div> <?php endif ?> <p class="information">* Tous les champs sont requis</p> <div class="form-group"> <input type="checkbox" name="agree-term" id="agree-term" class="agree-term" /> <label for="agree-term" class="label-agree-term"><span><span></span></span>Je m'inscris et je deviens membre de l'association Ndameyong <a href="statut_reglement.php" class="term-service">Statut & Règlement</a></label> </div> <div class="form-group"> <input type="submit" name="submit" id="submit" class="form-submit" value="Sign up"/> </div> </form> <p class="loginhere"> Déja Membre ? <a href="login.php" class="loginhere-link">Connecte-toi ici</a> </p> </div> </div> </section> </div> <!-- JS --> <script src="vendor/jquery/jquery.min.js"></script> <script src="js/main.js"></script> </body> </html>
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
12 août 2021 à 21:42
12 août 2021 à 21:42
Ligne 25 remplace BD par DB
Ça tu aurais pu le voir sans avoir besoin de mon aide
Ça tu aurais pu le voir sans avoir besoin de mon aide
janyduchemin
Messages postés
36
Date d'inscription
mercredi 13 mars 2019
Statut
Membre
Dernière intervention
6 septembre 2023
1
12 août 2021 à 22:40
12 août 2021 à 22:40
Salut,
Après la correction que vous avez apporté,
ces erreurs apparaissent sur le fichier signup.php
quand on valide le formulaire
1) Erreur : SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
Dans la requête :INSERT INTO users (nom_prenom,ville,email,password,token) VALUES(:non_prenom,:ville,:email,:password,:token)
Avec les DATAS :
2) C:\wamp\www\ndameyong\Classes\Db.php:43:
array (size=5)
'nom_prenom' => string 'azzeerty' (length=8)
'ville' => string 'foey' (length=4)
'email' => string 'azerrt@gmail.com' (length=16)
'password' => string '35e3fe743b737b48b579be0bef0b51236c587f88' (length=40)
'token' => string '55ac6ee539d171c7bf113f22fb71bdaa7e2d4345' (length=40)
Après la correction que vous avez apporté,
ces erreurs apparaissent sur le fichier signup.php
quand on valide le formulaire
1) Erreur : SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
Dans la requête :INSERT INTO users (nom_prenom,ville,email,password,token) VALUES(:non_prenom,:ville,:email,:password,:token)
Avec les DATAS :
2) C:\wamp\www\ndameyong\Classes\Db.php:43:
array (size=5)
'nom_prenom' => string 'azzeerty' (length=8)
'ville' => string 'foey' (length=4)
'email' => string 'azerrt@gmail.com' (length=16)
'password' => string '35e3fe743b737b48b579be0bef0b51236c587f88' (length=40)
'token' => string '55ac6ee539d171c7bf113f22fb71bdaa7e2d4345' (length=40)
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
12 août 2021 à 22:52
12 août 2021 à 22:52
Ah enfin, on a le message d'erreur complet...
Et en effet en le lisant maintenant je vois où se trouve le souci.
C'est avec le nom du premier paramètre de ta requête
Tu as écrit non_prenom. Au lieu de nom_prenom
Et en effet en le lisant maintenant je vois où se trouve le souci.
C'est avec le nom du premier paramètre de ta requête
Tu as écrit non_prenom. Au lieu de nom_prenom
janyduchemin
Messages postés
36
Date d'inscription
mercredi 13 mars 2019
Statut
Membre
Dernière intervention
6 septembre 2023
1
13 août 2021 à 00:07
13 août 2021 à 00:07
Bsr,
Problème résolu, merci!
Problème résolu, merci!
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
13 août 2021 à 00:15
13 août 2021 à 00:15
Et bien pense à mettre le sujet en résolu.
Et inspire-toi du code que je t'ai donné pour tes prochains développements...
Et inspire-toi du code que je t'ai donné pour tes prochains développements...
janyduchemin
Messages postés
36
Date d'inscription
mercredi 13 mars 2019
Statut
Membre
Dernière intervention
6 septembre 2023
1
13 août 2021 à 01:28
13 août 2021 à 01:28
Merci, je tiendrai compte.