Mon code est correct mais l'enregistrement n'est pas effectué

Résolu
AlexMarie007 Messages postés 20 Date d'inscription vendredi 15 mai 2015 Statut Membre Dernière intervention 22 décembre 2015 - 19 oct. 2015 à 12:01
jordane45 Messages postés 37871 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 10 décembre 2023 - 22 déc. 2015 à 12:29
Bonjour à tous, je voudrais que vous regardiez ces codes afin de me reveler d'où est l'erreur. Mon code est juste cad ne contient pas de bug mais quand je vérifie dans la base il n'y pas d'enregistrements qui est effectué, je ne comprends pas pourquoi.
Quelqu'un peut-il m'aider?

Voici les codes:

pdoconnexion.php



<?php

// Mon premier en programmation orientee objet
// Parametre de connexion a la bd

function bdd(){

try{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;

$bdd = new PDO('mysql:host=localhost;dbname=gestionalertes','root','*******',$pdo_options);

echo "Connexion a la bd bonne";
}
catch(Exception $e){
echo 'La connexion a echouée' .$e -> getMessage();
}
}




souscription.class.php


<?php


include_once('../lib/pdoconnexion.php');

class Souscription{

private $pseudo_membres;
private $email_professionnel;
private $pass_membres;
private $motdepasse;
private $bdd;

public function __construct($pseudo_membres, $email_professionnel, $pass_membres,$motdepasse){

$nomuser = htmlentities($pseudo_membres);
$adresmail = htmlentities($email_professionnel);
$password = htmlentities($pass_membres);
$motpasse = htmlentities($motdepasse);

$this->pseudo_membres = $nomuser;
$this->email_professionnel = $adresmail;
$this->pass_membres = $password;
$this->motdepasse = $motpasse;
$this->bdd = bdd();

/*/
echo $this->pseudo_membres .'<br/>';
echo $this->email_professionnel .'<br/>';
echo $this->pass_membres .'<br/>';
//*/

}

// Cette fonction pour permettra de controler les champs comme pseudo, mot de passe...
public function Verification(){

if(strlen($this->pseudo_membres) > 7 and strlen($this->pseudo_membres) < 20){
// Continue si le pseudo est bon

$syntaxe = '#^[\w.-]+@[\w.-]+\.[a-zA-Z0-9]{2,6}$#';
if(preg_match($syntaxe,$this->email_professionnel)){
// Continue si l'email est bon

if($this->pass_membres == $this->motdepasse){
// Continue si les mot de passe sont identiques
}
else {
$erreur ='Les mots de passe doivent ètre identiques.';
return $erreur;
}
////////////////////////////
}
else {
$erreur = 'La syntaxe est mauvaise.';
return $erreur;
}
//////////////////
}
else {
$erreur ='Le pseudo doit contenir entre 7 á 20 caractères.';
return $erreur;
}
}

// Cette fonction permettra les enregistrements dans la bd

public function Enregistrer(){

// Preparation de requete
$stmt = $this->bdd->prepare("INSERT INTO membres(pseudo_membres,email_professionnel,pass_membres) VALUES(:pseudo_membres,:email_professionnel,:pass_membres,:date_inscription='.date(Y-m-d H:i:s ).'");

// execution de la requette
$stmt->execute(array(
'pseudo_membres' => $this->pseudo_membres,
'email_professionnel' => $this->email_professionnel,
'pass_membres' => $this->pass_membres
));
return 1;
}
}





souscription.php


<?php

session_start();
// ---- INCLUSIONS ---- //
include_once('../lib/pdoconnexion.php');
include_once('fonction/souscription.class.php');

// INCLUSION DE LA BASE DE DONNEES
$bdd = bdd();

// ---- VERIFCATION DES PARAMETRES ----//
if(isset($_POST) and isset($_POST['pseudo_membres']) and isset($_POST['email_professionnel']) and isset($_POST['pass_membres']) and isset($_POST['motdepasse'])){

// ---- INSTANCIATION DE LA CLASSE ----//
$souscrire = new Souscription($_POST['pseudo_membres'], $_POST['email_professionnel'], $_POST['pass_membres'], $_POST['motdepasse']);

// ---- RECUPERATION DE FONCTION ----//
$control = $souscrire->Verification();

if($control == 'OK'){ // ---TOUT EST BON---//
if($souscrire->Enregistrer()){
echo 'Tout est bon';
header('Location:accuse_reception.php');
}
else{
echo 'L\'inscription a échouée';
}
}
else{

//$retourn_erreur = $erreur;
}
}

?>

<!DOCTYPE HTML>

<html>

<head>
<title>INSCRIPTION</title>
<link type="text/css" rel="stylesheet" href="../static/css/designer.css">
<link rel="Shortcut Icon" type="image/x-icon" href="../static/images/favicon.ico">
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>

<body style="background: url('../static/images/background.gif') center top no-repeat;">
<div id="body" ><br/>
<?php include_once('../conf/header2.php'); ?>
<!--CETTE PARTIE DU CODE PERMET L'AFFICHAGE DES INFOS DE LA CNPS-->
<div id="cadre-horizon">

<!--CETTE INCLUSION PERMET L'AFFICHAGE DES DIV CONTENANT -->
<?php include_once('../conf/inclusion2.php'); ?>

</div><br/> 
<center>
    
<div id="aff-contenu" class="posts">
<br/>
<div class="connect">   

<div class="connect1" >
     
<fieldset id="fieldset" >
<legend>
<strong>
Formulaire d´inscription
</strong>
</legend>
<br/><br/><br/><br/>
<form method="post" name="" id="">

<table width="100%" cellpadding="2" cellspacing="3" class="text" border="0">

