Impossible d'effectuer des enregistrements dans la bd [Résolu]

Signaler
Messages postés
20
Date d'inscription
vendredi 15 mai 2015
Statut
Membre
Dernière intervention
22 décembre 2015
-
Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
-
Bonjour a tous, je voudrais que vous jetez un regard sur ces codes. au fait, j'ai conçu une application dans laquelle, une possibilité de se loguer avec son pseudo et mot de passe, le serieux souci est qu'en passant tous ces paramètres la connexion n'est pas établie or les éléments(pseudo et mdp) sont bien présents dans la bd.

Voici les codes:

login.php


<?php

session_start();
// ---- INCLUSIONS ---- //
$bdd = new PDO('mysql:host=localhost;dbname=gestionalertes','root','Geth@lex/007');
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 Inscription($_POST['pseudo_membres'],
$_POST['email_professionnel'], $_POST['pass_membres'],
$_POST['motdepasse']);

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

if($control == 'OK'){ // ---TOUT EST BON---//

$enreg = $souscrire->Enregistrer();

if($enreg == 'Enregistrée'){

//echo 'Parfait enregistrement';
header('Location:accuse_reception.php');
}
else{
echo 'L\'inscription a échouée';
}
}
else{

$erreur = $control;
}
}

?>

<!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="25%">
<td align="right" width="3,50%">
<label for="pseudo_membres"><strong>Pseudo </strong></label>
</td>
<td width="9%">
<input type="text" name="pseudo_membres" title="Nom utilisateur..." required="required" size="25">
</td>
</tr>
<tr width="25%">
<td align="right" width="3,50%">
<label for="email_professionnel"><strong>Email prof. </strong></label>
</td>
<td width="9%">
<input type="text" name="email_professionnel" title="Email professionnelle..." required="required" size="25">
</td>
</tr>

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

<tr width="25%">
<td align="right" width="3,50%">
<label for="motdepasse"><strong>Confirmation </strong></label>
</td>
<td width="9%">
<input type="password" name="motdepasse" title="Confirmez votre mot de passe..." required="required" size="25">
</td>
</tr>
<tr width="25%">
<td align="right" width="3,50%">
 
</td>
<td width="9%">
 
</td>
</tr>
<tr width="25%">
<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">
<span style="color: red;"><?php
if(isset($erreur)){
echo $erreur;
}
?>
</span>
</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>




inscription.class.php



<?php

class Inscription{

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(sha1($pass_membres));
$motpasse = htmlentities($motdepasse);

$this->pseudo_membres = $nomuser;
$this->email_professionnel = $adresmail;
$this->pass_membres = $password;
$this->motdepasse = $motpasse;
$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 de l\'adresse 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(){
// COnnexion a la base
$bdd = new PDO('mysql:host=localhost;dbname=gestionalertes','root','Geth@lex/007');
// Preparation de requete

$stmt = $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 'Enregistrée';

}

}

2 réponses

Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351
Bonjour,

A quel moment interroges tu ta BDD pour comparer avec les infos qui y sont stockées ?
Il y a bien une requête INSERT (pour l'enregistrement d'un user en BDD ).. mais... qu'as tu fais de la requête SELECT ? )
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 juin 2021
156
Dans ta requête INSERT :
membres('pseudo_membres

Il y a pas un ' en trop ?
Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351
Il n'y a pas de ' en trop ... il y a des " en moins au contraire.
Sans oublier une parenthèse et un paramètre en moins... ...

voici le code corrigé :
$sql = "INSERT INTO membres
                   (pseudo_membres
                   ,email_professionnel
                   ,pass_membres
                   ,date_inscription) 
             VALUES(:pseudo_membres
                   ,:email_professionnel
                   ,:pass_membres
                   ,:date_inscription='".date(Y-m-d H:i:s )."' )";
 $stmt = $bdd->prepare($sql);
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 juin 2021
156
C'est quoi aussi de ' avant pseudo_membres, ça peut perturber SQL ça.
Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351 >
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 juin 2021

oui un loupé.
Corrigé dans mon code.
:-)