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

PHP & Base de données Discussion :

création page html en base ou dans un fichier ?


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 55
    Points : 26
    Points
    26
    Par défaut création page html en base ou dans un fichier ?
    Bonjour,

    je dois mettre en place un sytème de création de pages HTML via un back-office.
    la question que je me pose, c'est, s'il est préférable de stocker ceci sur une base mysql ou dans un répertoire commun à la racine du site ?
    la question est sur le niveau de performance et sécurité.

    chaque page pourra être créée et modifiée si nécessaire.

    au niveau du site, c'est un modèle vierge fait avec des variables où tout est stocké en base (nom, adresse, mail, ...).
    en clair, avec le domaine, je connais quel est le client et je rempli le site avec les variables stockés dans la base.

    Merci.

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Points : 63
    Points
    63
    Par défaut
    La structure principale de tes pages en fichiers et le contenu en bdd.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 55
    Points : 26
    Points
    26
    Par défaut
    Excuse moi je n'ai pas tout compris...

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 383
    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 383
    Points : 10 411
    Points
    10 411
    Par défaut
    Dans mysql ce sera plus souple et puis tout ton site est fait de cette manière apparemment. L'autre avantage est que tu pourras faire des recherche sur les données.
    Au niveau des performances ce sera largement suffisant bien qu'un système de fichier peut être un peu plus rapide mais ne s'envisage que pour des cas particuliers.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 55
    Points : 26
    Points
    26
    Par défaut
    Effectivement je penchais plus sur un système en base de données, mais je me demandais si ça ne serait pas trop lourd à charger et si les moteurs de recherche voyaient les pages de la même facon.

    un champ de type "text" est le plus adapté non ?

  6. #6
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Effectivement je penchais plus sur un système en base de données, mais je me demandais si ça ne serait pas trop lourd à charger et si les moteurs de recherche voyaient les pages de la même facon.
    Si tu estime que tes contenus varieront très peu, les mettre dans une Bdd n'est peut être pas si judicieux que ça.
    Les mettre dans des fichiers peut être tout aussi bien.

    Mais ça dépend, car à mon sens, le choix de mettre des contenu dans une Bdd vient des manipulations qui sont à faire dessus, et c'est principalement le langage SQL qui fera la différence.
    S'il y a des recherche par exemple dans ces contenus, des récupérations avec des tri très variés voir complexe, le SQL est vraiment efficace.

    Si ces opérations sont rares ou simplistes, les mettre dans des fichiers peu suffire.
    Disons qu'il faudrait se poser la question de manière inverse :
    Est qu'il sera possible de tout faire sans tomber dans d'énormes code Php complexes si c'est dans des fichiers ?

    A coté de ça, et admettons qu'on décide de mettre ces contenus dans la Bdd, rien n'empêche que pour des raisons d'optimisation de les mettre en cache en parallèle dans des fichiers.
    Ca fait doublon certes, ça demande de le gérer, mais ça se fait couramment et c'est plutôt efficace.
    En gros : En consultation (ou opérations simples) on exploite les fichiers en cache, et tout ce qui est de la recherche, tries, modifications, etc ... on exploite la Bdd.


    Bref, comme tu peux voir il y a des solutions.


    un champ de type "text" est le plus adapté non ?
    On ne pourra pas te dire quel serait le type de donnée et sa longueur la mieux adaptée, on ne connait pas ce que ces contenu contiendront.
    C'est à toi de faire le choix.
    Vois du coté de MySQL : http://dev.mysql.com/doc/refman/5.0/...uirements.html
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 55
    Points : 26
    Points
    26
    Par défaut
    voici quelques précisions :
    entre 4 et 6 pages sont à créer par site.
    pour le moment je fais tout en manuel (récupération des pages au format word et formatage) et je transfère sur le site dans le répertoire unique au client.
    donc tout ça est un peu long et je souhaite automatiser tout cela pour que ce soit le client lui même avec un minimum de formation qui le fasse.
    j'utilise tinymce comme éditeur texte.

    le contenu de ces pages, n'est que du code html (titres, texte en forme, liste, liens, images ?...).
    d'ailleurs pour les liens interne au site, je pensais utiliser une regexp à la génération de la page pour afficher le lien.
    exple : remplacer {#lien_contact#} dans le code de la page par contacter-societe-xxx.html (utilisation aussi de l'url rewriting)

    normalement une fois la page créée, il n'y a pas de modif à faire (sauf cas exceptionnel => faute d'orthographe par exple).
    il n'y a pas de moteur de recherche sur le site.

    à chaque page je remonte les infos pour afficher les données propres au site.

    avec ça j'espère que vous allez un peu plus m'aiguiller.

    Merci pour les infos.

  8. #8
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Avec ce que tu dis, j'ai tendance à dire que ça n'aurait finalement peu d'importance.
    Bdd ou fichiers, fait selon ce qui te semble le mieux.


    L'une ou l'autre, c'est loin d'être irrémédiable, irréparable.
    S'il y a un mauvais choix par exemple, il n'est pas si énorme que ça de faire une routine de code Php pour tout récupérer et les mettre dans des fichiers, ou inversement.
    Puis déposer un contenu dans une Bdd ou dans un fichier, c'est presque pareil.



    Pour que les utilisateurs crées des liens, car tu as apparemment de la réécriture, penche toi un peu plus sur "tinymce", il est assez évolué pour y apporter sa touche perso.
    Comme par exemple rajouter un bouton, qui lui en cascade peu appeler un Ajax pour récupérer une liste d'articles existants, et leur lien réécrits.
    C'est pas simple, faut connaitre un peu JS/Php, mais ça évite des regex, et c'est plus ergonomique sans compter on diminue les erreurs des utilisateurs/éditeurs.
    Idem pour l'ajout d'images.
    D'ailleurs, rajouter un champ dans la table des articles contenant l'URL réécrite va facilité ça.
    Mais c'est une idée comme ça.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 55
    Points : 26
    Points
    26
    Par défaut
    en fait j'essaie de me convaincre à travers tout ça d'utiliser une base données

    mes pages sont du texte informatif pour info.
    au niveau de la réécriture le début du lien permet de pointer sur la bonne page (je récupère le 1er mot) :
    exple : contacter-societe-nom-ville.html redirige vers contact.php

    pour les liens je comptais ajouter dans tinymce sur la popup "ajout de lien" une liste déroulante avec les liens vers les pages interne (moins de 10).
    en base ceci enregistrerais par exemple {#lien_contact/texte lien#}.
    ensuite dès que la page serait demandée j'utiliserais une regexp pour afficher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="contacter-societe-nom-ville.html">texte lien</a>
    qu'en pensez vous ?

  10. #10
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="contacter-societe-nom-ville.html">texte lien</a>
    Pourquoi ne pas générer ce code HTML directement dans l'article (donc enregistré en Bdd) plutôt qu'une sorte de pseudo code conventionnel qui devra être à nouveau parcouru par un Regex ?

    Qu'est ce qui t'empêche de générer ce code html ?
    En somme, pourquoi ne pas appliquer les mêmes conventions de réécriture de suite sur les 10 pages que tu compte proposer ?

    Au pire, applique le Regex juste avant insertion, donc après, enregistrer le code avec lien en pure HTML, tout le contenu sera du HTML.
    Le Regex s'appliquera qu'une seule fois (création ou modification) alors que de l'autre le Regex s'appliquera autant de fois qu'il y aura d'article lu par les utilisateurs.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 55
    Points : 26
    Points
    26
    Par défaut
    Pourquoi ne pas générer ce code HTML directement dans l'article (donc enregistré en Bdd) plutôt qu'une sorte de pseudo code conventionnel qui devra être à nouveau parcouru par un Regex ?

    Qu'est ce qui t'empêche de générer ce code html ?
    En somme, pourquoi ne pas appliquer les mêmes conventions de réécriture de suite sur les 10 pages que tu compte proposer ?
    je me doutais de cette question...

    en fait, les liens vers toutes les pages sont dynamiques.
    c'est à dire que partout sur le site dès que je veux faire un lien vers la page contact.php par exemple j'appelle une fonction lien('nom-page') qui me retourne le lien à afficher.
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<?php echo lien("contact"); ?>">Nous contacter</a>
    ceci affichera <a href="contacter-societe-nom-ville.html">Nous contacter</a>

    en imaginant que dans dans ma fonction je décide de modifier le lien contact en me disant par exemple que je ne veux plus mettre la ville dans le lien....vu que le lien sera écrit en dur en Bdd, il risque de ne pas marcher.

    à moins que je rende plus souple ma réécriture d'url...

  12. #12
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    en imaginant que dans dans ma fonction je décide de modifier le lien contact en me disant par exemple que je ne veux plus mettre la ville dans le lien....vu que le lien sera écrit en dur en Bdd, il risque de ne pas marcher.
    Dans cette condition, ce ne serait pas à une fonction de modifier le ou les liens, mais le ou les liens en question dans le ou les articles.
    Ce serait donc plutôt au niveau de la Bdd qu'il faudrait intervenir pour corriger les liens.

    A la limite, et si ce genre de truc arrive fréquemment, il serait peut être intéressant de parcourir les articles dans la Bdd, et rechercher les liens à pour les modifier, et ça d'une traite, et 1 seule fois.
    C'est de la maintenance, ni plus ni moins.
    Là encore on fera l'économie de fonctions/Regex qui s'appliqueraient sans cesse.

    Faut pas perdre de vu aussi que les liens Html obéissent à des règles strictes (<a href="URL"></a>) qui peuvent donc être retrouvés par un Regex, au même titre que t'as convention ({#...#}).
    De même que le SQL a aussi une fonction Regex, donc dans l'absolu ça peu se gérer directement à se niveau là plutôt que Php.


    Si tu crée comme ça des fonctions pour modifier tel ou tel lien, ça va vite être un sacré problème pour les gérer (pour ne pas dire bordel ).


    Ceci dit, je ne suis pas sûr qu'on se comprenne.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 55
    Points : 26
    Points
    26
    Par défaut
    Si tu crée comme ça des fonctions pour modifier tel ou tel lien, ça va vite être un sacré problème pour les gérer (pour ne pas dire bordel ).
    si ça peut te rassurer, je n'ai qu'une fonction et il y a peu de chance que les liens soit modifiés.
    disons que j'essaie de mettre en place un système assez souple...

    donc à ma place tu mettrais les liens en dur en bdd ?
    quitte par la suite à faire de la maintenance en base...ce qui peut se faire aisément c'est vrai.

  14. #14
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    donc à ma place tu mettrais les liens en dur en bdd ?
    En faite, au départ tu demande un avis, donc d'après ce que tu souhaite faire, j'aurais plutôt tendance à tout mettre en HTML, même les liens.
    Théoriquement, une page (une URL en faite) est unique.

    Si une page n'existe plus, ou quelle change, c'est le contenu qui devrait être changé.
    Faudrait juste éviter que ça change tous les 4 matins.

    D'ailleurs, changer une URL n'est pas ce qui a de mieux à faire, car si une URL (une page) est référencée par un moteur de recherche ou que quelqu'un la copie pour y faire référence dans un autre site, ça débouche sur des liens "morts".
    Donc même en créant une fonction, ça ne fera que modifier l'URL au niveau du site, mais pas ceux à l'extérieurs.

    En somme, il faut que les éditeurs aient conscience que mettre des contenu comme des liens, images, vidéo, etc ... c'est particulier, ça peut être un problème, et pas seulement pour le développeur.


    Cependant, je distingue au moins 2 choses différentes.
    D'une part, la convention : {# ... #}
    Et d'autre part, ce qui ce trouve dans cette convention {# le lien #}.

    Si on prend ce forum en exemple, il y a aussi une convention car les liens ne sont pas en HTML mais du BBCode.
    Cependant, le BBCode est devenu un standard, et on l'utilise plutôt pour des raisons de sécurité.

    Par contre, ce qui ce trouve dans le BBCode (pour les liens/images), c'est une URL, soit : -http://www...../le_post_enquestion
    Donc c'est "en dur" comme tu dis, et ça ne cause pas de problème pour autant.
    Et c'est la cas pour la plupart des forums, blogs, et CMS.


    Ceci dit, si tu sens que ces liens peuvent poser problème et qu'une fonction + convention serait plus pratique, libre à toi de le faire.
    Je te donne juste mon sentiment sur un aspect.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

Discussions similaires

  1. 3 pages HTML et du PHP dans une autre page
    Par marssupilamis1 dans le forum Langage
    Réponses: 8
    Dernier message: 20/10/2008, 13h15
  2. problème création pages html
    Par st_math dans le forum IHM
    Réponses: 0
    Dernier message: 31/12/2007, 15h11
  3. Réponses: 4
    Dernier message: 12/10/2007, 09h14
  4. Réponses: 2
    Dernier message: 01/06/2007, 07h49
  5. Récupérer infos page html pour les insérer dans Outlook
    Par andromede88 dans le forum Windows
    Réponses: 4
    Dernier message: 21/09/2006, 14h21

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