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 :

Classe de gestion de BDD par formulaire [Tutoriel]


Sujet :

Langage PHP

  1. #21
    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
    Citation Envoyé par vacknov
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dans le même ordre d'idées, tu sors de PHP avec ?> 
    en plein milieu de ta classe. De mon côté, cela me chiffonne un peu...

    Sortir du php en plein de la classe ne cause aucun souci à condition de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    class AZY
    {
     
    ?>
    (html et javascript intégrés à une fonction de la même classe font partie de cette classe)
    <?php
    }
    ?>
    Certes..... Mais si je veux traiter le résultat généréje fais comment ? je bidouille ? Cela eut été tellement plus simple pour le développeur finale de lui renvoyer une chaine de caractères. Puis le laisser faire ce qu'il en veut. La tu prends une décision a sa place. Tu décides pour lui d'afficher le contenu. Mais cen 'est peut être pas ce qu'il souhaite.

    bbye

  2. #22
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 262
    Points : 133
    Points
    133
    Par défaut
    En remplaçant les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    class
    {
     
    ?>
    javascript ...
    <?php
     
    }
    ?>
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class
    {
     
    echo "<script language=javascript>";
    ...
    echo "</script>";
    }
    ?>
    le traitement est le même.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Certes..... Mais si je veux traiter le résultat généré je 
    fais comment ? je bidouille ?
    Les listes ne sont pas faciles à manipuler, dans la majorité des cas nous les traitons avec du javascript.

    Personnelement je pense que chaque procedure de generation automatique
    d'un ou des composants listes devrait être suivi de la methode gerant ces dernières.

    Exemple liste dynamique continent.

    Je selectionne Americain, je dois aller dans le base des données selectionner tous les pays de ce continent revenir sur la même page et garder Amaricain dans la liste continent.
    car je dois continuer le remplissage des autres champs après la liste.

    Etant donné mon ouverture d'esprit toute proposition, pour éviter l'utilisation de la méthode reutilisable vision de ma classe qui gère ce processus sera la bienvenue.

  3. #23
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    ce qu'on fait en général, c'est pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "<script language=javascript>";
    ...
    echo "</script>";
    mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $s.="<script language=javascript>";
    ...
    $s.="</script>";
    ...
    return $s;
    et apres c'est a l'utilisateur de la classe de faire ce qu'il veux de $s... ca permet de retarder l'affichage, de faire un post traitement, et bien d'autres choses encore. Là, tu ne donne pas le choix a l'utilisateur, a part en bidouillant avec les buffers par exemple

  4. #24
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 262
    Points : 133
    Points
    133
    Par défaut Gestion des erreurs
    Fladnag

    Dans ta règle N° tu species que l'on tjrs faire suivre la requête
    SQL en php de:

    De mon côté j'ai simplement créé une fonction que j'ai nommé Tmerror avec deux argument :
    un tableau qui contient les noms des libéllés à afficher devant chaque zone de texte. et les noms des champs dans la table.
    une variable contenant le fichier de redirection après execution de la requête.

    Etant donné que nous connaissons prèsque tous les numeros d'erreur succeptibles de s'afficher avec mysql_errnor().

    on recupère chaque erreur on post le message sur une interface.

    Comment trouves tu cette idée

  5. #25
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    je dis ca pour le forum, pour un environnement de debug, pas pour un environnement de production evidemment ;o)

    je parle de mysql_error() pas de mysql_errno()
    je ne comprends pas ta phrase :
    Citation Envoyé par vacknov
    Etant donné que nous connaissons prèsque tous les numeros d'erreur succeptibles de s'afficher avec mysql_errnor().
    le numero d'erreur peut etre lisible instantanement par un DBA, mais ce n'est hélas pas mon metier, donc je lui prefere des messages d'erreurs "lisibles".

    Pour un environnement de production (j'y reviens) j'ai quand a moi une methode un peu différente :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @mysql_... or erreurSQL($requete, $bloquant, $affiche);
    ou erreurSQL va :

    * Logger l'erreur dans un fichier (avec requete, message d'erreur sql, date, url de la page en cours, utilisateur, bref, tout ce qui va bien)
    * S'arreter (die) si $bloquant = TRUE, continuer l'execution sinon
    * Afficher un message d'erreur générique (une erreur est survenue, un admin a été averti, merci de me contacter si l'erreur persiste) si $affiche=TRUE, rien sinon

  6. #26
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 262
    Points : 133
    Points
    133
    Par défaut
    mysql_errno() retourne le numero d'erreur :1064,113x...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $code_erreur=mysql_errno();
     
    switch($code_erreur)
    {
    case valeur_posssible :
     
    //traitement en fonction du message recuperé par mysql_error();
     
    break;
    ...
    }
    mysql_error() retourne un libéllé

  7. #27
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    justement, le libelle est hyper plus parlant que le numero d'erreur... enfin, si tu les connais tous et que ton application les implemente tous... tant mieux pour toi... moi j'ai deja eu des erreurs hyper rares dues a la charge serveur qui a mon avis meritent un libellé explicite ;o)

  8. #28
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    vacknov, je me permets de te proposer un truc : garde à l'esprit nous connaissons quand même assez bein PHP...

    Évite de m'expliquer que echo '...'; et ?> ... <?php sont équivalents lorsqu'il s'agit de HTML. Évite d'expliquer à fladnag le fonctionnement de mysql_errno(). Tu verras, nous avancerons plus vite. Fais confiance à ceux qui te répondent, ils connaissent leur domaine.

    Les suggestions qui te sont faites ne sont pas innocentes, bien au contraire. Elles visent toutes à améliorer la qualité et la lisibilité du code, même s'il fonctionne déjà. Si tu souhaites publier un "tutoriel", ton code doit être parfaitement lisible et accessible à tous. Actuellement, tes habitudes de programmation suggèrent que ce n'est pas encore le cas.

    Dans un tutoriel, le code est de moindre importance. Les explications, en revanche, sont primordiales.

    de ta compréhension.

  9. #29
    Membre régulier Avatar de dark_vidor
    Homme Profil pro
    Élève
    Inscrit en
    Janvier 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Janvier 2005
    Messages : 321
    Points : 118
    Points
    118
    Par défaut
    l'idée etais bonne mais ça resemble plus a des fonctions a modifier pour les utilisateurs plutot qu'une vraie belle classe

    projet ambitieux !

    bon courage, mais ça meme un débutant comme moi aurait été capable de le faire sans te vexer et en plus lisible !

  10. #30
    Membre actif Avatar de Betatesteur
    Inscrit en
    Juillet 2003
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 210
    Points : 248
    Points
    248
    Par défaut
    hello tout le monde.
    bon pour moi amateur du MVC, ce tuto/code ne rentre pas dans les vigueurs types d'un développement évolutif etc...
    >t'aurais pu exploiter les possibilités de l'objet (la réutilisabilité etc...
    >utiliser les couches d'abstractions des bases de donnés livré avec PEAR
    >utiliser des templates pour une bonne lisibilité ( smarty etc...)
    >le design pattern t'aurai aidé à ne pas réinventer la roue dans certaines condit°
    Bref, c'est une bonne idée, mais avec une maturité et l'expérience en dévéloppement t'aurai permis de faire un truc propre.
    Courage, prend note des remarques plus haut, je les ai trouvé très constructif. Mais dommage que tu sois sur la defnsive, c'est pas pour t'abattre ( si je ne me trompe).

    voilà pour moi @+
    bon courage

  11. #31
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 262
    Points : 133
    Points
    133
    Par défaut Delphi for PhP
    Delphi for php de codegear fonctionne correctement.

    Dans les differentes classe des packages il y'a des variables super globale ($_GET, $_POST...) et des fonctions qui envoient des données directement à la sortie avec "echo" ?

    serait ce une violation des règles de la programmation ?

    Ou encore une mauvaise programmation ?

  12. #32
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Les variables superglobales font partie intégrante de PHP, je ne suis pas sûr de comprendre où tu y vois un problème.

    En revanche, si ce que tu dis sur echo est vrai, alors en effet c'est sûrement une faille de sécurité.

  13. #33
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 262
    Points : 133
    Points
    133
    Par défaut
    Je progarmme avec c++ Builder.

    dans mes debut avec php j'ai pensé concevoir des classes reutilisables dans lesquelles j'implementaient les variables Super globals et envoyaient directement les donnés en sorti.

    En voyant le code de Delphi for Php j'ai été fort surpris que cela devient possible.

    Car dans ce tuto j'étais fortement critiqué pour les mêmes raisons.

Discussions similaires

  1. Classe de gestion de BDD
    Par Aldéhir dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 9
    Dernier message: 19/09/2012, 08h00
  2. problème "Gestion de photos par formulaire"
    Par mcharmat dans le forum IHM
    Réponses: 10
    Dernier message: 13/05/2008, 15h47
  3. Gestion de photos par formulaire (erreur 2176)
    Par cams dans le forum VBA Access
    Réponses: 0
    Dernier message: 11/01/2008, 16h49
  4. Réponses: 6
    Dernier message: 08/02/2007, 12h03
  5. gestion des photos par formulaire
    Par jeck dans le forum IHM
    Réponses: 23
    Dernier message: 12/04/2006, 15h12

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