1. ✅ Apprenez une METHODE qui marche pour votre SEO ! Formation à distance avec Olivier Duffez et Fabien Facériès + aide pour prise en charge du financement
    Rejeter la notice

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

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par hx.jonathan, 15 Septembre 2009.

  1. hx.jonathan
    hx.jonathan WRInaute discret
    Inscrit:
    2 Mars 2005
    Messages:
    159
    J'aime reçus:
    0
    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:
    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
     
  2. mrPringle
    mrPringle WRInaute occasionnel
    Inscrit:
    11 Mars 2006
    Messages:
    473
    J'aime reçus:
    0
    Essaie ça, je pense que ça devrait marcherdésolé pour l'indentation.

    Code:
    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>
     
  3. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 056
    J'aime reçus:
    294
    Afin de ne pas avoir de warning au foreach si $_POST['album'] est vide ou pas un array, je rajouterai:

    Code:
    if (isset($_POST['album'] && is_array($_POST['album'])){
    ...
    }
    
    @mrPringle
    Code:
    if((!empty($valeur))&&($valeur!='')) 
    C'est 2 fois la même condition, avec empty() c'est le plus propre
     
  4. hx.jonathan
    hx.jonathan WRInaute discret
    Inscrit:
    2 Mars 2005
    Messages:
    159
    J'aime reçus:
    0
    Ok c'est bon,

    J'ai mis le sujet en RESOLU.

    Voici ce que j'ai fais :

    Code:
    
    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());	
    					
    					}
    			
    			
    				
                }	
    }
    
    
     
  5. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 056
    J'aime reçus:
    294
    Dans ton code final, si on met un simple espace ou un ALT+0160, ça s'ajoutera quand même dans la BDD.
    Code:
    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());   
                   }
                }   
    }
    
     
  6. hx.jonathan
    hx.jonathan WRInaute discret
    Inscrit:
    2 Mars 2005
    Messages:
    159
    J'aime reçus:
    0
    Ouais c'est vrai. Je vais opter pour cette solution.

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

    John
     
Chargement...
Similar Threads - [RESOLU] PHP Empêcher Forum Date
Problème images en https (forum phpbb) [résolu] Développement d'un site Web ou d'une appli mobile 18 Novembre 2017
[RESOLU] récupérer les images d'un dossier en php Développement d'un site Web ou d'une appli mobile 29 Novembre 2014
[Résolu] Reconnaître un Doctype en PHP Développement d'un site Web ou d'une appli mobile 25 Juillet 2012
Convertir texte pour URL en PHP [Résolu] Développement d'un site Web ou d'une appli mobile 8 Mai 2012
[PHP] Détecter l'OS, le navigateur et la langue [Résolu] Développement d'un site Web ou d'une appli mobile 4 Mars 2012
[résolu] phpmyadmin et OVH mutu : limitation ? Administration d'un site Web 7 Avril 2011
[Résolu] Formatter une chaine (php) Développement d'un site Web ou d'une appli mobile 14 Février 2011
[Résolu] Gestionnaire de maintenance en PHP pour son site Administration d'un site Web 26 Septembre 2010
[RESOLU] [PHP] Lire une position précise à une ligne précise Développement d'un site Web ou d'une appli mobile 28 Juillet 2010
[Résolu] - php - URL Rewriting chez free (free.fr) Développement d'un site Web ou d'une appli mobile 23 Juillet 2010