Problème d'enregistrement de membre dans ma BDD
- Accueil
- Forum
- Programmation
- PHP
- Problème d'enregistrement de membre dans ma BDD
Xooit Le 3 avril 2016 à 17:09 (Édité le 25 janvier 2019 à 17:50)
cordialement :
<!DOCTYPE html>
<?php
error_reporting(E_ALL);
$bdd = new PDO('mysql:host=localhost:8888;dbname=espace_menbre', 'root','root'); //connection a la base de donnée
if (isset($_POST['forminscription']))
$pseudo = htmlspecialchars($_POST['speudo']);
$mail = htmlspecialchars($_POST['mail']);
$mail2 = htmlspecialchars($_POST['mail2']); //protection java
$mdp = sha1($_POST['mdp']);
$mdp2 = sha1($_POST['mdp2']);
{
if (!empty($_POST['speudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2']))
{
$speudolength = strlen($pseudo);
if ($speudolength <= 255)
{
if ($mail == $mail2)
{
if (filter_var($mail, FILTER_VALIDATE_EMAIL))
{
if ($mdp == $mdp2)
{
$insertmbr = $bdd->prepare("INSERT INTO membre (pseudo, mail, motdepasse) VALUES(?, ?, ?)");
$insertmbr->execute(array($pseudo, $mail, $mdp));
$erreur = "Votre compte a bien été enregistré!";
}
else
{
$erreur = "le mot de passe ne conrespond pas!";
}
}
else
{
$erreur = "Votre adresse email n'est pas valide!";
}
}
else
{
$erreur = "l'adresse email ne conrespond pas!";
}
}
else
{
$erreur = "Votre speudo est tro long";
}
}
else
{
$erreur = "Tous les champs doivent être conpleter!";
}
}
?>
<html>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css">
<head>
<?php
include('title.php');
?>
</head>
<body>
<div id="conteneur">
<?php
include('titre.php');
?>
<!--debut menu-->
<?php
include('menu.php');
?>
<!--fin menu-->
<!--debut contenue-->
<section id="contenu">
<article>
<h1>Inscription</h1>
<form method="post" action="">
<?php
if (isset($erreur))
{
echo '<font color="red">'.$erreur."</font>";
}
?>
<fieldset style="margin-right: 20px;">
<center>
<p id="coco">
<label for="speudo">speudo: </label>
<input type="speudo" name="speudo" placeholder="Ex: Votre speudo" value="<?php if (isset($speudo)){ echo $speudo;} ?>"/><br><br>
<label for="mail">email: </label>
<input type="email" name="mail" placeholder="Votre Email" id="mail" value="<?php if (isset($mail)){ echo $mail;} ?>"/><br><br>
<label for="mail2">Confirmation du mail: </label>
<input align="justify" type="email" name="mail2" placeholder="Confirmer votre email:" id="mail2" value="<?php if (isset($mail2)){ echo $mail2;} ?>" /><br><br>
<label for="mdp">Mot de passe: </label>
<input type="password" name="mdp" placeholder="Votre mot de passe:" id="mdp" /><br><br>
<label for="mdp2">Confirmation du mot de passe: </label>
<input type="password" name="mdp2" placeholder="Confirmer votre mot de passe:" id="mdp2" /><br><br>
<input type="submit" name="forminscription" value="m'inscrire"/><br>
</center>
</strong>
</fieldset>
</p>
</article>
</section>
<!--fin contenue-->
<!-- debut aside -->
<?php>
include('sidebar.php');
?>
</body>
</html>
quiqou55 Le 3 avril 2016 à 18:21 (Édité le 3 avril 2016 à 18:22)
Dans la connexion a la base de donné remplace le localhost:8888 par localhost, le port 8888 est utilisé uniquement par php et non MySql 😀
TheFlameflo Le 3 avril 2016 à 19:38 (Édité le 1 janvier 1970 à 01:00)
Xooit Le 3 avril 2016 à 19:46 (Édité le 1 janvier 1970 à 01:00)
quiqou55 Le 3 avril 2016 à 20:08 (Édité le 1 janvier 1970 à 01:00)
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Xooit Le 3 avril 2016 à 20:22 (Édité le 1 janvier 1970 à 01:00)
TheFlameflo Le 3 avril 2016 à 20:26 (Édité le 3 avril 2016 à 20:27)
Peut-être que l'erreur est là.
EDIT : Je ne sais pas, mais ma connexion à la bdd, le nom c'est root et pas de mot de passe, ça vient peut-être de là ?
julienb Le 4 avril 2016 à 06:10 (Édité le 1 janvier 1970 à 01:00)
remplacer la création de l'instance PDO au tout début par:
try{
$bdd = new PDO('mysql:host=localhost;dbname=espace_menbre', 'root','root');
} catch (PDOException $e) {
echo "Erreur de connexion à la base de données<br/>";
echo $e->getMessage();
}
et à la fin remplacer
$insertmbr = $bdd->prepare("INSERT INTO membre (pseudo, mail, motdepasse) VALUES(?, ?, ?)");
$insertmbr->execute(array($pseudo, $mail, $mdp));
$erreur = "Votre compte a bien été enregistré!";
par
try{
$insertmbr = $bdd->prepare("INSERT INTO membre (pseudo, mail, motdepasse) VALUES(?, ?, ?)");
$insertmbr->execute(array($pseudo, $mail, $mdp));
$erreur = "Votre compte a bien été enregistré!";
}catch(PDOException $e){
echo "Erreur d'insertion dans la base de données <br/>";
echo $e->getMessage();
}
julienb Le 4 avril 2016 à 06:21 (Édité le 1 janvier 1970 à 01:00)
De plus, tu as un problème de { et } au début de ton code. Le bloc suivant:
if (isset($_POST['forminscription']))
$pseudo = htmlspecialchars($_POST['speudo']);
$mail = htmlspecialchars($_POST['mail']);
$mail2 = htmlspecialchars($_POST['mail2']);//protection java
$mdp = sha1($_POST['mdp']);
$mdp2 = sha1($_POST['mdp2']);
{
if (!empty($_POST['speudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2']))
devrait plutôt ressembler à:
if (isset($_POST['forminscription'])){
$pseudo = htmlspecialchars($_POST['speudo']);
$mail = htmlspecialchars($_POST['mail']);
$mail2 = htmlspecialchars($_POST['mail2']);/protection java
$mdp = sha1($_POST['mdp']);
$mdp2 = sha1($_POST['mdp2']);
if (!empty($_POST['speudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])){
Ephtos Le 4 avril 2016 à 17:49 (Édité le 4 avril 2016 à 17:50)
<!DOCTYPE html>
<?php
error_reporting(E_ALL);
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_menbre', 'root','root'); //espace_meNbre ou espace_membre ?
if (isset($_POST['forminscription'])){
$pseudo = htmlspecialchars($_POST['speudo']);
$mail = htmlspecialchars($_POST['mail']);
$mail2 = htmlspecialchars($_POST['mail2']); //protection java
$mdp = sha1($_POST['mdp']);
$mdp2 = sha1($_POST['mdp2']);
if (!empty($_POST['speudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])){
$speudolength = strlen($pseudo);
if ($speudolength <= 255){
if ($mail == $mail2){
if (filter_var($mail, FILTER_VALIDATE_EMAIL)){
if ($mdp == $mdp2){
$insertmbr = $bdd->prepare("INSERT INTO membre (pseudo, mail, motdepasse) VALUES(?, ?, ?)");
$insertmbr->execute(array($pseudo, $mail, $mdp));
$erreur = "Votre compte a bien été enregistré!";
}
else
{
$erreur = "le mot de passe ne conrespond pas!";
}
}
else
{
$erreur = "Votre adresse email n'est pas valide!";
}
}
else
{
$erreur = "l'adresse email ne conrespond pas!";
}
}
else
{
$erreur = "Votre speudo est tro long";
}
}
else
{
$erreur = "Tous les champs doivent être conpleter!";
}
}
}
?>
<html>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css">
<head>
<?php
include('title.php');
?>
</head>
<body>
<div id="conteneur">
<?php
include('titre.php');
?>
<!--debut menu-->
<?php
include('menu.php');
?>
<!--fin menu-->
<!--debut contenue-->
<section id="contenu">
<article>
<h1>Inscription</h1>
<form method="post" action="">
<?php
if (isset($erreur))
{
echo '<font color="red">'.$erreur."</font>";
}
?>
<fieldset style="margin-right: 20px;">
<center>
<p id="coco">
<label for="speudo">speudo: </label>
<input type="speudo" name="speudo" placeholder="Ex: Votre speudo" value="<?php if (isset($speudo)){ echo $speudo;} ?>"/><br><br>
<label for="mail">email: </label>
<input type="email" name="mail" placeholder="Votre Email" id="mail" value="<?php if (isset($mail)){ echo $mail;} ?>"/><br><br>
<label for="mail2">Confirmation du mail: </label>
<input align="justify" type="email" name="mail2" placeholder="Confirmer votre email:" id="mail2" value="<?php if (isset($mail2)){ echo $mail2;} ?>" /><br><br>
<label for="mdp">Mot de passe: </label>
<input type="password" name="mdp" placeholder="Votre mot de passe:" id="mdp" /><br><br>
<label for="mdp2">Confirmation du mot de passe: </label>
<input type="password" name="mdp2" placeholder="Confirmer votre mot de passe:" id="mdp2" /><br><br>
<input type="submit" name="forminscription" value="m'inscrire"/><br>
</center>
</strong>
</fieldset>
</p>
</article>
</section>
<!--fin contenue-->
<!-- debut aside -->
<?php>
include('sidebar.php');
?>
</body>
</html>
Xooit Le 4 avril 2016 à 20:59 (Édité le 1 janvier 1970 à 01:00)
Xooit Le 4 avril 2016 à 21:06 (Édité le 1 janvier 1970 à 01:00)
Xooit Le 4 avril 2016 à 21:26 (Édité le 4 avril 2016 à 21:31)
Ephtos Le 5 avril 2016 à 12:15 (Édité le 5 avril 2016 à 12:42)
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=membre', 'root','');
if (isset($_POST['forminscription'])){
$pseudo = htmlspecialchars($_POST['pseudo']);
$mail = htmlspecialchars($_POST['mail']);
$mail2 = htmlspecialchars($_POST['mail2']); //protection java
$mdp = sha1($_POST['mdp']);
$mdp2 = sha1($_POST['mdp2']);
//========================================================================================================================//
if (!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])){
$pseudolength = strlen($pseudo);
//=============================================================================================================//
if ($pseudolength <= 255){
//=========================================================================================================
if ($mail == $mail2){
//==============================================================================================//
if (filter_var($mail, FILTER_VALIDATE_EMAIL)){
//==============================================================================================//
if ($mdp == $mdp2){
$insertmbr = $bdd->prepare("INSERT INTO membre (pseudo, mail, mdp) VALUES(?, ?, ?)");
$insertmbr->execute(array($pseudo, $mail, $mdp));
$erreur = "Votre compte a bien été enregistré!";
}//mdp
else
{
$erreur = "le mot de passe ne conrespond pas!";
}
//==============================================================================================//
}//filtervalidate
else
{
$erreur = "Votre adresse email n'est pas valide!";
}
//============================================================================================================================
}// mail = mail2
else
{
$erreur = "l'adresse email ne conrespond pas!";
}
//================================================================================================================================//
}//taillepseudo
else
{
$erreur = "Votre pseudo est tro long";
}
//=========================================================================================================================//
}//champ complété
else
{
$erreur = "Tous les champs doivent être conpleter!";
}
//===================================================================================================================//
}//si appuie sur le bouton formulaire
?>
Voila le code php fonctionnel, je l'ai réessayer avec une bdd etc, tout est fonctionnel. donc j'ai eu une erreur de parsing, un } en trop, donc retirée, puis le code fonctionne. Je te laisse comme c'est mais modifi ton PDO et ton INSERT par les valeurs que tu as 😀 en esperant aidé (ps j'ulite wamp, donc n'oublie pas de remettre root en mot de passe PDO 😋 ) Xooit Le 5 avril 2016 à 12:58 (Édité le 1 janvier 1970 à 01:00)
Xooit Le 5 avril 2016 à 13:01 (Édité le 1 janvier 1970 à 01:00)
julienb Le 6 avril 2016 à 21:15 (Édité le 1 janvier 1970 à 01:00)
Paolacci Le 6 avril 2016 à 21:57 (Édité le 1 janvier 1970 à 01:00)
yvan Le 11 avril 2016 à 00:18 (Édité le 1 janvier 1970 à 01:00)
yvan Le 11 avril 2016 à 00:20 (Édité le 1 janvier 1970 à 01:00)
<?php
$bdd = new PDO('mysql:host=localhost;dbname=formulaire','root','');
//$mot_de_passe = sha1($_POST['mot_de_passe']);
if (isset($_POST['submit']))
{
$pseudo = htmlspecialchars(trim($_POST['pseudo']));
$mot_de_passe = htmlspecialchars(trim($_POST['mot_de_passe']));
if (empty($pseudo))
{
echo "Veuilez saisir votre pseudo S.V.P !<br/>";
}else if (empty($mot_de_passe))
{
echo "Veuillez saisir votre mot de passe S.V.P !";
}else {
$pseudo = htmlspecialchars($_POST['pseudo']);
$mot_de_passe = htmlspecialchars($_POST['mot_de_passe']);
$insertmsg = $bdd ->prepare('INSERT INTO utilisateur(pseudo,mot_de_passe) VALUES (?,?) ');
$insertmsg -> execute(array($pseudo,$mot_de_passe));
$mot_de_passe = md5($mot_de_passe);
die('Vous êtes connecter');
//$req = $bdd->prepare("SELECT id FROM utilisateur WHERE pseudo=$pseudo AND mot_de_passe=$mot_de_passe");
//$req ->execute(array('pseudo' => $pseudo, 'mot_de_passe' => $mot_de_passe));
//$resultat = $req-> fetch();
//if(!$resultat)
// {
// echo "Nom d'utilisateur ou mot de passe incorrect";
//}else{
// session_start();
// $_SESSION['id'] = $resultat['id'];
// $_SESSION['pseudo'] = $pseudo;
// $_SESSION['mot_de_passe'] = $mot_de_passe;
//echo 'Vous êtes connecté !';
//}
}
}
?>
<h1>Connexion</h1>
<form action="connexion.php" method="POST">
<p>Votre pseudo</p>
<input type="text" name="pseudo" /><br/>
<p>Votre mot de passe</p>
<input type="password" name="mot_de_passe" /><br/><br/>
<input type="submit" name="submit" value="Se connecter" />
</form>
<a href="inscription.php">Pas encore membre</a>
TheFlameflo Le 11 avril 2016 à 01:33 (Édité le 1 janvier 1970 à 01:00)
On pourrait voir où on en est dans le problème ! ^^
Xooit Le 11 avril 2016 à 07:25 (Édité le 1 janvier 1970 à 01:00)
Merci a vous.
Xooit Le 11 avril 2016 à 21:34 (Édité le 1 janvier 1970 à 01:00)
<html>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css">
<head>
<?php
include('title.php');
?>
</head>
<body>
<div id="conteneur">
<?php
include('titre.php');
?>
<!--debut menu-->
<?php
include('menu.php');
?>
<!--fin menu-->
<!--debut contenue-->
<section id="contenu">
<article>
<h1>Inscription</h1>
<form method="post" action="inscription.php">
<?php
if (isset($erreur))
{
echo '<font color="red">'.$erreur."</font>";
}
?>
<fieldset style="margin-right: 20px;">
<center>
<p id="coco">
<label for="pseudo">pseudo: </label>
<input type="pseudo" name="pseudo" placeholder="Ex: Votre pseudo" value="<?php if (isset($pseudo)){ echo $pseudo;} ?>"/><br><br>
<label for="mail">email: </label>
<input type="email" name="mail" placeholder="Votre Email" id="mail" value="<?php if (isset($mail)){ echo $mail;} ?>"/><br><br>
<label for="mail2">Confirmation du mail: </label>
<input align="justify" type="mail" name="mail2" placeholder="Confirmer votre email:" id="mail2" value="<?php if (isset($mail2)){ echo $mail2;} ?>" /><br><br>
<label for="mdp">Mot de passe: </label>
<input type="password" name="mdp" placeholder="Votre mot de passe:" id="mdp" /><br><br>
<label for="mdp2">Confirmation du mot de passe: </label>
<input type="password" name="mdp2" placeholder="Confirmer votre mot de passe:" id="mdp2" /><br><br>
<input type="submit" name="forminscription" value="valider"/><br>
</center>
</strong>
</fieldset>
</p>
</form>
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=membres', 'root','root');
if (isset($_POST['forminscription'])){
$pseudo = htmlspecialchars($_POST['pseudo']);
$mail = htmlspecialchars($_POST['mail']);
$mail2 = htmlspecialchars($_POST['mail2']); //protection java
$mdp = sha1($_POST['mdp']);
$mdp2 = sha1($_POST['mdp2']);
//========================================================================================================================//
if (!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])){
$pseudolength = strlen($pseudo);
//=============================================================================================================//
if ($pseudolength <= 255){
//=========================================================================================================
if ($mail == $mail2){
//==============================================================================================//
if (filter_var($mail, FILTER_VALIDATE_EMAIL)){
//==============================================================================================//
if ($mdp == $mdp2){
$insertmbr = $bdd->prepare("INSERT INTO membres (pseudo, mail, mdp) VALUES(?, ?, ?)");
$insertmbr->execute(array($pseudo, $mail, $mdp));
$erreur = "Votre compte a bien été enregistré!";
}//mdp
else
{
$erreur = "le mot de passe ne conrespond pas!";
}
//==============================================================================================//
}//filtervalidate
else
{
$erreur = "Votre adresse email n'est pas valide!";
}
//============================================================================================================================
}// mail = mail2
else
{
$erreur = "l'adresse email ne conrespond pas!";
}
//================================================================================================================================//
}//taillepseudo
else
{
$erreur = "Votre pseudo est tro long";
}
//=========================================================================================================================//
}//champ complété
else
{
$erreur = "Tous les champs doivent être conpleter!";
}
//===================================================================================================================//
}//si appuie sur le bouton formulaire
mysql_close();
?>
</article>
</section>
<!--fin contenue-->
<!-- debut aside -->
<?php>
include('sidebar.php');
?>
</body>
</html>