<tr width="12,50%">
<td align="right" width="3,50%">
<strong>Pseudo </strong>
</td>
<td width="9%">
<input type="text" name="pseudo_membres" title="Nom utilisateur..." required="required" size="25">
</td>
</tr>
<tr width="12,50%">
<td align="right" width="3,50%">
<strong>Email prof. </strong>
</td>
<td width="9%">
<input type="text" name="email_professionnel" title="Email professionnelle..." required="required" size="25">
</td>
</tr>

<tr width="12,50%">
<td align="right" width="3,50%">
<strong>Mot de passe</strong>
</td>
<td width="9%">
<input type="password" name="pass_membres" title="Votre mot de passe..." required="required" size="25">
</td>
</tr>

<tr width="12,50%">
<td align="right" width="3,50%">
<strong>Confirmation </strong>
</td>
<td width="9%">
<input type="password" name="motdepasse" title="Confirmez votre mot de passe..." required="required" size="25">
</td>
</tr>
<tr width="12,50%">
<td align="right" width="3,50%">
 
</td>
<td width="9%">
 
</td>
</tr>
<tr width="12,50%">
<td align="right" width="3,50%">
 
</td>
<td width="9%">
<input type="submit" name="envoyer" value="S´I N S C R I R E" class="bouton">
<input type="hidden" name="verif-ajout">
<?php
if(isset($return)){
echo $return;
}
?>
</td>
</tr>
</table>
</form>
</fieldset>
</div> <br>
<hr style="width: 450px;">
<p style="text-align: justify; font-size: 13px; width: 430px;" class="text">
Cette inscription vous permet d´être membre de cette équipe.
Dès que vous cliquez sur le bouton S´INSCRIRE, automatiquement vous recevrez un email pour valider votre inscription.
En validant cette inscription depuis votre compte, vous acceptez les <a href="" style="text-decoration: none">Conditions générales</a> de cette application. </p>
<hr style="width: 450px;"> 
</div>
<br/>
</div>
</center>
</div>
</body>

</html>

2 réponses

AlexMarie007 Messages postés 20 Date d'inscription vendredi 15 mai 2015 Statut Membre Dernière intervention 22 décembre 2015
22 déc. 2015 à 12:14
 
class Souscription{

private $pseudo_membres;
private $email_professionnel;
private $pass_membres;
private $motdepasse;
private $dateins;
private $bdd;

public function __construct($pseudo_membres, $email_professionnel, $pass_membres,$motdepasse,){

$nomuser = htmlentities($pseudo_membres);
$adresmail = htmlentities($email_professionnel);
$password = htmlentities($pass_membres);
$motpasse = htmlentities($motdepasse);

$this->pseudo_membres = $nomuser;
$this->email_professionnel = $adresmail;
$this->pass_membres = $password;
$this->motdepasse = $motpasse;
$this->dateins = date('Y-m-d H:i:s');
$this->bdd = bdd();



}

// Cette fonction pour permettra de controler les champs comme pseudo, mot de passe...
public function Verification(){

if(strlen($this->pseudo_membres) > 7 and strlen($this->pseudo_membres) < 20){
// Continue si le pseudo est bon

$syntaxe = '#^[\w.-]+@[\w.-]+\.[a-zA-Z0-9]{2,6}$#';
if(preg_match($syntaxe,$this->email_professionnel)){
// Continue si l'email est bon

if($this->pass_membres == $this->motdepasse){
// Continue si les mot de passe sont identiques
}
else {
$erreur ='Les mots de passe doivent ètre identiques.';
return $erreur;
}
////////////////////////////
}
else {
$erreur = 'La syntaxe est mauvaise.';
return $erreur;
}
//////////////////
}
else {
$erreur ='Le pseudo doit contenir entre 7 á 20 caractères.';
return $erreur;
}
}

// Cette fonction permettra les enregistrements dans la bd

public function Enregistrer(){

// Preparation de requete
$stmt = $this->bdd->prepare("INSERT INTO membres(pseudo_membres,email_professionnel,pass_membres) VALUES(:pseudo_membres,:email_professionnel,:pass_membres,:date_inscription");

// execution de la requette
$stmt->execute(array(
'pseudo_membres' => $this->pseudo_membres,
'email_professionnel' => $this->email_professionnel,
'pass_membres' => $this->pass_membres,
'date_inscription'=>this->dateins
));
return OK;
}
}




0
jordane45 Messages postés 37871 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 10 décembre 2023 343
Modifié par jordane45 le 22/12/2015 à 12:29
Bonjour,

Si ton souci se trouve au niveau de cette fonction
   public function Enregistrer(){
            
            // Preparation de requete
            $stmt = $this->bdd->prepare("INSERT INTO membres(pseudo_membres,email_professionnel,pass_membres) VALUES(:pseudo_membres,:email_professionnel,:pass_membres,:date_inscription");

            // execution de la requette
            $stmt->execute(array(
                'pseudo_membres' => $this->pseudo_membres,
                'email_professionnel' => $this->email_professionnel,
                'pass_membres' => $this->pass_membres,
                'date_inscription'=>this->dateins
                ));
              return OK;
            }
    }


... commence par y mettre un bloc TRY/CATCH

Tu verras alors... que ta requête n'est pas bonne.....
Tu ne passes pas le même nombre de "VALUES" que de champ dans lesquels tu veux y faire l'insertion....
Sans parler de la parenthèse fermante manquante ...
Cela se voit encore mieux si tu prends la peine de faire des retours à la ligne sur ta requête :
INSERT INTO membres
 (pseudo_membres
 ,email_professionnel
 ,pass_membres
) VALUES(
  :pseudo_membres
 ,:email_professionnel
 ,:pass_membres
 ,:date_inscription



Cordialement, 
Jordane                                                                 
0
Rejoignez-nous