Impossible d'effectuer des enregistrements dans la bd

Résolu
AlexMarie007 Messages postés 20 Date d'inscription vendredi 15 mai 2015 Statut Membre Dernière intervention 22 décembre 2015 - 2 déc. 2015 à 12:42
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 2 déc. 2015 à 18:49
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

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
2 déc. 2015 à 13:29
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 ? )
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
2 déc. 2015 à 13:37
Dans ta requête INSERT :
membres('pseudo_membres

Il y a pas un ' en trop ?
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 2/12/2015 à 18:49
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);
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
2 déc. 2015 à 18:35
C'est quoi aussi de ' avant pseudo_membres, ça peut perturber SQL ça.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344 > NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024
2 déc. 2015 à 18:49
oui un loupé.
Corrigé dans mon code.
:-)
0
Rejoignez-nous