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 :

Transposition en POO


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 295
    Points : 92
    Points
    92
    Par défaut Transposition en POO
    Bonjour,

    Je débute dans la POO et j'essaye de transposer une application que j'ai développé sous cette forme. Autant ça ne s'est pas trop mal passé jusqu'à présent, autant là, je ne vois pas trop comment faire (voire pas du tout)
    Il s'agit d'un formulaire (court), qui une fois validé, envoie des données dans une BDD. Seulement, j'ai mis en place un système de vérification des données envoyées, avec mises en session et ré-affichage de celles-ci si le formulaire n'a pas été envoyé mais également une gestion des erreurs. Plutôt qu'un long discours:
    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
    if (isset($_POST['submit'])) {
        $errors = array(); //tableau servant à stocker les messages d'erreur
    //
        if (!empty($_POST['nom'])) {
            $nom = filter_var($_POST['nom'], FILTER_SANITIZE_STRING);
            $_SESSION['nom'] = strtoupper($nom);
        } else {
            $errors['nom'] = '<span class="error-message">Entrez un nom, svp</span>';
        }
     
    //
        if (!empty($_POST['prenom'])) {
            $prenom = filter_var($_POST['prenom'], FILTER_SANITIZE_STRING);
            $_SESSION['prenom'] = ucfirst($prenom);
        } else {
            $errors['prenom'] = '<span class="error-message">Entrez un prenom, svp</span>';
        }
     
    //
        if (!empty($_POST['ident'])) {
            $ident = filter_var($_POST['ident'], FILTER_SANITIZE_STRING);
            $_SESSION['newIdent'] = strtolower($ident);
        } else {
            $errors['ident'] = '<span class="error-message">Entrez un identifiant, svp</span>';
        }
    etc...
    Une contrainte : chaque information a un formatage précis.
    Si après $errors ne contient pas d'erreurs, on déclenche une requête d'insertion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (empty($errors)) {
    $insert = "INSERT INTO cpte() VALUES ()
    ...
    En cas de faute de la part de l'utilisateur, je réaffiche les informations rentrées ainsi que les messages d'erreurs:
    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
    <label>
            Nom:
            <input type="text" name="nom" id="nom" value="<?php if (isset($_SESSION['nom']))
        echo $_SESSION['nom']; ?>">
                   <?php
                   if (isset($_POST['submit']) and !isset($_SESSION['nom']))
                       echo $errors['nom'];
                   ?>
        </label>
        <br>
        <label>
            Prenom:
            <input type="text" name="prenom" id="prenom" value="<?php if (isset($_SESSION['prenom']))
                       echo $_SESSION['prenom']; ?>">
                   <?php
                   if (isset($_POST['submit']) and !isset($_SESSION['prenom']))
                       echo $errors['prenom'];
                   ?>
        </label>
    etc.
    Maintenant, j'aimerais traduire ça en POO. Un des aspects qui me gêne le plus est le respect du formatage des données. Et comment faire pour coïncider à chaque champs l'affichage de sa valeur (session) ou de son message d'erreur...
    merci,

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 44
    Points
    44
    Par défaut
    Je ne sais pas si c'est la bonne méthode mais en tous cas j'aurais créer un objet User avec pour attribut le nom, prénom ...

    Ensuite j'aurais inséré une méthode Post() dans laquelle j'aurais tester le remplissage des champs ou non et remplit mes attributs avec les champs

    Puis une autre méthode dans CreateSession() dans laquelle j'aurais créer ma session propre a l'utilisateur dans laquelle j'aurais formater chaque attribut.

    Au début de ton script tu créé un objet User a vide. Ensuite quand tu détectes ton post tu lances la méthode POST() qui va te remplir les attributs bien inséré ou non.

    Et dans tes champs tu met en value
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $user->prenom; ?>
    par exemple qui sera soit vide soit rempli en fonction du cas.

    Attention ce n'est que ma perception des choses.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 295
    Points : 92
    Points
    92
    Par défaut re:
    Bonjour,

    Merci pour la réponse. je vais étudier ça...

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    rien a voir, mais utilise plutôt filter_input, pour filtrer les valeurs de POST

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 295
    Points : 92
    Points
    92
    Par défaut re:
    Merci pour l'info!

Discussions similaires

  1. [POO] C'est quoi une classe en claire...???
    Par Spack dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 26/01/2009, 15h53
  2. Réponses: 16
    Dernier message: 06/06/2007, 12h42
  3. Réponses: 13
    Dernier message: 28/08/2004, 18h43
  4. [langage] Pb POO perl
    Par loothoof dans le forum Langage
    Réponses: 4
    Dernier message: 26/05/2004, 12h08
  5. lier un cube à un objet (POO)
    Par Hypnos dans le forum OpenGL
    Réponses: 12
    Dernier message: 26/08/2003, 21h46

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