Mon code est correct mais l'enregistrement n'est pas effectué [Résolu]

AlexMarie007 20 Messages postés vendredi 15 mai 2015Date d'inscription 22 décembre 2015 Dernière intervention - 19 oct. 2015 à 12:01 - Dernière réponse : jordane45 21454 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 25 juin 2018 Dernière intervention
- 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>
Afficher la suite 

Votre réponse

2 réponses

AlexMarie007 20 Messages postés vendredi 15 mai 2015Date d'inscription 22 décembre 2015 Dernière intervention - 22 déc. 2015 à 12:14
0
Merci
 
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;
}
}




Commenter la réponse de AlexMarie007
jordane45 21454 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 25 juin 2018 Dernière intervention - Modifié par jordane45 le 22/12/2015 à 12:29
0
Merci
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                                                                 
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.