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 :

Formulaire complexe avec gestion de message d'erreur.


Sujet :

Langage PHP

  1. #1
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 685
    Points : 1 376
    Points
    1 376
    Billets dans le blog
    7
    Par défaut Formulaire complexe avec gestion de message d'erreur.
    Je dois fabriquer un formulaire qui rédige des messages d'erreurs quand l'utilisateur n'entre pas ou entre mal les informations. Là ou les choses se compliquent, est que je dois également conserve les valeurs qui sont valables. Et une fois que le formulaire est parfait je dois l'envoyer à une page (traitement.php) qui fera des calculs et présentera le résultat.

    J'ai fais le tour de site du W3C, mais je ne trouve aucun exemple qui contiennent tous les aspects du problème.

    j'arrive à faire des formulaires simples mais là, je patine....

    Un exemple serait appréciée

  2. #2
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Un façon simple est de tout avoir dans un seul traitement (on peut faire des inclusions evidemment) :
    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
    <?php
     
    $nom = isset($_POST['nom']) ? htmlspecialchars(trim($_POST['nom'])) : '';
    $annee_naissance = isset($_POST['annee_naissance']) ? (int)trim($_POST['annee_naissance']) : '';
     
    if (isset($_POST['submit'])) {
    	if (empty($nom)) {
    		$error[] = 'Le nom doit être renseigné';
    	}
     
     
    	if ($annee_naissance < 1850 || $annee_naissance > date('Y')) {
    		$error[] = 'L\'année de naissance n\'est pas valide';
    	}
     
    	if (isset($error)) {
    		foreach ($error as $text) {
    			echo '<p style="color: red;">' . $text. '</p>';
    		}
    	}
    	else {
    		include('traitement.php');
    	}
    }
    ?>
    <form action="" method="post">
    Nom<input type="text" name="nom" value="<?php echo $nom; ?>" />
    Année de naissance<input type="text" name="annee_naissance" value="<?php echo $annee_naissance; ?>" />
    <input type="submit" name="submit" />
    </form>
    Sinon il faut utiliser une session PHP pour passer les valeurs ou les erreurs d'une page a l'autre.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 685
    Points : 1 376
    Points
    1 376
    Billets dans le blog
    7
    Par défaut
    C'est malheureusement ce que l'on doit faire, et la fonction session n'a pas été abordé. J'ignore totalement comment m'y prendre. Et je suis capable de faire le traitement dans un seul fichier, mais je dois les transféra un au fichier php. Et c'est là que les choses se complique puisque le programme que j'ai fait est sur le même modèle que celi que tu me propose. Existe-t-il une autre façon d'envoyer le tableau de POST ?

  4. #4
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Qu'est ce qui t'es demandé exactement ?
    Qu'est ce qui ne va pas avec ce que je t'ai proposé ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 685
    Points : 1 376
    Points
    1 376
    Billets dans le blog
    7
    Par défaut
    En fait, ce qui manque est la façon de l'envoyer à l'autre page (programme) qui joue le rôle de la base de donnée. Finalement. il nous a dis que nous devions utiliser GET et envoyer les informations sous forme de URL. (ce qui était la partie ou j'étais complètement perdu)

  6. #6
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header('Location: page.php?nom=' . $nom . '&annee=' . $annee);
    exit();
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 685
    Points : 1 376
    Points
    1 376
    Billets dans le blog
    7
    Par défaut
    Oui mais j'ai un problème probablement lié au caractère français.

    voici mon test:

    mon tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $param = array('prenom' =>'francoys','numcivapp' =>'1234',
               'ville' =>'Montréal','cpostal' =>'h4e 3a9',
               'courriel' =>'francoys.proulx@gmail.com','nom' =>'proulx',
               'rue' =>'william-david','prov' =>'Québec','telcodereg' =>'234',
               'tel3dig' =>'345','tel4dig' =>'4567','adultes' =>'456',
               'enfants' =>'567','courrier' =>'Courrier recommandé',
               'paiementdiff' =>'Paiement différé','bnt' =>'Confirmer la commande' );  
     
     
           mb_internal_encoding('utf-8');
           header("Location:http://localhost/traitement.php?vals=" . ( serialize( ($param ))));
    La bonne nouvelle est que le tableau se rend à destination. Le problème est que je recois une message d'erreur qui traite de "offset"

    Notice: unserialize(): Error at offset 0 of 8 bytes in C:\xampp\htdocs\exam_final\traitement.php on line 22
    voici le programme de traitement.php.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    mb_internal_encoding('utf-8');
          $Values= unserialize(($_GET['vals']));
      echo $Values  ; 
    echo "<h2>Your Input</h2>";
    foreach($Values as $key => $value) {
      echo $key." : ".$value."<br>";
    }

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 03/09/2007, 13h42
  2. Réponses: 2
    Dernier message: 12/10/2006, 23h36
  3. [GUI] Gestion des messages d'erreurs
    Par agent007se dans le forum C++
    Réponses: 11
    Dernier message: 28/07/2006, 20h52
  4. gestion des messages d'erreurs
    Par keibenoit dans le forum Access
    Réponses: 2
    Dernier message: 31/05/2006, 14h49
  5. gestion photo - message d'erreur
    Par xboulney dans le forum Access
    Réponses: 2
    Dernier message: 16/03/2006, 12h45

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