Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/03/2011, 16h29   #1
Invité régulier
 
Inscription : août 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 55
Points : 9
Points : 9
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.
p_m_g est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2011, 16h34   #2
Membre du Club
 
Inscription : janvier 2010
Messages : 59
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 59
Points : 44
Points : 44
La structure principale de tes pages en fichiers et le contenu en bdd.
MtgCmg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2011, 17h34   #3
Invité régulier
 
Inscription : août 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 55
Points : 9
Points : 9
Excuse moi je n'ai pas tout compris...
p_m_g est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2011, 18h07   #4
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 561
Points : 1 561
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.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 09h43   #5
Invité régulier
 
Inscription : août 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 55
Points : 9
Points : 9
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 ?
p_m_g est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 12h07   #6
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 707
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 707
Points : 3 277
Points : 3 277
Citation:
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.


Citation:
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]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 12h54   #7
Invité régulier
 
Inscription : août 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 55
Points : 9
Points : 9
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.
p_m_g est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 13h23   #8
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 707
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 707
Points : 3 277
Points : 3 277
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]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 13h54   #9
Invité régulier
 
Inscription : août 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 55
Points : 9
Points : 9
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 :
<a href="contacter-societe-nom-ville.html">texte lien</a>
qu'en pensez vous ?
p_m_g est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 14h22   #10
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 707
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 707
Points : 3 277
Points : 3 277
Code :
<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]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 15h53   #11
Invité régulier
 
Inscription : août 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 55
Points : 9
Points : 9
Citation:
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 :
<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...
p_m_g est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 18h59   #12
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 707
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 707
Points : 3 277
Points : 3 277
Citation:
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]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 12h55   #13
Invité régulier
 
Inscription : août 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 55
Points : 9
Points : 9
Citation:
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.
p_m_g est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 20h47   #14
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 707
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 707
Points : 3 277
Points : 3 277
Citation:
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]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h10.


 
 
 
 
Partenaires

Hébergement Web