Bonjour,
Voila je rencontre un petit problème avec mon code.
<?php
session_start();
error_reporting (E_ALL);
if (isset($_SESSION['id'])) {
try {
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
$requser = $bdd->prepare("SELECT * FROM membres WHERE id = ?");
$requser->execute(array($_SESSION['id']));
$user = $requser->fetch();
// On est en retour du formulaire
if (isset($_POST['newpseudo'])) {
$msg = '';
$newpseudo = trim($_POST['newpseudo']);
$newmail = trim($_POST['newmail']);
$mdp1 = trim($_POST['newmdp1']);
$mdp2 = trim($_POST['newmdp2']);
if ($newpseudo == '') {
$msg.= 'Pseudo obligatoire. ';
}
if ($newmail == '') {
$msg.= 'Mail obligatoire. ';
}
if ($mdp1 == '') {
$msg.= 'Mot de passe obligatoire. ';
}
if ($mdp2 == '') {
$msg.= 'Passe vérification obligatoire. ';
}
if ($mdp1 == $mdp2) {
$msg.= 'Mots de passe différents. ';
}
if ($msg == '') {
$mdp1 = password_hash($mdp1);
$majmembre = $bdd->prepare("UPDATE membres SET pseudo = ?, mail = ?, motdepasse = ? WHERE id = ?");
$majmembre->execute(array($newpseudo, $newmail, $mdp1, $_SESSION['id']));
header('Location: profil.php?id='. $_SESSION['id']);
exit();
}
}
} catch (PDOException $e) {
print "Erreur !: " . $e->getMessage() . "<br/>";
die();
}
?>
<!DOCTYPE html>
<html>
<charset
<head>
<title>TODO supply a title</title>
<meta charset="utf-8">
</head>
<body>
<div align="center">
<h2>Edition de mon profil</h2>
<br/><br/>
<form methode="POST" action="">
<table><tr>
<td align="right">
<label>Pseudo:</label>
</td>
<td>
<input type="text" name="newpseudo" value="<?php echo $user['pseudo']; ?>" placeholder="Pseudo" />
</td>
</tr>
<td align="right">
<label>Mail:</label>
</td>
<td>
<input type="text" name="newmail" value="<?php echo $user['mail']; ?>" placeholder="Mail" />
</td>
</tr>
<tr>
<td align="right">
<label>Passsword:</label>
</td>
<td>
<input type="password" name="newmdp1" placeholder="Mot de passe" />
</td>
</tr>
<tr>
<td align="right">
<label>Vérification password:</label>
</td>
<td>
<input type="password" name="newmdp2" placeholder="Confirmation mot de passe" />
</td>
</tr>
</table>
<br/><br/>
<input type="submit" value="Mise a jour du profil" />
</form>
<?php
if(isset($msg)) { echo $msg;}
?>
</div>
</body>
</html>
<?php
}
?>
je voudrai mettre a jour le pseudo , mail ,password
mais rien ne se passe ??
<form method="POST">
et non methode.
Lorsque tu vois que ta variable $_POST est vide, pense à tout de suite vérifier ta balise form.
Par défaut, un formulaire utilise la méthode GET.
Bonjour,
Pourrais-tu expliquer plus en détail ton problème.. car "rien ne se passe" ne nous avancera à rien.. rien en base de données ?.. tu n'as pas de retour ? Tu as fais des var_dump pour savoir ce que faisais ton code (pour voir par exemple à quel moment ça coince) ?
EDIT :
J'ai trouvé deux erreurs vers le début de ton code, tu tests si les mots de passe sont différents sauf que tu met ==.. or ça ne peut pas fonctionner.. (si mdp1 et mdp2 sont égaux > mot de passe différent.... il y a un problème).. ensuite tu met des points à chacun de tes égale.
Comme par exemple dans ce cas là :
if ($mdp1 == $mdp2) {
$msg.= 'Mots de passe différents. ';
}
Ce qui ne peut évidemment pas fonctionner.
Bonjour je voudrais mettre a jour un profil dans la base de donner et changer le pseudo , mail ,mot de pass.
voici mon code de depart que j'essaye de corriger car il ne marche pas ..
<?php
session_start();
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
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 = $_POST['newpseudo'];
$insertpseudo = $bdd->prepare("UPDATE membres SET pseudo = ? WHERE id = ?");
$insertpseudo->execute(array($newpseudo, $_SESSION['id']));
header('Location: profil.php?id='. $_SESSION['id']);
}
if (isset($_POST['newmail']) AND ! empty($_POST['newmail']) AND $_POST['newmail'] != $user['mail']) {
$newmail = $_POST['newmail'];
$insertmail = $bdd->prepare("UPDATE membres SET mail = ? WHERE id = ?");
$insertmail->execute(array($newmail, $_SESSION['id']));
header('Location: profil.php?id='. $_SESSION['id']);
}
if (isset($_POST['newmdp1']) AND ! empty($_POST['newmdp1']) AND ( isset($_POST['newmdp2']) AND ! empty($_POST['newmdp2']))) {
$mdp1 = password_hash($_POST['newmdp1']);
$mdp2 = password_hash($_POST['newmdp2']);
if ($mdp1 == $mdp2) {
$insertmdp = $bdd->prepare("UPDATE membres SET motdepasse = ? WHERE id = ?");
$insertmdp->execute(array($mdp1, $_SESSION['id']));
} else {
$msg = "Vos mots de passes sont incorrects";
}
}
?>
<!DOCTYPE html>
<html>
<charset
<head>
<title>TODO supply a title</title>
<meta charset="utf-8">
</head>
<body>
<div align="center">
<h2>Edition de mon profil</h2>
<br/><br/>
<form methode="POST" action="">
<table><tr>
<td align="right">
<label>Pseudo:</label>
</td>
<td>
<input type="text" name="newpseudo" value="<?php echo $user['pseudo']; ?>" placeholder="Pseudo" />
</td>
</tr>
<td align="right">
<label>Mail:</label>
</td>
<td>
<input type="text" name="newmail" value="<?php echo $user['mail']; ?>" placeholder="Mail" />
</td>
</tr>
<tr>
<td align="right">
<label>Passsword:</label>
</td>
<td>
<input type="password" name="newmdp1" placeholder="Mot de passe" />
</td>
</tr>
<tr>
<td align="right">
<label>Vérification password:</label>
</td>
<td>
<input type="password" name="newmdp2" placeholder="Confirmation mot de passe" />
</td>
</tr>
</table>
<br/><br/>
<input type="submit" value="Mise a jour du profil" />
</form>
<?php
if(isset($msg)) { echo $msg;}
?>
</div>
</body>
</html>
<?php
}
else {
header('Location: connexion.php');
}
?>
normalement il doit les donner doivent se mettre a jour quand je change les coordonnée ?
Merci d'avance :)
Bonsoir
j'ai enlever les points au premier code mais il ne marche toujours pas.
est je ne comprend pas par rapport au mot de pass ?
Bonjour
j'ai modifier le code pour le mot de pass c'est meiux?
ensuite j'ai fait un var_dump de post et cela m'affiche array (size=0)
empty
pouvait -vous m'aider je suis debutant :)
<?php
session_start();
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
if (isset($_SESSION['id'])) {
$requser = $bdd->prepare("SELECT * FROM membres WHERE id = ?");
$requser->execute(array($_SESSION['id']));
$user = $requser->fetch();
var_dump($_POST);
if (isset($_POST['newpseudo']) AND ! empty($_POST['newpseudo']) AND $_POST['newpseudo'] != $user['pseudo']) {
$newpseudo = $_POST['newpseudo'];
$insertpseudo = $bdd->prepare("UPDATE membres SET pseudo = ? WHERE id = ?");
$insertpseudo->execute(array($newpseudo, $_SESSION['id']));
}
if (isset($_POST['newmail']) AND ! empty($_POST['newmail']) AND $_POST['newmail'] != $user['mail']) {
$newmail = $_POST['newmail'];
$insertmail = $bdd->prepare("UPDATE membres SET mail = ? WHERE id = ?");
$insertmail->execute(array($newmail, $_SESSION['id']));
}
if (isset($_POST['newmdp1']) AND ! empty($_POST['newmdp1']) AND ( isset($_POST['newmdp2']) AND ! empty($_POST['newmdp2']))) {
$hash_mdp = password_hash(trim($_POST['mdp']), PASSWORD_DEFAULT);
if (trim($_POST['mdp']) == trim($_POST['mdp2'])) {
$insertmdp = $bdd->prepare("UPDATE membres SET motdepasse = ? WHERE id = ?");
$insertmdp->execute(array($mdp1, $_SESSION['id']));
} else {
$msg = "Vos mots de passes sont incorrects";
}
}
?>
<!DOCTYPE html>
<html>
<charset
<head>
<title>TODO supply a title</title>
<meta charset="utf-8">
</head>
<body>
<div align="center">
<h2>Edition de mon profil</h2>
<br/><br/>
<form methode="POST" action="profil.php">
<table><tr>
<td align="right">
<label>Pseudo:</label>
</td>
<td>
<input type="text" name="newpseudo" value="<?php echo $user['pseudo']; ?>" placeholder="Pseudo" />
</td>
</tr>
<td align="right">
<label>Mail:</label>
</td>
<td>
<input type="text" name="newmail" value="<?php echo $user['mail']; ?>" placeholder="Mail" />
</td>
</tr>
<tr>
<td align="right">
<label>Passsword:</label>
</td>
<td>
<input type="password" name="newmdp1" placeholder="Mot de passe" />
</td>
</tr>
<tr>
<td align="right">
<label>Vérification password:</label>
</td>
<td>
<input type="password" name="newmdp2" placeholder="Confirmation mot de passe" />
</td>
</tr>
</table>
<br/><br/>
<input type="submit" value="Mise a jour du profil" />
</form>
<?php
if(isset($msg)) { echo $msg;}
?>
</div>
</body>
</html>
<?php
}
else {
}
?>