[RESOLU] PHP Empêcher Ajout enregistrement si formulaire vide

hx.jonathan
WRInaute discret
WRInaute discret
 
Messages: 162
Inscription: 2 Mar 2005

[RESOLU] PHP Empêcher Ajout enregistrement si formulaire vide

Message le Mar Sep 15, 2009 10:59

Salut à tous, :D

Voici mon souci.

J'ai une page php qui contient un formulaire (2 champs) servant à ajouter des albums dans une table "Album". Seul hic, lorsque que je clique sur le bouton d'envoi de mon formulaire et que celui-ci est vide, il me crée quand même 2 nouveau enregistrements.

Voici mon code :

Code: Tout sélectionner
if (isset($_POST['album'])AND $_POST['album']!==""){

            foreach($_POST['album'] as $index=>$valeur){
                //echo $valeur;
         
         $insertalbum ="INSERT INTO Album(album_name) values('$valeur')";
         mysql_query($insertalbum) or die(mysql_error());   
            
            }   
}

?>

<h3>Ajouter des albums</h3>


<FORM method="POST" action="Admin.php?page=galerie_001_02">
   
<p><INPUT type="text" name="album[]" size=30></input> <INPUT TYPE=RESET value="Effacer la zone"></input></p>
<p><INPUT type="text" name="album[]" size=30></input> <INPUT TYPE=RESET value="Effacer la zone"></input></p>
<p><input type="submit"value="Créer le(s) album(s)"></input></p>

</FORM>



Quelqu'un a une petite idée.

Merci à tous.

Rien à voir mais comment on fait pour mettre un sujet en statut RESOLU après un délai de 6 heures ? Car j'ai oublié de le faire pour mon post précédent. :?:

John :D


mrPringle
WRInaute impliqué
WRInaute impliqué
 
Messages: 592
Inscription: 11 Mar 2006

Re: [RESOLU] PHP Empêcher Ajout enregistrement si formulaire vide

Message le Mar Sep 15, 2009 12:42

Essaie ça, je pense que ça devrait marcherdésolé pour l'indentation.

Code: Tout sélectionner
if (isset($_POST['album']){

            foreach($_POST['album'] as $index=>$valeur){
                //echo $valeur;
         
        if((!empty($valeur))&&($valeur!='')) {
$insertalbum ="INSERT INTO Album(album_name) values('$valeur')";
         mysql_query($insertalbum) or die(mysql_error());   
}
           
            }   
}
?>

<h3>Ajouter des albums</h3>
<FORM method="POST" action="Admin.php?page=galerie_001_02">
<p><INPUT type="text" name="album[]" size=30></input> <INPUT TYPE=RESET value="Effacer la zone"></input></p>
<p><INPUT type="text" name="album[]" size=30></input> <INPUT TYPE=RESET value="Effacer la zone"></input></p>
<p><input type="submit"value="Créer le(s) album(s)"></input></p>
</FORM>


spout
WRInaute accro
WRInaute accro
 
Messages: 4382
Inscription: 14 Mai 2003

Re: [RESOLU] PHP Empêcher Ajout enregistrement si formulaire vide

Message le Mar Sep 15, 2009 13:11

Afin de ne pas avoir de warning au foreach si $_POST['album'] est vide ou pas un array, je rajouterai:

Code: Tout sélectionner
if (isset($_POST['album'] && is_array($_POST['album'])){
...
}


@mrPringle
Code: Tout sélectionner
if((!empty($valeur))&&($valeur!=''))


C'est 2 fois la même condition, avec empty() c'est le plus propre

hx.jonathan
WRInaute discret
WRInaute discret
 
Messages: 162
Inscription: 2 Mar 2005

Re: [RESOLU] PHP Empêcher Ajout enregistrement si formulaire vide

Message le Mar Sep 15, 2009 13:15

Ok c'est bon,

J'ai mis le sujet en RESOLU.

Voici ce que j'ai fais :

Code: Tout sélectionner

if (isset($_POST['album'])){

            foreach($_POST['album'] as $index=>$valeur){
                //echo $valeur;
            
               if ($valeur!='') {
               
               $insertalbum ="INSERT INTO Album(album_name) values('$valeur')";
               mysql_query($insertalbum) or die(mysql_error());   
               
               }
         
         
            
            }   
}



spout
WRInaute accro
WRInaute accro
 
Messages: 4382
Inscription: 14 Mai 2003

Re: [RESOLU] PHP Empêcher Ajout enregistrement si formulaire vide

Message le Mar Sep 15, 2009 14:20

Dans ton code final, si on met un simple espace ou un ALT+0160, ça s'ajoutera quand même dans la BDD.
Code: Tout sélectionner
if (isset($_POST['album']) && is_array($_POST['album'])){

            foreach($_POST['album'] as $index=>$valeur){
                $valeur = trim($valeur);
           
               if (!empty($valeur)) {
               $insertalbum ="INSERT INTO Album(album_name) values('$valeur')";
               mysql_query($insertalbum) or die(mysql_error());   
               }
            }   
}

hx.jonathan
WRInaute discret
WRInaute discret
 
Messages: 162
Inscription: 2 Mar 2005

Re: [RESOLU] PHP Empêcher Ajout enregistrement si formulaire vide

Message le Mar Sep 15, 2009 15:35

Ouais c'est vrai. Je vais opter pour cette solution.

Encore merci. Ça m'évite d'avoir encore des soucis par la suite.

John


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités