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 :

Problème avec les if


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 101
    Par défaut Problème avec les if
    Bonjour,

    Je m'explique. J'ai réalisé un formulaire html et il faut plusieurs conditions pour que l'envoi soit réussi.
    Par exemple, il faut que certains caractères spéciaux n'apparaissent pas ou que la longueur d'un champ ne dépasse pas celle fixée.
    Pour ces 2 conditions j'ai réussi.

    Maintenant je voudrais que le formulaire ne puisse pas être envoyé s'il est vide ou à moitié remplit.

    Quel code utiliser et ou le placer dans mon fichier php ?

    Voici mon fichier 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
    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
     
    <?php
     
    $host = "127.0.0.1";
    $user = "root";
    $pass = "kiki";
    $bdd = "egroupware";
     
    mysql_connect($host, $user, $pass) or die ("Impossible de se connecter avec ces identifiants");
     
    mysql_select_db("$bdd") or die ("Impossible de se connecter à la base");
     
     
    $table="egw_solucee";
    $objet=""; if(!empty($_POST["objet"]))
       $objet=addslashes($_POST["objet"]);   
    $description=""; if(!empty($_POST["description"]))
       $description=$_POST["description"];  
    $prive=""; if(!empty($_POST["prive"]))
       $prive=$_POST["prive"];
    $prio=""; if(!empty($_POST["prio"]))
       $prio=$_POST["prio"];
     
     
    $carac= '<>"$/';
    $retour=false;
    for ($i=0; $i<strlen($carac); $i++)
        if(strpos($description, $carac{$i})!==false)
    	{
            $retour=true;
            break;
        }
     
    if ($retour)
    {
    	echo "Votre description contient les caractères : <, >, $, /. Elle n'a pas été ajoutée.
        L'objet contient"." ".strlen($objet)." "."caractères"; 
    }
     
    else
    {
    	$query = "INSERT INTO $table(tr_summary, tr_description, tr_private, tr_priority)";
    	$query .= "VALUES('$objet', '$description', '$prive', '$prio')";
    	$result = mysql_query($query);
     
    	echo "Données envoyées";
    }
     
    mysql_close();
     
    ?>
     
    Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 156
    Par défaut
    Je ne connais pas le nom des champs de ton forumlaire puisque tu ne l'as pas mis, mais pour tester si un champ est vide tu fais tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($_POST['nom_de_ton_champ'] == ""){
    // Erreur, il faut renseigner le champ
    }

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 101
    Par défaut
    Merci ça marche pour 1 champ ! Mais si je veux faire ça pour plusieurs ? Si je met

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if ($_POST['nom_de_ton_champ'] == ""){
    // Erreur, il faut renseigner le champ
    }
    plusieurs fois ça ne marche pas...

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 156
    Par défaut
    ben tu fais un if avec des ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($_POST['nom_de_ton_champ1'] == "" ||$_POST['nom_de_ton_champ2'] == "" || ... || $_POST['nom_de_ton_champN'] == ""){
    // Erreur, il faut renseigner tous les champs
    }

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 101
    Par défaut
    Voici ce que ça me donne :

    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
     
    $carac= '<>"$/';
    $retour=false;
    for ($i=0; $i<strlen($carac); $i++)
        if(strpos($description, $carac{$i})!==false)
    	{
            $retour=true;
            break;
        }
     
    if ($retour)
    {
    	echo "Votre description contient les caractères : <, >, $, /. Elle n'a pas été ajoutée.
        L'objet contient"." ".strlen($objet)." "."caractères"; 
    }
     
    if ($_POST['objet'] == "" || $_POST['objet'] == "" )
    {
    	echo "Erreur, vous n'avez pas remplit le champ objet ou description";
    }
     
    else
    {
    	$query = "INSERT INTO $table(tr_summary, tr_description, tr_private, tr_priority)";
    	$query .= "VALUES('$objet', '$description', '$prive', '$prio')";
    	$result = mysql_query($query);
     
    	echo "Données envoyées";
    }
     
    mysql_close();
    Ca fonctionne si le champ objet n'est pas remplit mais pas pour le champ description..

    Ca vient peut-être du fait que j'ai une condition au dessus ? Parce qu'il faut que les 2 if puissent fonctionner ensemble

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 101
    Par défaut
    Excuse mon code c'est ç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
     
    $carac= '<>"$/';
    $retour=false;
    for ($i=0; $i<strlen($carac); $i++)
        if(strpos($description, $carac{$i})!==false)
    	{
            $retour=true;
            break;
        }
     
    if ($retour)
    {
    	echo "Votre description contient les caractères : <, >, $, /. Elle n'a pas été ajoutée.
        L'objet contient"." ".strlen($objet)." "."caractères"; 
    }
     
    if ($_POST['objet'] == "" || $_POST['description'] == "" )
    {
    	echo "Erreur, vous n'avez pas remplit le champ objet ou description";
    }
     
    else
    {
    	$query = "INSERT INTO $table(tr_summary, tr_description, tr_private, tr_priority)";
    	$query .= "VALUES('$objet', '$description', '$prive', '$prio')";
    	$result = mysql_query($query);
     
    	echo "Données envoyées";
    }
     
    mysql_close();
    (J'avais écrit 2 fois 'objet' mais ça n'a rien changé à ce que j'ai dit que je l'ai rééxécuté...)

  7. #7
    Membre éclairé Avatar de Charvalos
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2010
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 356
    Par défaut
    Citation Envoyé par Billy14 Voir le message
    Je ne connais pas le nom des champs de ton forumlaire puisque tu ne l'as pas mis, mais pour tester si un champ est vide tu fais tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($_POST['nom_de_ton_champ'] == ""){
    // Erreur, il faut renseigner le champ
    }
    Salut !

    Je ne penses pas que ce soit la meilleure solution ce test-là pour tester si un champ est vide.
    Parce que si l'utilisateur rentre rien dans le champ mais met un espace, à ce moment-là, le champ sera différent de "".

    Donc, pour tester si un champ est vide, il suffit d'utiliser une fonction PHP fait exprès pour ça : empty()

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 101
    Par défaut
    Et bien ça marche mais si je relance mon formulaire ça ne m'affiche toujours pas d'erreurs lorsque je ne rempli pas la description.

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 156
    Par défaut
    Bon ben moi, je sèche désolé.
    J'espère que quelqu'un d'autre saura te renseigner.

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 101
    Par défaut
    Bon ben merci quand même !

    Et j'ai une autre question. J'ai des boutons radios que tu as du voir dans mon code de mon formulaire et lorsque je clique sur le oui j'aimerais que dans ma base de données se mette un 1 et lorsque je clique sur non avoir un 0 dans ma base de données.

    J'ai déjà essayé avec un if mais ça ne fonctionne pas, ou alors je ne l'avais pas placé au bon endroit.

    Merci

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 156
    Par défaut
    En effet Charvalos ^^

    Sinon Santcho ça te donne quoi si tu ne rempli pas les champs ?

  12. #12
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 101
    Par défaut
    Si je ne remplis aucun des 2 champs cela m'affiche ce qu'il y a dans mon echo. Donc tout va bien!
    Après ce que je ne comprend pas, comme je l'ai dit avant, c'est pourquoi lorsque je recharge mon formulaire ça ne fonctionne plus alors que la description n'est pas remplit. Ca ne me rentre que l'objet dans ma base de données

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

Discussions similaires

  1. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  2. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  3. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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