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 :

[PHP-JS] Besoin d'expertise sur petit script php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Par défaut [PHP-JS] Besoin d'expertise sur petit script php
    Bonjour,

    dans le cadre de la redaction d'un livre, je voudrais savoir ce que vous pensez du code suivant qui demande deux nombres l'un apres l'autre puis affiche la somme. Je voudrais savoir si un developpeur PHP experimente ecrirait ca de cette facon, si c'est clair, que faut-il changer pour faire quelque chose de bien propre...

    Merci pour tous vos conseils

    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
     
    <?php
     
    function heading()
    {
      echo '
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
          <head>
            <title>Number Sum</title>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
          </head>
          <body>
         ';
    }
     
    function footer() 
    {
      echo '</body></html>';
    }
     
    function form1()
    {
      echo '
         <h3>Give me a number</h3>
         <form action="numbersum.php" method="post">
           <div>
             <input name="firstNum" type="text"/>
             <input name="submit" type="submit"/>
           </div>
         </form>
         ';
    }
     
    function form2($firstNum)
    {
        echo '
         <h3>Give me another number</h3>
         <form action="numbersum.php" method="post">
           <div>
             <input name="secondNum" type="text"/>
             <input name="firstNum" value="',$firstNum,'" type="hidden">
             <input name="submit" type="submit"/>
           </div>
         </form>
         ';
    }
     
    function result($firstNum, $secondNum)
    {
      echo '<h3>The sum is ', ($firstNum + $secondNum), '</h3>
            <form action="numbersum.php" method="post">
              <div>
               <input name="submit" type="submit">
              </div>
            </form>
           ';
    }
     
    heading();
     
    if (isset($_POST["secondNum"])) {
      result($_POST["firstNum"], $_POST["secondNum"]);
     } else {
      if (isset($_POST["firstNum"])) {
        form2($_POST["firstNum"]);
      } else {
        form1();
      }
     }
     
    footer();
     
    ?>

  2. #2
    Membre éclairé Avatar de spilliaert
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Par défaut
    Je ne suis pas développeur expérimenté...
    Mais ce code me paraît claire et simple à comprendre rapidement.

    Cepandant, une 'tite vérification des inputs serait bien, non?
    genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    is_numeric($_POST['firstNum'])
    Le reste est une question de choix, je pense; les différentes fonctions, les input hidden,...
    A+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Par défaut
    Je n'ai pas voulu faire de verification pour garder les choses simples les plus simples possible, mais tu as raison, ca ne complique pas beaucoup

    Pour le reste, tu dis que c'Est une question de choix parce que tu n'aurais pas fait pareil ?

  4. #4
    Membre éclairé Avatar de spilliaert
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Par défaut
    Citation Envoyé par Quetzalcoatl
    Pour le reste, tu dis que c'Est une question de choix parce que tu n'aurais pas fait pareil ?
    Je ne sais pas ce que j'aurais fait, mais il y a plein de façon de faire ce que tu veux...
    donc, il faut bien choisir, non?

    Et je pense que c'est un choix en grande partie personnel puisque il n'y a pas d'énormes différences de performances, de sécurité ou de lisibilité du code dans ce cas précis:

    Et si heading était une variable et que pour affichier l'entête, on faisait ? Où est la différence? lisibilité?

    Et si result() ne s'occupait pas de l'affichage et que celui-ci était effectué par un simple echo dans "la trame principale" ?

    Dans un exemple aussi trivial et avec un langage aussi souple que php, je ne pense pas qu'il y ait UNE solution meilleure que les autres.

    C'est pourquoi je dis que c'est avant tout une question de goût. Ou alors on joue tatillon et on fait attention à des trucs du style:
    Si je mets des guillemets doubles, se serait plus rapide?

    Voilà, j'espère que je vous ai été utile...

    A+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Par défaut
    Citation Envoyé par spilliaert
    Voilà, j'espère que je vous ai été utile...
    Merci beaucoup, vous m'avez aide.

  6. #6
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    Salut,

    Perso je commencerais par utiliser des noms de fonctions en francais parce que c'est plus clair, puis je rajouterais des commentaires.
    En effet actuellement je doit faire l'effort de comprendre le programme pour savoir ce qu'il fait, hors normalement en lisant les noms de fonctions je devrait deja savoir ce qui ce passe, hormis les détails bien sur.

    Sinon dans les formulaires je rajouterais une variable action. La tu utilises l'état des variables, ce qui n'exprime pas clairement ce que le script est entrain de réaliser.

    En bref, un peu plus de clareté dans l'expression de ton problème en programmation.

Discussions similaires

  1. Besoin d'avis sur webdev & génération php
    Par MicaelFelix dans le forum WebDev
    Réponses: 1
    Dernier message: 10/04/2007, 23h20
  2. [PHP-JS] Besoin d'aide sur eval()
    Par KneXtasY dans le forum Langage
    Réponses: 6
    Dernier message: 28/06/2006, 10h35
  3. A l'aide svp j'ai de gros problemes sur un script php
    Par schtek2 dans le forum Langage
    Réponses: 1
    Dernier message: 24/04/2006, 01h25
  4. Besoin d'aide sur un script SQL de recherche
    Par agougeon dans le forum Langage SQL
    Réponses: 5
    Dernier message: 26/10/2005, 11h40

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