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 :

Mise en forme php dans du HTML


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 196
    Par défaut Mise en forme php dans du HTML
    Bonsoir,
    je me pose des questions quand à la mise en page de mon code php et html.
    Est ce 'propre' dans une page d'utiliser un if(isset $_SESSION['variable']) à plusieurs reprises pour afficher un contenu uniquement si l'administrateur est connecté et si il ne l'est pas alors on affiche pas le contenu ou alors existe t-il une manière plus 'propre' de le faire ?

    j'espère avoir été clair.

    Merci d'avance !

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    C'est souvent plus simple de faire une page administrateur qui sera protégée par ta variable de session et une page visiteur séparée.
    Mais en fait tout dépend du contexte, à toi de voir si cela ne complique pas trop les choses.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 119
    Par défaut
    personnellement, j'inclus des scripts avec formulaire et édition avec un code du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ( $_SESSION['logged'] != True ) {
    return False ;
    exit ;
    }
    et le script inclus s'arrête si on est pas logué. Ainsi si on accède directement au script par l'url: page blanche!
    Mais c'est reposer la question, je ne connais pas les 'bonnes pratiques'...

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Hello

    Je profite de ce post pour faire une piqure de rappel

    PHP à été créé au départ pour être intégré dans du HTML, je trouve personnellement inutile le battage qui est fait autours des moteurs de templates massivement utilisés en ce moment (SMARTY c'est à toi que je parle).
    On peut très bien écrire du phtml (c'est d'ailleurs une extension valide pour PHP) à condition de respecter certaines règles:
    - bien séparer les traitements de l'affichage: effectuer des requêtes, faire des calculs lourds ou des algorithmes complexes en plein milieu d'un flux xhtml doit être strictement proscrit
    - penser à utiliser autant que faire se peut le short open tag <?=$ma_var?> (à condition que la directive short_open_tag soit à On dans le php.ini), ceci à des fins évidentes de lisibilité
    - éviter les accolades pour délimiter des blocs: PHP peut utiliser une syntaxe proche de celle de bash (voir annexe 1)
    - eviter les attributs style, onClick et autres éléments intrusifs: les styles vont dans une feuille de style séparée et les évenements JavaScript doivent être attaché dans un script séparé (voir Annexe 2)
    - garder une indentation propre et ne jamais dépasser les 140 caractères en longueur (pour affichage sur un écran 17 pouces), ceci afin d'améliorer la lisibilité du code
    - conserver à l'esprit que celui qui reprendra votre code derrière vous est un serial-killer qui connait votre adresse

    Annexe 1: utilisation des structures de contrôles au sein des vues
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <div id="content">
    <?php if (isset($ma_var)): ?>
      <span><?=$ma_var?></span>
    <?php else: ?>
      <span>$ma_var non définie</span>
    <?php endif; ?>
    </div>
    Toutes les structures de contrôles sont disponible.

    Annexe 2: du bon usage des styles et des scripts
    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
     
    <!-- A eviter -->
    <div style="border: 1px solid #ccc;" onClick="javascript:ma_fonction()">
     
    <!-- A privilégier -->
    <div class="borders-grey" id="un_id">
     
    # dans le CSS
    div.borders-grey { border: 1px solid #ccc; }
     
    # dans le js (avec jQuery dans l'exemple)
    $(function () {
       function ma_fonction () {
       // ....
       }
     
      $('div#un_id').click(ma_fonction);
    });
    Utiliser cette pratique réduit la lourdeur des pages car le contenu présents dans les scripts/stylesheets attachés à la page ne sont téléchargés qu'une et une seule fois par le client. Cela factorise également ces informations, ce qui facilite la maintenance et le support.

    @BlindeKinder
    Pense à utiliser isset sinon gare aux E_WARNING qui viendront polluer l'error log d'apache

    @polux31
    Est ce 'propre' dans une page d'utiliser un if(isset $_SESSION['variable']) à plusieurs reprises pour afficher un contenu uniquement si l'administrateur est connecté et si il ne l'est pas alors on affiche pas le contenu ou alors existe t-il une manière plus 'propre' de le faire ?
    Il est d'usage de définir des comportements séparés pour les administrateurs et les visiteurs. Sans connaitre les tenants et les aboutissants de ton application, ça va être difficile de répondre mais je te suggère d'employer le célèbre formalisme MVC de façon à pouvoir créer des 'routes' distinctes pour les administrateurs et les visiteurs et de spécialiser les vues d'affichage pour chacun.
    Tu trouvera de la documentation par ici: http://julien-pauli.developpez.com/t...vc-controleur/

    Je ne saurais que trop te conseiller de formaliser autant que possible ton application avant de te lancer dans le code. Réfléchis bien à ce que tu veux faire et comment tu souhaite y arriver, prends un bloc de papier et décrit le cheminement de ton utilisateur et les différentes pages impliquées. C'est sûr, c'est laborieux, mais ça à le mérite de t'éviter de sérieux maux de tête quand (et ce 'quand' arrivera tôt ou tard) tu devras reprendre ce que tu as fait.
    Exemple habituel (j'y suis confronté en permanence): demande du client xxx "je souhaite changer la couleur des liens pour les mettre en rose fushia", pas de chance le programmeur qui a fait le site à mis des style="color: black;" dans toutes les balises ancre (<a>); c'est parti pour des heures de refactoring de code. Alors qu'avec l'utilisation d'une feuille de style, c'est juste changer UNE ligne.

    Également, évite d'utiliser des WYSIWYG comme Dreamweaver, c'est tentant mais le code produit est vraiment dégueulasse et impossible à maintenir (j'ai passé 1h à indenter correctement un code de 1000 lignes qui servait pour même pas 20 lignes d'affichage et une heure de plus à faire tous les changements).

    A toi de jouer

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 196
    Par défaut
    Merci à vous tous et particulièrement à Benjamin pour ton grand investissement.

    En (très) bref, en ce qui concerne mon problème, il est plutôt conseillé de faire une page pour les users lambda et une autre pour l'admin.

    Merci !

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    ...
    - penser à utiliser autant que faire se peut le short open tag <?=$ma_var?> (à condition que la directive short_open_tag soit à On dans le php.ini), ceci à des fins évidentes de lisibilité
    ...

    Surtout pas !
    Si les short_open_tag sont désactivés par défaut depuis php5, ce n'est pas par hasard. Cela provoque des conflits si l'on veut utiliser conjointement du php et du xml dont la déclaration est <?xml...
    Donc en plus d'avoir un code peu portable (short_open_tag désactivé par défaut en php5), c'est un code qu'il faudra reprendre en cas d'utilisation des balises <?xml. Alors on se prend pas la tête et on utilise la balise d'ouverture "longue" <?php

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 119
    Par défaut
    Pense à utiliser isset sinon gare aux E_WARNING qui viendront polluer l'error log d'apache
    c'est pas E_NOTICE et seulement en production? en tout les cas, je le fais toujours, depuis que j'ai téléchargé un site fait par quelqu'un d'autre pour le réviser et que j'ai passé des heures à repérer tout les bug du genre, car il ne réagissait pas pareil sur mon serveur (magic_quotes, register_global, Notices dans un script renvoyant une image, donc pas d'image pas de messages d'erreur...)

    Pour revenir au sujet, j'aime bien pour l'édition voir la page telle quelle et avoir un formulaire d'édition en plus (c'est plus une question qu'une contradiction)... mais je n'ai jamais travaillé sur de très gros projets. ça me parait plus clair d'ailleurs pour le code et plus facile à maintenir d'avoir des formulaires/scripts inclus, que d'avoir "deux sites".

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/01/2007, 13h40
  2. [VBA-E] mise en forme texte dans le noeud d'une treeview
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/08/2006, 16h16
  3. [MySQL] Erreur d'affichage d'un listing php dans un html
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 10/04/2006, 22h13
  4. Réponses: 8
    Dernier message: 08/02/2006, 15h16
  5. [Sécurité] mise en forme php
    Par nounours21_6 dans le forum Langage
    Réponses: 2
    Dernier message: 28/10/2005, 10h39

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