Infos non enregistrées sur ma bdd
- Accueil
- Forum
- Programmation
- PHP
- Infos non enregistrées sur ma bdd
samzirt Le 26 janvier 2017 à 17:24 (Édité le 25 janvier 2019 à 17:53)
J'ai suivi le cour de Boris sur le php et notamment sur créer un espace membre.
voila mon problème: lorsque je rempli mon formulaire , mes données ne sont pas enregistrées sur ma base de données. De plus, je n'arrive pas a me connecter avec ce compte crée.
Merci de votre aide.
samzirt Le 26 janvier 2017 à 17:51 (Édité le 1 janvier 1970 à 01:00)
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
if(isset($_POST['forminscription'])) {
$pseudo = htmlspecialchars($_POST['pseudo']);
$mail = htmlspecialchars($_POST['mail']);
$mail2 = htmlspecialchars($_POST['mail2']);
$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)) {
$reqmail = $bdd->prepare("SELECT * FROM membres WHERE mail = ?");
$reqmail->execute(array($mail));
$mailexist = $reqmail->rowCount();
if($mailexist == 0) {
if($mdp == $mdp2) {
$insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse) VALUES(?, ?, ?)");
$insertmbr->execute(array($pseudo, $mail, $mdp));
$erreur = "Votre compte a bien été créé ! <a href=\"acceuil.php\">Me connecter</a>";
} else {
$erreur = "Vos mots de passes ne correspondent pas !";
}
} else {
$erreur = "Adresse mail déjà utilisée !";
}
} else {
$erreur = "Votre adresse mail n'est pas valide !";
}
} else {
$erreur = "Vos adresses mail ne correspondent pas !";
}
} else {
$erreur = "Votre pseudo ne doit pas dépasser 255 caractères !";
}
} else {
$erreur = "Tous les champs doivent être complétés !";
}
}
?>
<html>
<head>
<title>TUTO PHP</title>
<meta charset="utf-8">
</head>
<body>
<div align="center">
<h2>Inscription</h2>
<br /><br />
<form method="POST" action="">
<table>
<tr>
<td align="right">
<label for="pseudo">Pseudo :</label>
</td>
<td>
<input type="text" placeholder="Votre pseudo" id="pseudo" name="pseudo" value="<?php if(isset($pseudo)) { echo $pseudo; } ?>" />
</td>
</tr>
<tr>
<td align="right">
<label for="mail">Mail :</label>
</td>
<td>
<input type="email" placeholder="Votre mail" id="mail" name="mail" value="<?php if(isset($mail)) { echo $mail; } ?>" />
</td>
</tr>
<tr>
<td align="right">
<label for="mail2">Confirmation du mail :</label>
</td>
<td>
<input type="email" placeholder="Confirmez votre mail" id="mail2" name="mail2" value="<?php if(isset($mail2)) { echo $mail2; } ?>" />
</td>
</tr>
<tr>
<td align="right">
<label for="mdp">Mot de passe :</label>
</td>
<td>
<input type="password" placeholder="Votre mot de passe" id="mdp" name="mdp" />
</td>
</tr>
<tr>
<td align="right">
<label for="mdp2">Confirmation du mot de passe :</label>
</td>
<td>
<input type="password" placeholder="Confirmez votre mdp" id="mdp2" name="mdp2" />
</td>
</tr>
<tr>
<td></td>
<td align="center">
<br />
<input type="submit" name="forminscription" value="Je m'inscris" />
</td>
</tr>
</table>
</form>
<?php
if(isset($erreur)) {
echo '<font color="red">'.$erreur."</font>";
}
?>
</div>
</body>
</html>
twinny Le 26 janvier 2017 à 19:23 (Édité le 26 janvier 2017 à 19:29)
if(isset($_POST['forminscription']))
{
$pseudo = htmlspecialchars($_POST['pseudo']);
$mail = htmlspecialchars($_POST['mail']);
$mail2 = htmlspecialchars($_POST['mail2']);
$mdp = sha1($_POST['mdp']);
$mdp2 = sha1($_POST['mdp2']);
if(empty($_POST['check']))
{
$erreur = "*****************************";
}else{
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))
{
$reqmail = $bdd->prepare("SELECT * FROM membres WHERE mail = ?");
$reqmail->execute(array($mail));
$mailexist = $reqmail->rowCount();
if($mailexist == 0)
{
if($mdp == $mdp2)
{
$longueurKey = 15;
$key= "";
for ($i=1;$i<$longueurKey;$i++)
{
$key .= mt_rand(0,9);
}
$insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse, confirmekey) VALUES(?, ?, ?, ?)");
$insertmbr->execute(array($pseudo, $mail, $mdp, $key));
include('mailconfirmationinscription.php');
?>
<div class="alert alert-info">
<strong>Success!</strong> Vous êtez maintenant inscrit ! Vous devez confirmer votre compte avant de pouvoir vous connecter <a href="login.php"> Pour vous connecter</a> | <a href="index.php">Pour retourner sur le site</a>
</div>
<?php
}
else
{
$erreur = "Vos mots de passes ne correspondent pas !";
}
}
else
{
$erreur = "Adresse mail déjà utilisée !";
}
}
else
{
$erreur = "Votre adresse mail n'est pas valide !";
}
}
else
{
$erreur = "Vos adresses mail ne correspondent pas !";
}
}
else
{
$erreur = "Votre pseudo ne doit pas dépasser 255 caractères !";
}
}
else
{
$erreur = "Tous les champs doivent être completes !";
}
}
}
?>
<body ng-controller="RegisterCtrl" ng-app="myApp">
<div class="container">
<div id="signup">
<div class="signup-screen">
<div class="space-bot text-center">
<h1>Inscription</h1>
<div class="divider"></div>
</div>
<form class="form-register" method="post" name="register" action="" role="form" novalidate>
<div class="input-field col s6">
<input id="pseudo" type="text" class="validate" name="pseudo" value="<?php if(isset($pseudo)) { echo $pseudo; } ?>">
<label for="pseudo">Nom d'utilisateur</label>
</div>
<div class="input-field col s6">
<input id="mdp" type="password" class="validate" name="mdp" >
<label for="mdp">Mot de passe</label>
</div>
<div class="input-field col s6">
<input id="mdp2" type="password" name="mdp2" ng-model="mdp2" class="validate" >
<label for="mdp2">Confirmation du mot de passe</label>
</div>
<div class="input-field col s6">
<input id="mail" type="email" name="mail" ng-model="mail" class="validate" value="<?php if(isset($mail)) { echo $mail; } ?>">
<label for="mail">Email</label>
<div class="input-field col s6">
<input id="mail2" type="email" name="mail2" ng-model="email" class="validate" value="<?php if(isset($mail2)) { echo $mail2; } ?>">
<label for="mail2">Confirmation de l'Email</label>
</div>
<div class="input-field col s6">
<input type="checkbox" class="filled-in" id="filled-in-box" name="check" />
<label for="filled-in-box">J'accepte les conditions d'utilisation de Dofuscraft <a href="cgu.html" target="_blank">CGU</a></label>
</div><br/>
<div class="space-top text-center">
<button ng-disabled="form-register.$invalid" class="waves-effect waves-light btn done" name="forminscription">
<i class="material-icons left">done</i> Valider
</button>
<a href="<?= $previous ?>">
<button type="button" class="waves-effect waves-light btn cancel">
<i class="material-icons left">clear</i>Retour
</button>
</a>
</div>
<?php
if(isset($erreur))
{
echo '<font color="red">'.$erreur."</font>";
}
?>
</form>
</div>
</div>
</div>
</body>
Balatharas Le 26 janvier 2017 à 19:27 (Édité le 1 janvier 1970 à 01:00)
Désolé, je ne t'apporterait pas mon aide si tu n'apprends pas a cliquer sur le petit bouton [CODE] qui n'est pas la pour la déco...
samzirt Le 26 janvier 2017 à 20:13 (Édité le 1 janvier 1970 à 01:00)
Voici mon code:
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
if(isset($_POST['forminscription'])) {
$pseudo = htmlspecialchars($_POST['pseudo']);
$mail = htmlspecialchars($_POST['mail']);
$mail2 = htmlspecialchars($_POST['mail2']);
$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)) {
$reqmail = $bdd->prepare("SELECT * FROM membres WHERE mail = ?");
$reqmail->execute(array($mail));
$mailexist = $reqmail->rowCount();
if($mailexist == 0) {
if($mdp == $mdp2) {
$insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse) VALUES(?, ?, ?)");
$insertmbr->execute(array($pseudo, $mail, $mdp));
$erreur = "Votre compte a bien été créé ! <a href=\"acceuil.php\">Me connecter</a>";
} else {
$erreur = "Vos mots de passes ne correspondent pas !";
}
} else {
$erreur = "Adresse mail déjà utilisée !";
}
} else {
$erreur = "Votre adresse mail n'est pas valide !";
}
} else {
$erreur = "Vos adresses mail ne correspondent pas !";
}
} else {
$erreur = "Votre pseudo ne doit pas dépasser 255 caractères !";
}
} else {
$erreur = "Tous les champs doivent être complétés !";
}
}
?>
<html>
<head>
<title>TUTO PHP</title>
<meta charset="utf-8">
</head>
<body>
<div align="center">
<h2>Inscription</h2>
<br /><br />
<form method="POST" action="">
<table>
<tr>
<td align="right">
<label for="pseudo">Pseudo :</label>
</td>
<td>
<input type="text" placeholder="Votre pseudo" id="pseudo" name="pseudo" value="<?php if(isset($pseudo)) { echo $pseudo; } ?>" />
</td>
</tr>
<tr>
<td align="right">
<label for="mail">Mail :</label>
</td>
<td>
<input type="email" placeholder="Votre mail" id="mail" name="mail" value="<?php if(isset($mail)) { echo $mail; } ?>" />
</td>
</tr>
<tr>
<td align="right">
<label for="mail2">Confirmation du mail :</label>
</td>
<td>
<input type="email" placeholder="Confirmez votre mail" id="mail2" name="mail2" value="<?php if(isset($mail2)) { echo $mail2; } ?>" />
</td>
</tr>
<tr>
<td align="right">
<label for="mdp">Mot de passe :</label>
</td>
<td>
<input type="password" placeholder="Votre mot de passe" id="mdp" name="mdp" />
</td>
</tr>
<tr>
<td align="right">
<label for="mdp2">Confirmation du mot de passe :</label>
</td>
<td>
<input type="password" placeholder="Confirmez votre mdp" id="mdp2" name="mdp2" />
</td>
</tr>
<tr>
<td></td>
<td align="center">
<br />
<input type="submit" name="forminscription" value="Je m'inscris" />
</td>
</tr>
</table>
</form>
<?php
if(isset($erreur)) {
echo '<font color="red">'.$erreur."</font>";
}
?>
</div>
</body>
</html>
samzirt Le 26 janvier 2017 à 20:15 (Édité le 1 janvier 1970 à 01:00)
TheFlameflo Le 27 janvier 2017 à 01:53 (Édité le 27 janvier 2017 à 01:55)
Reprenons le problème à la base : tu n'arrives pas à enregistrer les données dans ta BDD et (logiquement) tu ne peux pas te connecter.
Bref, remplaces le code de connexion à la base de données par ça :
try
{
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
Si le problème est la connexion à la base de donnée, tu auras une erreur qui s'affichera.
Si c'est le cas, donne nous l'erreur complète.
Sinon, il y a deux vérifications "basiques" à faire :
- Vérifier si le nom de la table correspond
- Vérifier si le nom des champs correspond
J'espère t'avoir aidé ! 😀
samzirt Le 27 janvier 2017 à 20:46 (Édité le 1 janvier 1970 à 01:00)
Je pense que le problème vient de ma page d'édition du profil mais je ne suis pas sur.
Voici mon code de cette page:
<?php
session_start();
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
if (isset($_SESSION['id']))
{
$requser = $bdd->prepare("SELECT * FROM membres WHERE id = ?");
$requser->execute(array($_SESSION['id']));
$user = $requser->fetch();
if (isset($_POST['newpseudo']) AND !empty($_POST['newpseudo']) AND $_POST['newpseudo'] != $user['pseudo'])
{
$newpseudo = htmlspecialchars($_POST['newpseudo']);
$insertprenom = $bdd->prepare("UPDATE membres SET pseudo = ? WHERE id = ?");
$insertprenom->execute(array($newpseudo, $_SESSION['id']));
}
elseif (isset($_POST['newpseudo']) AND empty($_POST['newpseudo']) AND $_POST['newpseudo'] != $user['pseudo'])
{
header("Location:profil.php?id=".$_SESSION['id']);
}
if (isset($_POST['newmail']) AND !empty($_POST['newmail']) AND $_POST['newmail'] != $user['mail'])
{
$newmail = htmlspecialchars($_POST['newmail']);
$insertmail = $bdd->prepare("UPDATE membres SET mail = ? WHERE id = ?");
$insertmail->execute(array($newmail, $_SESSION['id']));
}
elseif (isset($_POST['newmail']) AND empty($_POST['newmail']) AND $_POST['newmail'] != $user['mail'])
{
header("Location:profil.php?id=".$_SESSION['id']);
}
if (isset($_POST['newmdp1']) AND !empty($_POST['newmdp1']) AND isset($_POST['newmdp2']) AND !empty($_POST['newmdp2']))
{
$mdp1 = sha1($_POST['newmdp1']);
$mdp2 = sha1($_POST['newmdp2']);
if ($mdp1 == $mdp2)
{
$insertmdp = $bdd->prepare("UPDATE membres SET motdepasse = ? WHERE id = ?");
$insertmdp->execute(array($mdp1, $_SESSION['id']));
}
else
{
$erreur = "Vos mot de passe ne correspondent pas";
}
}
elseif (isset($_POST['newmdp1']) AND empty($_POST['newmdp1']) AND isset($_POST['newmdp2']) AND empty($_POST['newmdp2']))
{
header("Location:profil.php?id=".$_SESSION['id']);
}
if (isset($_FILES['photodeprof']) AND !empty($_FILES['photodeprof']['name']))
{
$taillemax = 2097152;
$extensionsvalides = array('jpg', 'jpeg', 'png');
if ($_FILES['photodeprof']['size'] <= $taillemax)
{
$extensionupload = strtolower(substr(strrchr($_FILES['photodeprof']['name'], '.'), 1));
if (in_array($extensionupload, $extensionsvalides))
{
$chemin = "membres/photodeprofil/" .$_SESSION['id'].".".$extensionupload;
$resultat = move_uploaded_file($_FILES['photodeprof']['tmp_name'], $chemin);
if ($resultat)
{
$updatephotodeprofil = $bdd->prepare('UPDATE membres SET photodeprofil = 😋hotodeprofil WHERE id = :id');
$updatephotodeprofil->execute(array(
'photodeprofil' => $_SESSION['id'].".".$extensionupload,
'id' => $_SESSION['id']));
}
else
{
$erreur = "Erreur lors de l'importation de votre photo de profil";
}
}
else
{
$erreur = "Votre photo de profil doit être au format jpg, jpeg ou png";
}
}
else
{
$erreur = "Votre photo de profil ne doit pas dépasser 2Mo";
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<Title>IND Chat</Title>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="editionprofil.css" />
</head>
<body>
<header>
<div id="img2" ><a href="acceuil.php" title="Acceuil de IND Co"> <img src="INDco.png" /> </a></div>
</header>
<section>
<article><div id="Editionprofil" />
<h4>Editer mon profil</h4><br />
<form method="POST" action="" name="modifier2" enctype="multipart/form-data">
<label><div id="lab1"><br /><br />Pseudo: <br /> </label></div>
<input type="text" class="form3" name="newpseudo" placeholder="Pseudo" value="<?php if (isset($_SESSION['pseudo']))
{
echo $_SESSION['pseudo'];
} ?>" /><br /><br />
<label>Mail: <br /> </label>
<input type="email" class="form3" name="newmail" placeholder="Mail" value="<?php if (isset($_SESSION['mail']))
{
echo $_SESSION['mail'];
} ?>"" /><br /><br />
<label>Mot de passe: <br /> </label>
<input type="text" class="form3" name="newmdp1" placeholder="Mot de passe"/><br /><br />
<label>Confirmation du mot de passe: <br /> </label>
<input type="password" class="form3" name="newmdp2" placeholder="Confirmation mot de passe"/><br />
<label>Photo de profil: <br/> </label>
<input type="file" name="photodeprof" /><br /><br />
<input type="submit" class="sub3" name="modifier" value="Editer mon profil" />
</form>
<?php
if (isset($erreur))
{
echo $erreur;
}
?>
</article>
</section>
</div>
<footer>
</footer>
</body>
</html>
Merci de votre aide