Ma vérifiacation de champs vide ne fonctionne pas

Fermé
kevin - Modifié par jordane45 le 24/08/2016 à 17:28
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 24 août 2016 à 18:03
Bonjour,
J'essaie de vérifier que mon formulaire n'est pas vide pour le soumettre mais voila il ne vérifie pas car je peux entrer un formulaire vide.

<?php
/**
 template Name: compte


*/?><?php    require 'includes/fcts.php';    require_once 'includes/identifiant.php';    verif_connexion();    session_start();    $req = $based -> prepare('SELECT * FROM mx_connexion WHERE email = ? ');            $req -> execute([$_SESSION['auth']->email]);            $user = $req->fetch();            $_SESSION['auth'] =$user;$erreurs = array();    if (!empty($_POST)){                if($_POST['nom'] != $_SESSION['auth']->nom){                    //$id_utilisateur = $_SESSION['auth']-> ID;                    $based -> prepare( "UPDATE mx_connexion SET nom = ? WHERE id = ?")->execute([$_POST['nom'], $_SESSION['auth']-> ID]);                    $success['nom'] = 'Votre nom a bien été mis à jours';        }         if($_POST['prenom'] != $_SESSION['auth']->prenom){                    //$id_utilisateur = $_SESSION['auth']-> ID;                    $based -> prepare( "UPDATE mx_connexion SET prenom = ? WHERE id = ?")->execute([$_POST['prenom'], $_SESSION['auth']-> ID]);                    $success['prenom'] = 'Votre prénom a bien été mis à jours';        }                            if($_POST['adresse'] != $_SESSION['auth']->adresse){                    $id_utilisateur = $_SESSION['auth']-> ID;                    $based -> prepare( "UPDATE mx_connexion SET adresse = ? WHERE id = ?")->execute([$_POST['adresse'], $_SESSION['auth']-> ID]);                    $success['adresse'] = 'Votre adresse a bien été mis à jours';        }                     if($_POST['email'] != $_SESSION['auth']->email){                    //$id_utilisateur = $_SESSION['auth']-> ID;                    $based -> prepare( "UPDATE mx_connexion SET email = ? WHERE id = ?")->execute([$_POST['email'], $_SESSION['auth']-> ID]);                    $success['email'] = 'Votre email a bien été mis à jours';        }                    if($_POST['numero'] != $_SESSION['auth']->numero){                    //$id_utilisateur = $_SESSION['auth']-> ID;                    $based -> prepare( "UPDATE mx_connexion SET numero = ? WHERE id = ?")->execute([$_POST['numero'], $_SESSION['auth']-> ID]);                    $success['numero'] = 'Votre numero a bien été mis à jours';        }   $req = $based -> prepare('SELECT * FROM mx_connexion WHERE email = ? ');            $req -> execute([$_SESSION['auth']->email]);            $user = $req->fetch();            $_SESSION['auth'] =$user;        }?>    <?php get_header(); ?>       <?php require 'includes/hder.php'; ?>    <div class="limoking-content"><!-- Above Sidebar Section--><!-- Sidebar With Content Section-->    <div class="with-sidebar-wrapper">        <div class="with-sidebar-container container">            <div class="with-sidebar-left nine columns">                <div class="with-sidebar-content eight columns">                    <section id="content-section-1">                            <div style="background-color: #fdfdfd; padding-top: 40px;" class="limoking-color-wrapper  gdlr-show-all no-skin">                                <div class="container">                                    <div class="limoking-item-title-wrapper limoking-item  limoking-center limoking-medium ">                                        <div class="limoking-item-title-container container">                                            <div class="limoking-item-title-head-inner" style="padding-bottom: 40px;">                                                <h3 class="limoking-item-title limoking-skin-title limoking-skin-border">Vos Informations</h3>                                            </div>                                            <?php if (!empty($erreurs)): ?>                                                <div class="alert alert-danger" style="text-align:left" >                                                    <ul>                                                        <p>Vous n'avez pas rempli le formulaire correctement:</p>                                                            <?php foreach($erreurs as $erreurs): ?>                                                                <li><?= $erreurs; ?></li>                                                            <?php endforeach; ?>                                                    </ul>                                                </div>                                            <?php endif; ?>                                            <?php if (!empty($success)): ?>                                                <div class="alert alert-success" style="text-align:left" >                                                    <ul>                                                        <p>Vos modifications ont bien été pris en compte et seront visible a la prochaine reconnection.</p>                                                            <?php foreach($success as $success): ?>                                                                <li><?= $success; ?></li>                                                            <?php endforeach; ?>                                                    </ul>                                                </div>                                            <?php endif; ?>                                            <div class="form-style-5">                                                <form id="" action="" method="post" >                                                    <fieldset id="fieldset1" disabled>                                                        <legend style="text-align:left"><span class="number">1</span> Nom et Prénom</legend>                                                            <input type="text" name="nom" value="<?=$_SESSION['auth']->nom;?>" >                                                            <input type="text" name="prenom" value="<?=$_SESSION['auth']->prenom;?> ">                                                      </fieldset>                                                    <fieldset  id="fieldset2" disabled>                                                        <legend style="text-align:left"><span class="number">2</span> Email, Adresse et Numéro</legend>                                                            <input type="email" name="email" value="<?=$_SESSION['auth']->email;?>">                                                            <input type="text" name="adresse" value="<?=$_SESSION['auth']->adresse;?>" placeholder="10 rue de la république 75010" >                                                    <input type="tel" name="numero" value="<?=$_SESSION['auth']->numero;?>">                                                    </fieldset>                                                <input type="submit" value="Valider" id="bm" style="display:none;"/>                                                                                                </form>                                                <button onclick="change()" id="change"style="color: white;background-color: #1EACC7;border: none;border-radius: 3px;font-size: 18px;width: 100%;padding: 7px 27px;font-family:Merriweather;font-weight: bold;">Modifier</button>                                            </div>                                        </div>                                    </div>                                <div class="limoking-item limoking-content-item"></div>                                <div class="clear"></div>                                <div class="clear"></div>                                </div>                            </div>                    <div class="clear"></div>                    </section>                       </div>            <div class="limoking-sidebar limoking-left-sidebar four columns">            <div class="limoking-item-start-content sidebar-left-item">            </div>            </div>            <div class="clear"></div>            </div>        <div class="limoking-sidebar limoking-right-sidebar three columns">        <div class="limoking-item-start-content sidebar-right-item">        </div>        </div>            <div class="clear"></div>        </div>        </div>    <!-- Below Sidebar Section--></div>        <script type="text/javascript"> function change(){ //document.getElementById("bm").value = "Valider";document.getElementById("fieldset1").disabled=false;document.getElementById("fieldset2").disabled=false;document.getElementById("bm").style.display = "block";document.getElementById("change").style.display = "none";  }        </script><?php get_footer(); ?>


Voila je suis débutant en php j’espère ne pas avoir fait trop de bêtise.
Merci d'avance

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 août 2016 à 17:30
Bonjour,

Peux-tu, s'il te plait, reposter ton code en utilisant les balises de code (en y précisant le langage pour que la coloration syntaxique se mette) (comme je viens de le faire en éditant ton message) et surtout... en faisant des retours à la ligne et en mettant l'indentation
Car là... ton code est illisible.....

NB: Explication sur l'utilisation des balises de code : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

0
oui bien sur désolé j'étais sure de l'avoir fait

<?php

require 'includes/fcts.php';
require_once 'includes/identifiant.php';
verif_connexion();
session_start();
$req = $based -> prepare('SELECT * FROM mx_connexion WHERE email = ? ');
$req -> execute([$_SESSION['auth']->email]);
$user = $req->fetch();
$_SESSION['auth'] =$user;
$erreurs = array();
if (!empty($_POST)){

if($_POST['nom'] != $_SESSION['auth']->nom){
//$id_utilisateur = $_SESSION['auth']-> ID;
$based -> prepare( "UPDATE mx_connexion SET nom = ? WHERE id = ?")->execute([$_POST['nom'], $_SESSION['auth']-> ID]);
$success['nom'] = 'Votre nom a bien été mis à jours';
}


if($_POST['prenom'] != $_SESSION['auth']->prenom){
//$id_utilisateur = $_SESSION['auth']-> ID;
$based -> prepare( "UPDATE mx_connexion SET prenom = ? WHERE id = ?")->execute([$_POST['prenom'], $_SESSION['auth']-> ID]);
$success['prenom'] = 'Votre prénom a bien été mis à jours';
}


if($_POST['adresse'] != $_SESSION['auth']->adresse){
$id_utilisateur = $_SESSION['auth']-> ID;
$based -> prepare( "UPDATE mx_connexion SET adresse = ? WHERE id = ?")->execute([$_POST['adresse'], $_SESSION['auth']-> ID]);
$success['adresse'] = 'Votre adresse a bien été mis à jours';
}


if($_POST['email'] != $_SESSION['auth']->email){
//$id_utilisateur = $_SESSION['auth']-> ID;
$based -> prepare( "UPDATE mx_connexion SET email = ? WHERE id = ?")->execute([$_POST['email'], $_SESSION['auth']-> ID]);
$success['email'] = 'Votre email a bien été mis à jours';
}


if($_POST['numero'] != $_SESSION['auth']->numero){
//$id_utilisateur = $_SESSION['auth']-> ID;
$based -> prepare( "UPDATE mx_connexion SET numero = ? WHERE id = ?")->execute([$_POST['numero'], $_SESSION['auth']-> ID]);
$success['numero'] = 'Votre numero a bien été mis à jours';
}
$req = $based -> prepare('SELECT * FROM mx_connexion WHERE email = ? ');
$req -> execute([$_SESSION['auth']->email]);
$user = $req->fetch();
$_SESSION['auth'] =$user;

}
?>

<?php get_header(); ?>   
<?php require 'includes/hder.php'; ?>

<div class="limoking-content">

<!-- Above Sidebar Section-->

<!-- Sidebar With Content Section-->
<div class="with-sidebar-wrapper">
<div class="with-sidebar-container container">
<div class="with-sidebar-left nine columns">
<div class="with-sidebar-content eight columns">
<section id="content-section-1">
<div style="background-color: #fdfdfd; padding-top: 40px;" class="limoking-color-wrapper  gdlr-show-all no-skin">
<div class="container">
<div class="limoking-item-title-wrapper limoking-item  limoking-center limoking-medium ">
<div class="limoking-item-title-container container">
<div class="limoking-item-title-head-inner" style="padding-bottom: 40px;">
<h3 class="limoking-item-title limoking-skin-title limoking-skin-border">Vos Informations</h3>
</div>
<?php if (!empty($erreurs)): ?>
<div class="alert alert-danger" style="text-align:left" >
<ul>
<p>Vous n'avez pas rempli le formulaire correctement:</p>
<?php foreach($erreurs as $erreurs): ?>
<li><?= $erreurs; ?></li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<?php if (!empty($success)): ?>
<div class="alert alert-success" style="text-align:left" >
<ul>
<p>Vos modifications ont bien été pris en compte et seront visible a la prochaine reconnection.</p>
<?php foreach($success as $success): ?>
<li><?= $success; ?></li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<div class="form-style-5">
<form id="" action="" method="post" >
<fieldset id="fieldset1" disabled>
<legend style="text-align:left"><span class="number">1</span> Nom et Prénom</legend>
<input type="text" name="nom" value="<?=$_SESSION['auth']->nom;?>" >
<input type="text" name="prenom" value="<?=$_SESSION['auth']->prenom;?> ">  
</fieldset>
<fieldset  id="fieldset2" disabled>
<legend style="text-align:left"><span class="number">2</span> Email, Adresse et Numéro</legend>
<input type="email" name="email" value="<?=$_SESSION['auth']->email;?>">
<input type="text" name="adresse" value="<?=$_SESSION['auth']->adresse;?>" placeholder="10 rue de la république 75010" >
<input type="tel" name="numero" value="<?=$_SESSION['auth']->numero;?>">
</fieldset>
<input type="submit" value="Valider" id="bm" style="display:none;"/>

</form>
<button onclick="change()" id="change"style="color: white;background-color: #1EACC7;border: none;border-radius: 3px;font-size: 18px;width: 100%;padding: 7px 27px;font-family:Merriweather;font-weight: bold;">Modifier</button>
</div>
</div>
</div>
<div class="limoking-item limoking-content-item"></div>
<div class="clear"></div>
<div class="clear"></div>
</div>
</div>
<div class="clear"></div>
</section>       
</div>

<div class="limoking-sidebar limoking-left-sidebar four columns">
<div class="limoking-item-start-content sidebar-left-item">
</div>
</div>
<div class="clear"></div>
</div>

<div class="limoking-sidebar limoking-right-sidebar three columns">
<div class="limoking-item-start-content sidebar-right-item">
</div>
</div>
<div class="clear"></div>
</div>    
</div>    

<!-- Below Sidebar Section-->


</div>

<script type="text/javascript">
function change(){
//document.getElementById("bm").value = "Valider";
document.getElementById("fieldset1").disabled=false;
document.getElementById("fieldset2").disabled=false;
document.getElementById("bm").style.display = "block";
document.getElementById("change").style.display = "none";

}
</script>
<?php get_footer(); ?>


EDIT : Modification du langage dans la balise de code (toi c'est du PHP... pas du "basic")
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 août 2016 à 18:03
Tu dis :

J'essaie de vérifier que mon formulaire n'est pas vide

A quel endroit dans ton code fais tu cette vérification ?
Je ne vois pas......

Sachant que tu pourrais utiliser d'une part l'attribut REQUIRE sur tes champs html...
et éventuellement du Javascript pour activer (ou non) le bouton de submit en fonction du remplissage de ton formulaire....

Prends aussi l'habitude de récupérer "proprement" tes variables post AVANT de les utiliser.
Regarde ici : https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index

Et vu que tu utilises la PDO .. je t'invite fortement à également gérer les éventuelles erreurs pdo : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
0