IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Condition empty incohérente


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Collégien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut Condition empty incohérente
    Salut, je code actuellement un site de web radio et je bloc sur le systeme de news pour l'instant j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <form method="POST" action="">
    <?php
    if(!empty($_POST['titre']) && !empty($_POST['pseudo']) && !empty($_POST['news'])){
    	$erreur ="";
    	$date = date()."/".date()."/".date();
    	$heur = date().":".date().":".date();
    	mysql_query("INSERT INTO news (id , titre , cont , auteur , date , heure , aprob)VALUES ('' , '".$_POST['titre']."', '".$_POST['news']."', '".$_POST['pseudo']."', '".$date."', '".$heur."', '1')");
    }else{
    	$error = "Vous devez remplir tous le champs pour un news.";
    }
    ?>
            <table>
            <tr>
            <td><label>Titre de la news</label></td>
            <td><input type="text" name="titre" class="input"/></td>
            </tr>
            <tr>
            <td><label>Votre compte :</label></td>
            <td><input type="text" name="pseudo" class="input"/></td>
            </tr>
            <tr>
            <td><label>Votre news :</label></td>
            <td><textarea class="input text" name="news"><?php if(isset($_POST['news'])){echo $_POST['news'];}?></textarea></td>
            </tr>
            <tr>
            <td></td>
            <td><input type="submit" value="Envoyer" class="input button"/></td>
            </tr>
            </table>
    </form>
            <span style="color:red;"><?php echo $error;?></span>
            <span style="color:green;"><?php echo $valid;?></span>
    Logiquement avec le if !empty() c'est censé ne pas afficher l'erreur si tous les champs sont remplis mais ça affiche l'erreur...

  2. #2
    Membre Expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Y a pas 36000 solutions, s'il ne rentre pas dans le if c'est que $_POST['titre'] ou $_POST['pseudo'] ou $_POST['news'] est empty.

    Pour t'en assurer fais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    print_r($_POST);
    exit;
    juste avant le if pour vérifier ce que contient ton tableau $_POST.

    Au passage, ce que tu fais pour date ne fonctionnera pas. Je pense que c'est plutôt ça que tu veux faire :

  3. #3
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Collégien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut Je pense que je vais recommencer
    Citation Envoyé par Spartacusply Voir le message
    Y a pas 36000 solutions, s'il ne rentre pas dans le if c'est que $_POST['titre'] ou $_POST['pseudo'] ou $_POST['news'] est empty.

    Pour t'en assurer fais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    print_r($_POST);
    exit;
    juste avant le if pour vérifier ce que contient ton tableau $_POST.
    Je vais recommencer car la c'est vraiment bizarre, j'ai fait le print_r mais ça m'affiche un tableau vide...
    Merci de votre aide à bientôt

  4. #4
    Membre Expert Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Par défaut
    Salut,

    la 1ère fois c'est normal, vu que tu n'as pas posté le formulaire.
    Pour ton test, tu dois en premier vérifier que ton formulaire a bien été posté avant.

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    En dehors du fait que tu aies mis $erreur au lieu de $error, ton script doit fonctionner.
    Attention cependant aux injections SQL (cf. fonction mysql_real_escape) et utilise une colonne DATETIME et les fonctions mysql de temps au lieu de 2 colonnes mal-construites à la main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(!empty($_POST['titre']) && !empty($_POST['pseudo']) && !empty($_POST['news'])){
    	$error ="";
    	mysql_query("INSERT INTO news (titre , cont , auteur , date_news , heure , aprob) VALUES ('".mysql_real_escape_string($_POST['titre'])."', '".mysql_real_escape_string($_POST['news'])."', '".mysql_real_escape_string($_POST['pseudo'])."', CURDATE(), 1)");
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Collégien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut Merci
    Merci de votre aide j’essaierai demain car la je suis creuvé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. condition if /empty /else
    Par david_gal dans le forum Langage
    Réponses: 7
    Dernier message: 14/02/2013, 17h05
  2. [Conception] condition et empty
    Par carelha dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 04/12/2006, 10h29
  3. [PHP-JS] Problème condition empty()
    Par vincedjs dans le forum Langage
    Réponses: 34
    Dernier message: 28/02/2006, 16h27
  4. Condition et contenu TImage
    Par Detlev_linux dans le forum Langage
    Réponses: 6
    Dernier message: 23/12/2003, 01h00
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo