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 :

verifier des champ avant de les poster


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de chrisl0
    Homme Profil pro
    Par là ;)
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Par là ;)

    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Points : 77
    Points
    77
    Par défaut verifier des champ avant de les poster
    bonjour jai fait un petit livre d'or qui fonctionne tres bien mais je voudrai verifier les champ si ils sont bien remplis avant de les enregistrer dans la base de donner
    je c'est que pour verifier des champ il faut faire sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(empty($pseudo) OR empty($message)) { }
    mais je c'est pas comment le mettre la dedans :
    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
     
            if(isset($_POST['envoyer'])){
                $pseudo=$_POST['pseudo'];
                $message=$_POST['message'];
     
     
    }
    else {
     
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); 
        $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); 
        $message = nl2br($message); 
     
        mysql_query("INSERT INTO livre VALUES('', '" . $pseudo . "', '" . $message . "')");
     
    }
    ?>
    merci de maider c'est la derniere chose qui me reste afaire pour finir mon patit site.
    merci d'avance

  2. #2
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 279
    Points : 164
    Points
    164
    Par défaut
    Salut,
    Je ferai une premiere verification en javascript et si alors c'est bien rempli alors je fais le submit...
    En php :
    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
     
    if(isset($_POST['envoyer'])){
             if(empty($pseudo) OR empty($message)) { 
               //echo ton formulaire avec un message : dsl tu nas pas tout remplit
            }else{
                 $pseudo=$_POST['pseudo'];
                $message=$_POST['message'];
                $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); 
                  $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); 
        $message = nl2br($message); 
     
                      mysql_query("INSERT INTO livre VALUES('', '" . $pseudo . "', '" . $message . "')");
     
     
    }
    }
    Je sais pas si j'ai bien compris ta question...

  3. #3
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Moi je crois qu'on peut rester en PHP en faisant ça :
    (2 conditions imbriquées (scuse on peut pas indenter direct sur le forum dans les balises code))...

    D'une façon générale, je crois que ce qui t'intéresse plus, c'est quand tous les champs sont remplis et que ça tourne comme tu veux... Pour le reste, on peut se contenter d'un "else".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if(isset($_POST['envoyer'])){
     
    if(($_POST['pseudo'])!=NULL)&&($_POST['pseudo'])!='')&&($_POST['message']!=NULL)&&($_POST['message']!='')){
     
     $pseudo=$_POST['pseudo'];
       $message=$_POST['message'];
     
    //tu continues ici en remplissant ta base avec les choses entrées par l'utilisateur
    }
    else{
    echo '<font color="red">Il faut remplir tous les champs !</font>';
    }
    }
    Pour la différence entre NULL et '', NULL il a pas touché au champ, '' (double apostrophes collées) : il a rempli un truc puis effacé pour t'envoyer finalement un champ vide...
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  4. #4
    Membre régulier Avatar de chrisl0
    Homme Profil pro
    Par là ;)
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Par là ;)

    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Points : 77
    Points
    77
    Par défaut
    merci a vous deux je vais tester sa

  5. #5
    Membre régulier Avatar de chrisl0
    Homme Profil pro
    Par là ;)
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Par là ;)

    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Points : 77
    Points
    77
    Par défaut
    enfaite jai essayer se que vous mavez dit mais sa fonctionnai pas alors je suis passer en javascript et sa fonctionne tres bien merci a vous

  6. #6
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    Dans l'attribut "action" de ton formulaire qu'avais tu mis ?

  7. #7
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par chrisl0 Voir le message
    enfaite jai essayer se que vous mavez dit mais sa fonctionnai pas alors je suis passer en javascript et sa fonctionne tres bien merci a vous
    Houla SURTOUT PAS !!

    Bien sur le javascript va te contrôler chez tout ceux qui acceptent javascript !

    Mais n'oublies pas la régle d'or de Sabotage tout ce qui vient du client (visiteur) il faut que le serveur le contôle, donc du PHP derriére le GET ou le POST
    Car c' est la sécuritée qui compte !

    Alors prenons le texte lui même de ton livre d' or, en faisant cela,
    en exagérent un peut ...
    htmlentities et trim c' est béton,



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (isset($_POST["Ltxt"])) $Ltxt=htmlentities(trim($_POST["Ltxt"]));
       else $Ltxt="";
    // ensuite pour écrire dans MYSQL
     
     if(!get_magic_quotes_gpc() )     {          $Ltxt =addslashes($Ltxt);     }
          else       {             $Ltxt =str_replace("'","''",$Ltxt);       }

  8. #8
    Membre régulier Avatar de chrisl0
    Homme Profil pro
    Par là ;)
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Par là ;)

    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Points : 77
    Points
    77
    Par défaut
    ok FoxLeRenard jsuis d'accord avec toi mais je comprend pas trop comment l'adapter a mon ptit livre dor tout ton code. Chrisl0 <----- Very noob il comprend vite mais faut lui expliker longtemp

  9. #9
    FoxLeRenard
    Invité(e)
    Par défaut
    Bon alors tout en haut de ton PHP tu aurais

    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
     
    if (isset($_POST["envoyer"])) $envoyer=htmlentities(trim($_POST["envoyer"]));
       else $envoyer="";
    if (isset($_POST["pseudo"])) $pseudo=htmlentities(trim($_POST["pseudo"]));
       else $pseudo="";
    if (isset($_POST["message"])) $message=htmlentities(trim($_POST["message"]));
       else $message="";
     
    if(!get_magic_quotes_gpc() )     {     $pseudo =addslashes($pseudo);   }
          else       {             $pseudo =str_replace("'","''",$pseudo);       }
    if(!get_magic_quotes_gpc() )     {    $message =addslashes($message);     }
          else       {             $message =str_replace("'","''",$message);       }
     
     
     
        $message = nl2br($message); 
     
        mysql_query("INSERT INTO livre VALUES('', '" . $pseudo . "', '" . $message . "')");

  10. #10
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par Jumano Voir le message
    Bonjour,
    Dans l'attribut "action" de ton formulaire qu'avais tu mis ?
    Chris, réponds au monsieur et mets-nous ton formulaire entier...
    PHP fonctionne très bien, si on apprend à s'en servir.

    http://sylvie-vauthier.developpez.co...rmulaires#LIII
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  11. #11
    Membre régulier Avatar de chrisl0
    Homme Profil pro
    Par là ;)
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Par là ;)

    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Points : 77
    Points
    77
    Par défaut
    dendrite tu me la demander je te le donne tout le code php sans le formulaire qui envoye les donner sa serre a rien enfin de mon point de vue
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
                <?php
    connectMaBase();
     
     
    if (isset($_POST['pseudo']) AND isset($_POST['message']))
    {
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
        $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); // De même pour le message
        $message = nl2br($message); 
     
        mysql_query("INSERT INTO livre VALUES('', '" . $pseudo . "', '" . $message . "')");
     
    }
    ?>
    <?php
    $nombreDeMessagesParPage = 20;
    $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livre');
    $donnees = mysql_fetch_array($retour);
    $totalDesMessages = $donnees['nb_messages'];
    $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
    echo 'Page : ';
    for ($i = 1 ; $i <= $nombreDePages ; $i++)
    {
        echo '<a href="livre.php?page=' . $i . '">' . $i . '</a> ';
    }
    ?>
     
    </p>
     
    <?php
     
    if (isset($_GET['page']))
    {
            $page = $_GET['page']; 
    }
    else 
    {
            $page = 1; 
    }
     
    $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
     
    $reponse = mysql_query('SELECT * FROM livre ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
     
    while ($donnees = mysql_fetch_array($reponse))
    {
            echo "
       <fieldset>
           <legend>". $donnees['pseudo'] ."  a écrit :</legend>
    
           <label>". nl2br(stripslashes($donnees['message'])) ."</label>   
       </fieldset>
    ";
    }
     
    mysql_close(); 
    ?>
    voila sa donne sa
    c pas du super code sa je c'est mais jsuis pas non plus un super codeur.
    merci en tout cas pour vautre aide
    maintenant je vais tester le code de FoxLeRenard voir se que sa donne

  12. #12
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Oui mais tu ne réponds toujours pas à ma question :
    Envoyé par Jumano
    Bonjour,
    Dans l'attribut "action" de ton formulaire qu'avais tu mis ?
    Je voulais juste savoir si sur le "submit" tu reviens sur la même page ou si tu affiches une nouvelle page pour effectuer tes diverses reqêtes PHP.

  13. #13
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Chris, ça serait bien de pas répondre à côté, tu dois lire trop vite.

    Citation Envoyé par Jumano et Dendrite au moins deux fois chacun
    mets-nous ton formulaire entier...
    Citation Envoyé par Chris
    dendrite tu me la demander je te le donne tout le code php sans le formulaire
    Ton formulaire, c'est la balise

    <form blablabla>
    </form>

    Et il est peut-être sur une autre page php...
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  14. #14
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par FoxLeRenard Voir le message
    Houla SURTOUT PAS !!

    Bien sur le javascript va te contrôler chez tout ceux qui acceptent javascript !

    Mais n'oublies pas la régle d'or de Sabotage tout ce qui vient du client (visiteur) il faut que le serveur le contôle, donc du PHP derriére le GET ou le POST
    Car c' est la sécuritée qui compte !

    Alors prenons le texte lui même de ton livre d' or, en faisant cela,
    en exagérent un peut ...
    htmlentities et trim c' est béton,



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (isset($_POST["Ltxt"])) $Ltxt=htmlentities(trim($_POST["Ltxt"]));
       else $Ltxt="";
    // ensuite pour écrire dans MYSQL
     
     if(!get_magic_quotes_gpc() )     {          $Ltxt =addslashes($Ltxt);     }
          else       {             $Ltxt =str_replace("'","''",$Ltxt);       }
    Je fais un petit écart, veuillez m'en excuser.
    Dans ce code, nous "nettoyons" les variables avant l'insertion dans la base.. Sur une autre discussion, j'avais lu de le faire avant l'affichage, autrement dit on stock tout en brut dans la base.

    Qu'en est il vraiment ?

  15. #15
    Membre régulier Avatar de chrisl0
    Homme Profil pro
    Par là ;)
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Par là ;)

    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Points : 77
    Points
    77
    Par défaut
    tous est sur la meme page le formulaire et la parti php

    et le formulaire c'est sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                 <form name="livre" method="post" action="livre.php">
            <p>
                Pseudo : <input name="pseudo" size="20" /><br />
                Message :<br />
                <textarea name="message" rows="8" cols="35"></textarea><br />
                <input type="submit" value="Envoyer" onclick="javascript: return verif();"/>
    par contre foxlerenard jai essayer ton code
    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
     
    if (isset($_POST["envoyer"])) $envoyer=htmlentities(trim($_POST["envoyer"]));
       else $envoyer="";
    if (isset($_POST["pseudo"])) $pseudo=htmlentities(trim($_POST["pseudo"]));
       else $pseudo="";
    if (isset($_POST["message"])) $message=htmlentities(trim($_POST["message"]));
       else $message="";
     
    if(!get_magic_quotes_gpc() )     {     $pseudo =addslashes($pseudo);   }
          else       {             $pseudo =str_replace("'","''",$pseudo);       }
    if(!get_magic_quotes_gpc() )     {    $message =addslashes($message);     }
          else       {             $message =str_replace("'","''",$message);       }
     
     
     
        $message = nl2br($message); 
     
        mysql_query("INSERT INTO livre VALUES('', '" . $pseudo . "', '" . $message . "')");
    et a chaque fois que je clique sur le lien pour consulter le livre sa me rajoute une entrer dans la base de donner

  16. #16
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par cassis2k Voir le message
    Je fais un petit écart, veuillez m'en excuser.
    Dans ce code, nous "nettoyons" les variables avant l'insertion dans la base.. Sur une autre discussion, j'avais lu de le faire avant l'affichage, autrement dit on stock tout en brut dans la base.
    Qu'en est il vraiment ?
    Non, je n'écris pas la page PHP ... je mets deux choses différentes avec entre les deux ce commentaire ...
    // ensuite pour écrire dans MYSQL

    Donc en tête du PHP qui reçoit, on capte les données saisies
    La on en fait ce que l' on veut, affichage etc ...

    et quand on veut on les écrit en faisant avant la protection on écrit dans Mysql !

  17. #17
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par chrisl0 Voir le message
    tous est sur la meme page le formulaire et la parti php et le formulaire c'est ça:
    par contre foxlerenard jai essayer ton code
    et a chaque fois que je clique sur le lien pour consulter le livre sa me rajoute une entrer dans la base de donner
    tous est sur la meme page le formulaire et la parti php et le formulaire c'est ça
    OUI !! mais tu fais comme tu veux


    par contre foxlerenard jai essayer ton code
    et a chaque fois que je clique sur le lien pour consulter le livre sa me rajoute une entrer dans la base de donne

    Ah non, car si tout est sur la même page tu n'écrit que si il y a eu une nouvelle saisie !

    Donc tu protéges par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     if ($envoyer!="" && $pseudo!="" && $message!="")
      {
       mysql_query("INSERT INTO livre VALUES('', '" . $pseudo . "', '" .  
       $message . "')");
      }
    Je n'écris que si j'ais une validation d'un texte etc ..

  18. #18
    Membre régulier Avatar de chrisl0
    Homme Profil pro
    Par là ;)
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Par là ;)

    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Points : 77
    Points
    77
    Par défaut
    merci foxlerenard sa fonctionne tres bien

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

Discussions similaires

  1. [MySQL] verifier des champ de formulaire avec DB
    Par marwen86 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 22/02/2010, 08h37
  2. Tester des champs avant envoie mail
    Par neuneu1 dans le forum Langage
    Réponses: 31
    Dernier message: 27/11/2008, 17h15
  3. Modifier des éléments avant de les copier
    Par VinnieMc dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 30/07/2008, 14h41
  4. Controles des champs avant insertion dans la base de donnees avec talend
    Par tchanga dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 16/06/2008, 16h56
  5. Comment calculer et afficher des champs calculés sur les états ?
    Par babez dans le forum Bases de données
    Réponses: 8
    Dernier message: 05/06/2008, 21h51

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