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

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Points : 4
    Points
    4
    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 averti Avatar de spilliaert
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Points : 307
    Points
    307
    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
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Points : 4
    Points
    4
    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 averti Avatar de spilliaert
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Points : 307
    Points
    307
    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
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Points : 4
    Points
    4
    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 éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    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.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par ePoX
    Salut,

    Perso je commencerais par utiliser des noms de fonctions en francais parce que c'est plus clair, puis je rajouterais des commentaires.
    Le lectorat est anglophone. Mais je vais mettre quelques commentaires oui.

    Citation Envoyé par ePoX
    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.
    Une variable pour savoir ou on se trouve dans l'application ? 1ere etape, 2eme etape et 3eme etape (avec des noms explicites) ? C'est une bonne idee.


    Au fait, si je me souviens bien, on est pas oblige de mettre le nom de la page php dans le champ "action" des formulaires. Quelqu'un peut confirmer ?

  8. #8
    Invité
    Invité(e)
    Par défaut
    A titre constructif :

    Niveau conception :

    Pourquoi faire des fonctions pour des blocs XHTML ?

    Si déjà, autant diviser tous les blocs en plusieurs fichiers PHP à inclure. Ca me paraît plus optimal et logique que des pavés de echo();

    Il est superflux de faire appel à des fonctions personnalisées PHP pour afficher du contenu XHTML statique...

    Le contenu des echo(); est ignoré par la coloration syntaxique dans les éditeurs.

    Les includes sont un concept incontournable dans PHP.

    D'autre part, toujours en rapport avec XHTML, même si ça ne remet pas en cause le Doctype utilisé, je ne comprends pas pourquoi il y'a une balise <div> dans un élément <form>, à la rigueur un bloc <p>, ou alors un <fieldset>, mais rien d'autre !

    Niveau didactique, si le but est d'expliquer ce qu'est une fonction, c'est acceptable bien que flou, mais en dehors de ça je trouve que c'est pas terrible !


    Bonne continuation

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    En fait, je n'ecris pas un livre sur PHP, mais sur Seaside, un framework extrement puissant dote de fonctionalites tres interessantes. Grace a Seaside, une application Web s'ecrit de la meme facon qu'une application classique. A titre d'exemple, voila comment peut s'ecrire l'application ci-dessus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    |firstNum secondNum|                             "<- declaration de 2 variables"
    firstNum := self request: 'Give me a number'.
    secondNum := self request: 'Give me another number'.
    self inform: 'The sum is ', (firstNum + secondNum).
    http://www.seaside.st

    Citation Envoyé par Guardian_7
    A titre constructif :

    Niveau conception :

    Pourquoi faire des fonctions pour des blocs XHTML ?
    Comme je donne simplement un exemple de code PHP, je veux garder le tout compact et je souhaite que le flux de l'application soit le plus visible possible. Donc, je decoupe tout en fonction (plus compact que les fichiers pour un livre) et je les appelle a la fin les unes apres les autres.

    Citation Envoyé par Guardian_7
    Il est superflux de faire appel à des fonctions personnalisées PHP pour afficher du contenu XHTML statique...
    Le contenu des echo(); est ignoré par la coloration syntaxique dans les éditeurs.

    Par contre, il est vrai que je peux fermer les balises du code PHP pour mettre le code XHTML au milieu sans faire appel a echo().


    Citation Envoyé par Guardian_7
    D'autre part, toujours en rapport avec XHTML, même si ça ne remet pas en cause le Doctype utilisé, je ne comprends pas pourquoi il y'a une balise <div> dans un élément <form>, à la rigueur un bloc <p>, ou alors un <fieldset>, mais rien d'autre !

    J'essaierai de chercher lequel va le mieux d'un point de vue semantic.

    Citation Envoyé par Guardian_7
    Niveau didactique, si le but est d'expliquer ce qu'est une fonction, c'est acceptable bien que flou, mais en dehors de ça je trouve que c'est pas terrible !
    Bonne continuation

    Avec l'explication precedente, ca te parait plus clair maintenant ?


    Merci beaucoup pour tout tes conseils, ils sont utiles.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Quetzalcoatl
    Avec l'explication precedente, ca te parait plus clair maintenant ?


    Merci beaucoup pour tout tes conseils, ils sont utiles.
    Oui c'est tout de suite plus évidant !

    Pour le détail, concernant la sémantique XHTML, il y'a une bonne référence sur Developpez.com, en ce qui concerne la sématique des formulaires :

    http://giminik.developpez.com/xhtml/form.html

    En bas de page, tu as la liste exhaustive des éléments parents / enfants possibles.

    Il s'avère que le <div> est bien autorisé, mais c'est une aberration... je n'en vois pas son utilité conceptuelle ou sémantique.

    Quoi qu'il en soit !

    Bonne continuation

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