Message d'erreur toujours affiché

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Message d'erreur toujours affiché

Re: Message d'erreur toujours affiché

par Lhocyr » 02 mars 2020, 13:23

En testant 2 3 truc j’ai trouvé, au lieux de mettre un « else { $erreur » j’ai mis un « else if (isset($_POST[‘monSubmit])) { $erreur » mais merci pour l’astuce afin d’alléger le code Spols.
Si j’enlève les « ! » devant les empty ça change toute ma condition.

Re: Message d'erreur toujours affiché

par dooki » 28 févr. 2020, 17:49

je pense que ca vient de cette ligne la ;

Code : Tout sélectionner

if(isset($_POST['newmdp']) AND !empty($_POST['newmdp']) AND isset($_POST['newmdp2']) AND !empty($_POST['newmdp2'])) {
peut être si tu enleves les "!" devant les empty, essaye et dis moi !

Re: Message d'erreur toujours affiché

par Spols » 28 févr. 2020, 09:35

2 petite remarque

pas besoin de faire un isset et un !empty, empty() comprends un isset dans son code machine ca allégera ton code

ensuite indente ton code correctement (sur le forum utilise les balises

Code : Tout sélectionner

[php][/php]
) tu verra que ton message $erreur ne correspond pas à la condition de session mais bien à la suivante.

découpe là en petit bout pour savoir ce qui bloque.

Message d'erreur toujours affiché

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");
}
?>