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 :

vidage des champs à la capture d'erreur


Sujet :

Langage PHP

  1. #1
    Membre averti
    Avatar de omar344
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2007
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2007
    Messages : 287
    Points : 301
    Points
    301
    Par défaut vidage des champs à la capture d'erreur
    salut j'ai un bout de code qui me vérifie les champs d'un formulaire où il y a un champs de type "file", lorsque je ne sélectionne pas de fichier le code fonctionne mais une fois que le fichier est sélectionné, je ne reçois pas le résultat voulu si le fichier est sélectionné
    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
     
        if (!preg_match("/^[0-9a-zA-ZÄÜÖ_.-]+@[0-9a-z.-]+\.[a-z]{2,6}$/", $email)) {
     
            $erreur['email'] = "Saisissez adresse valide";
        }
        if (!$objet) {
            $erreur['objet'] = "Définir objet";
        }
     
     
        if (!$textmsg) {
     
            $erreur['textmsg'] = "Saisissez votre message";
        }
        if ($_FILES['f']['error'] == UPLOAD_ERR_NO_FILE) {
            $erreur['fichier'] = "pas de fichier";
        } else {
            $erreur['fichier'] = "il y a fichier";
        }

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    as-tu bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" enctype="multipart/form-data" action="xxx.php">
    ?

  3. #3
    Membre averti
    Avatar de omar344
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2007
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2007
    Messages : 287
    Points : 301
    Points
    301
    Par défaut
    oui, j'ai ce problème lorsque je choisit un fichier mais si le champ est vide, il y a pas de problème les champs ne ont pas vidés au clic
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form action="<?php $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data">

  4. #4
    Invité
    Invité(e)
    Par défaut
    Il faudrait voir tout le code et comment tu t'y prends :
    - formulaire
    - traitement (dans la même page ? autre page ?)

  5. #5
    Membre averti
    Avatar de omar344
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2007
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2007
    Messages : 287
    Points : 301
    Points
    301
    Par défaut
    c'est juste ce petit bout de code que j'ai, car je veux créer un formulaire de contact avec pièce jointe, alors je dois faire une vérification des champs,
    si le champs fichier n'est pas vide, à la confirmation tout les champs sont initialisés et le traitement demandé dans ce cas n'est pas exécuté:
    Dans le cas de mon code, je veux avoir dans le cas où ce champs est renseigné "il y a un fichier", dans le cas échéant j'ai le résultat voulu, "pas de fichier"

  6. #6
    Invité
    Invité(e)
    Par défaut
    Tu trouveras tes réponses ici : Envoyer un mail en PHP

  7. #7
    Membre averti
    Avatar de omar344
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2007
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2007
    Messages : 287
    Points : 301
    Points
    301
    Par défaut
    malheureusement je n'y est rien trouvé, je l'ai déjà vu

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par omar344 Voir le message
    ... car je veux créer un formulaire de contact avec pièce jointe, ...
    Je répète :
    Citation Envoyé par jreaux62 Voir le message
    Tu trouveras tes réponses ici : Envoyer un mail en PHP
    Et si tu as la flemme de tout lire : c'est ici.

    Et aussi : Upload de fichiers en PHP

    Pour le reste, ton "bout de code" et un peu de logique devraient faire l'affaire.

  9. #9
    Membre averti
    Avatar de omar344
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2007
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2007
    Messages : 287
    Points : 301
    Points
    301
    Par défaut
    salut, j'ai lu tt ces tuto, je les ai suivis, j'ai crée le formulaire, la pièce jointe ok,
    mais une fois que je capture une erreur pour le fichier (ex: extension interdite, fichier volumineux...) tous les champs du formulaire sont vidés, alors que je veux qu'il restent remplis,

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par omar344 Voir le message
    tous les champs du formulaire sont vidés, alors que je veux qu'il restent remplis,
    Fais-tu le traitement dans la même page que le formulaire, ou pas ?
    Peut-on voir ton code ?

  11. #11
    Membre averti
    Avatar de omar344
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2007
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2007
    Messages : 287
    Points : 301
    Points
    301
    Par défaut
    oui je fais le traitement sur la meme page, voici mon code complet,
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
     
    <?php
    session_start();
     
    $erreur = array();
     
    if (isset($_POST['valider'])) {
        $email = $_POST["email"];
        $objet = $_POST["objet"];
     
        $textmsg = $_POST["textmsg"];
     
     
        $email = stripslashes($email);
        $objet = stripslashes($objet);
        $textmsg = stripslashes($textmsg);
     
     
        if (!preg_match("/^[0-9a-zA-ZÄÜÖ_.-]+@[0-9a-z.-]+\.[a-z]{2,6}$/", $email)) {
     
            $erreur['email'] = "Saisissez adresse valide";
        }
        if (!$objet) {
            $erreur['objet'] = "Définir objet";
        }
     
     
        if (!$textmsg) {
     
            $erreur['textmsg'] = "Saisissez votre message";
        }
     
        if ($_FILES['f']['error'] == UPLOAD_ERR_NO_FILE) {
            $erreur['fichier'] = "pas de fichier";
        } else {
            $erreur['fichier'] = "il y a un fichier";
        }
    }
    ?>
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
        "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
            <title>Contact</title>
            <link rel="stylesheet" type="text/css" href="../style.css" />
        </head>
        <body>
            <div id="overall">
                <?php include("../inclus/header.php"); ?>
    <?php include("../inclus/menu1.php"); ?>
                <div id="menu2">
                    <!--menu de droite-->
                </div>
                <br />
                <div id="contenu">
                    <h3 class="centre">Contactez-nous</h3>
                    - Tous les champs marqu&eacute;s d'un ast&eacute;risque ( *) sont obligatoires.	
                    <form action="<?php $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data">
                        <br />
                        <table>
                            <tr>
                                <td>
                                    <label>E-Mail: *
                                </td>
                                <td>
                                    <input type="text" name="email" maxlength="200" value="<? if (isset($_POST['email'])) echo $_POST['email']; ?>" size="20" />
                                </td>
                                <td>
    <? if (isset($erreur["email"])) echo $erreur["email"] ?>
                                </td>
                            </tr>
                            <tr>
                                <td class="label">
                                    <label>Objet: *</label>
                                </td>
                                <td class="field">
                                    <input type="text" name="objet" maxlength="200" value="<? if (isset($_POST['objet'])) echo $_POST['objet']; ?>" size="20" />
                                </td>
                                <td>
    <? if (isset($erreur["objet"])) echo $erreur['objet'] ?>
                                </td>
                            </tr>
                            <tr>
                                <td>	
                                    <label>Message: *</label>
                                </td>
                                <td>
                                    <textarea style="resize: none;" name="textmsg"  cols="30" rows="8" ><? if (isset($_POST['textmsg'])) echo $_POST['textmsg']; ?></textarea>
                                </td>
                                <td>
    <? if (isset($erreur["textmsg"])) echo $erreur["textmsg"] ?>
                                </td>
                            </tr>
                            <tr>
                                <td>          
                                    Pi&egrave;ce jointe
                                </td>
                                <td>
                                    <input type="file" name="f" />
                                </td>
                                <td>
    <? if (isset($erreur["fichier"])) echo $erreur["fichier"] ?>
                                </td>
                            </tr>
                        </table>
                        <input type="submit" name="valider" value="Envoyer ..." />
                        <input type="reset" name="delete" value="Effacer ..."/>
                    </form>
                </div>
    <?php include("../inclus/footer.php"); ?>
            </div>
        </body>
    </html>
    et je veux qu'au cas où il ya un fichier avoir un message à coté, "il y a un fichier"

  12. #12
    Invité
    Invité(e)
    Par défaut
    J'ai testé ton code : il fonctionne !
    J'ai bien un message à coté : "il y a un fichier"

    Où est le problème ?!

  13. #13
    Membre averti
    Avatar de omar344
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2007
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2007
    Messages : 287
    Points : 301
    Points
    301
    Par défaut
    merci beaucoup pour ton aide,
    je me suis rendu compte que je faisais les essais avec un fichier volumineux dont la taille dépasse celle dans php.ini alors lorsque j'essaye avec des petits fichiers ça marche,

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/08/2010, 16h31
  2. Réponses: 23
    Dernier message: 19/04/2009, 16h50
  3. Erreur dans SELECT selon l'ordre des champs
    Par senacle dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/03/2008, 12h06
  4. Vidage des champs après une validation
    Par TheJoe dans le forum JSF
    Réponses: 4
    Dernier message: 14/12/2007, 16h37
  5. [MySQL] Erreur pour modifier des champs
    Par kevinf dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/11/2006, 21h47

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