par
Lhocyr » 26 févr. 2020, 23:46
Bonjour, j'ai un soucis avec mon message d'erreur $erreur "Veuillez compléter tous les champs." qui s'affiche tout le temps alors que je voudrai qu'il s'affiche seulement si c'est le cas quand l'utilisateur valide le formulaire.
Je me suis dis que le problème venait du "if(isset($_SESSION['id']))" étant donné que je ne fais pas la condition en fonction du "submit" de mon formulaire car sur ma page d'inscription, avec "if(isset($_POST['submit_form_Inscription']))" le message d'erreur ne s'affiche que lorsque le client valide le formulaire. Sauf que vu que je suis sur la session du client, je sais pas par quoi remplacer (si le problème vient de là).
J'espère que j'ai été assé compréhensible.
Je vous met mon traitement ci dessus et merci d'avance de vos réponses et de votre aide.
<?php
session_start();
include 'Include/database.php';
if(isset($_SESSION['id'])) {
$requser = $db->prepare("SELECT * FROM users WHERE id = ?");
$requser->execute(array($_SESSION['id']));
$userinfo = $requser->fetch();
if(isset($_POST['newmdp']) AND !empty($_POST['newmdp']) AND isset($_POST['newmdp2']) AND !empty($_POST['newmdp2'])) {
$oldmdp = sha1($_POST['oldmdp']);
$requser = $db->prepare("SELECT * FROM users WHERE password = ?");
$requser->execute(array($oldmdp));
$mdpexist = $requser->rowCount();
if($mdpexist == 1) {
$newmdp = sha1($_POST['newmdp']);
$newmdp2 = sha1($_POST['newmdp2']);
if($newmdp == $newmdp2) {
$insertmdp = $db->prepare("UPDATE users SET password = ? WHERE id = ?");
$insertmdp->execute(array($newmdp, $_SESSION['id']));
header('Location: page_user.php');
} else {
$erreur = "Vos deux mdp ne correspondent pas !";
}
} else {
$erreur = "Le mot de passe actuel saisie est incorrect.";
}
} else {
$erreur = "Veuillez compléter tous les champs.";
}
} else {
header("Location: page_user.php");
}
?>
Bonjour, j'ai un soucis avec mon message d'erreur $erreur "Veuillez compléter tous les champs." qui s'affiche tout le temps alors que je voudrai qu'il s'affiche seulement si c'est le cas quand l'utilisateur valide le formulaire.
Je me suis dis que le problème venait du "if(isset($_SESSION['id']))" étant donné que je ne fais pas la condition en fonction du "submit" de mon formulaire car sur ma page d'inscription, avec "if(isset($_POST['submit_form_Inscription']))" le message d'erreur ne s'affiche que lorsque le client valide le formulaire. Sauf que vu que je suis sur la session du client, je sais pas par quoi remplacer (si le problème vient de là).
J'espère que j'ai été assé compréhensible.
Je vous met mon traitement ci dessus et merci d'avance de vos réponses et de votre aide.
<?php
session_start();
include 'Include/database.php';
if(isset($_SESSION['id'])) {
$requser = $db->prepare("SELECT * FROM users WHERE id = ?");
$requser->execute(array($_SESSION['id']));
$userinfo = $requser->fetch();
if(isset($_POST['newmdp']) AND !empty($_POST['newmdp']) AND isset($_POST['newmdp2']) AND !empty($_POST['newmdp2'])) {
$oldmdp = sha1($_POST['oldmdp']);
$requser = $db->prepare("SELECT * FROM users WHERE password = ?");
$requser->execute(array($oldmdp));
$mdpexist = $requser->rowCount();
if($mdpexist == 1) {
$newmdp = sha1($_POST['newmdp']);
$newmdp2 = sha1($_POST['newmdp2']);
if($newmdp == $newmdp2) {
$insertmdp = $db->prepare("UPDATE users SET password = ? WHERE id = ?");
$insertmdp->execute(array($newmdp, $_SESSION['id']));
header('Location: page_user.php');
} else {
$erreur = "Vos deux mdp ne correspondent pas !";
}
} else {
$erreur = "Le mot de passe actuel saisie est incorrect.";
}
} else {
$erreur = "Veuillez compléter tous les champs.";
}
} else {
header("Location: page_user.php");
}
?>