Regex en php :s Je suis perdu
Résolu/Fermé
//US//NY//
Messages postés
48
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
29 mars 2011
-
13 avril 2010 à 00:26
//US//NY// Messages postés 48 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 29 mars 2011 - 14 avril 2010 à 01:47
//US//NY// Messages postés 48 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 29 mars 2011 - 14 avril 2010 à 01:47
A voir également:
- Regex en php :s Je suis perdu
- Easy php - Télécharger - Divers Web & Internet
- Regex tiret - Forum Webmastering
- Php?id=1 - Forum PHP
- Expert php pinterest - Télécharger - Langages
- \R php ✓ - Forum PHP
8 réponses
Salut,
moi je dirais comme ça que c'est une solution un peu toxique.
Si le code inséré est mauvais, il peut endommager le coeur de ton cms, voire de la base de donnée.
Imaginons qu'un mauvais expert de sql confonde la fonction effacer avec updater.
Ou effacer un enregistrement avec effacer la table.
C'est assez simple de foutre la pagaille dans le programme.
Non moi je te conseille si tu veux vraiment poursuivre sur la voie de l'ajout de code de regarder les réalisations déjà faites et de t'en inspirer.
Ex:
Spip: Spip à inventé un Métalangage, c'est à dire qu'il permet d'insérer du code Spip dans ce qu'il appelle les squelettes (l'equivaent de tes .TPL). Le code Spip met à disposition de l'utilisateur des "boucles", des petits bouts de codes écrit en langage propre a Spip (et beaucoup plus simple pour les novices que le Php/Sql) et qui permet de faire des appels à la base de donnée. d'autre part si le code est pourri, cela n'aura aucun dommage sur le site ni la base de donnée, l'ajout suppression ne se faisant que depuis e panneau admin.
Voila pour Spip, maintenant Joomla
Dans Joomla, tu peux ajouter des modules depuis le panneau admin, disons des plugins, des petits bouts de codes accompagnés d'un fichier XML de description, imposé par le moteur de cms, pour savoir quoi faire du code, où l'installer, dans quelle condition, qui peut l'utiliser etc...
Tu vas me dire que si le code est pourri de toute façon ça peut tout faire planter. Oui bien sûr, mais l'objectif de ces plugins, modules, c'est qu'ils doivent passer disons une sorte de certification de nontoxicité/non bugage avant d'être rendus dispo à tous sur une bibliothèque dédiée.
PS. : Le metalangage est compliqué à mettre en place, mais le cache ça va.
Bon courage dans tes recherches
Olivier
moi je dirais comme ça que c'est une solution un peu toxique.
Si le code inséré est mauvais, il peut endommager le coeur de ton cms, voire de la base de donnée.
Imaginons qu'un mauvais expert de sql confonde la fonction effacer avec updater.
Ou effacer un enregistrement avec effacer la table.
C'est assez simple de foutre la pagaille dans le programme.
Non moi je te conseille si tu veux vraiment poursuivre sur la voie de l'ajout de code de regarder les réalisations déjà faites et de t'en inspirer.
Ex:
Spip: Spip à inventé un Métalangage, c'est à dire qu'il permet d'insérer du code Spip dans ce qu'il appelle les squelettes (l'equivaent de tes .TPL). Le code Spip met à disposition de l'utilisateur des "boucles", des petits bouts de codes écrit en langage propre a Spip (et beaucoup plus simple pour les novices que le Php/Sql) et qui permet de faire des appels à la base de donnée. d'autre part si le code est pourri, cela n'aura aucun dommage sur le site ni la base de donnée, l'ajout suppression ne se faisant que depuis e panneau admin.
Voila pour Spip, maintenant Joomla
Dans Joomla, tu peux ajouter des modules depuis le panneau admin, disons des plugins, des petits bouts de codes accompagnés d'un fichier XML de description, imposé par le moteur de cms, pour savoir quoi faire du code, où l'installer, dans quelle condition, qui peut l'utiliser etc...
Tu vas me dire que si le code est pourri de toute façon ça peut tout faire planter. Oui bien sûr, mais l'objectif de ces plugins, modules, c'est qu'ils doivent passer disons une sorte de certification de nontoxicité/non bugage avant d'être rendus dispo à tous sur une bibliothèque dédiée.
PS. : Le metalangage est compliqué à mettre en place, mais le cache ça va.
Bon courage dans tes recherches
Olivier
Tu vas droit dans une faille de sécurité là si tu permets l'insertion de code dans les templates.
Je proposes de séparer les taches et de proposer l'installation de modules.
Ça se complexifie.... mais ça sera beaucoup plus efficace sur la longue.
Je proposes de séparer les taches et de proposer l'installation de modules.
Ça se complexifie.... mais ça sera beaucoup plus efficace sur la longue.
//US//NY//
Messages postés
48
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
29 mars 2011
6
Modifié par //US//NY// le 13/04/2010 à 12:09
Modifié par //US//NY// le 13/04/2010 à 12:09
Je ne comprend pas d'ou pourrait venir la faille de sécurité car le code contenu dans le fichier .TPL ne peut être ni lu ni modifié par autrui, et de toutes façons les clés sont traduites et interprétés par du php. Je souhaiterais que l'ont puissent intégrer des fichier ou du code php dans le .TPL pour pouvoir faire des conditions ou récupérer des infos supplémentaire dans la base de données...
Enfin bon après c'est une façon de faire...
Par contre je ne comprend pas ta proposition... L'installation de modules ??
Et ... pour la complexité c'est très très loin de me dérangé ;) car sur un cms il y a je suis sur des trucs bien plus compliquée ^^ ( du genre la gestion de cache )
Sinon je cherche toujours pour mes Regex ;)
Enfin bon après c'est une façon de faire...
Par contre je ne comprend pas ta proposition... L'installation de modules ??
Et ... pour la complexité c'est très très loin de me dérangé ;) car sur un cms il y a je suis sur des trucs bien plus compliquée ^^ ( du genre la gestion de cache )
Sinon je cherche toujours pour mes Regex ;)
//US//NY//
Messages postés
48
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
29 mars 2011
6
13 avril 2010 à 20:31
13 avril 2010 à 20:31
Merci olivier pour tes réponses qui m'ont fait réfléchir :)
J'ai décidé de quand même permettre au créateur du Template d'utiliser su code php... mes raisons sont que certain Template complexes auront peut être besoin de la base de données ou alors même d'utiliser des fichiers pour stocker des infos sur le Template...
Ainsi le créateur du Template a juste a inclure un bout de code semblable a celui ci pour que le moteur Template du cms inclus le fichier .php et .tpl :
<!--{X225PHPMODE}-->
Ce que tu ma dit ma grandement aidé et fait réfléchir...
- Des fonctions basiques ou complexes seront donc dans le core du cms ( même si c'était déjà prévu )
- Ensuite j vais faire en sorte qu'une de ces fonctions "créer" une base de données en utilisant des fichiers ( ce qui sera d'ailleurs plus rapide )
- Et... a ce stade du script la connexion avec la bdd est de toutes façons déjà fermée.
Merci encore d'avoir utiliser de ton temps pour m'aidé ;)
Si tu a encore des suggestion a me faire hésite pas ;) ... ni a critiqué d'ailleurs
J'ai décidé de quand même permettre au créateur du Template d'utiliser su code php... mes raisons sont que certain Template complexes auront peut être besoin de la base de données ou alors même d'utiliser des fichiers pour stocker des infos sur le Template...
Ainsi le créateur du Template a juste a inclure un bout de code semblable a celui ci pour que le moteur Template du cms inclus le fichier .php et .tpl :
<!--{X225PHPMODE}-->
Ce que tu ma dit ma grandement aidé et fait réfléchir...
- Des fonctions basiques ou complexes seront donc dans le core du cms ( même si c'était déjà prévu )
- Ensuite j vais faire en sorte qu'une de ces fonctions "créer" une base de données en utilisant des fichiers ( ce qui sera d'ailleurs plus rapide )
- Et... a ce stade du script la connexion avec la bdd est de toutes façons déjà fermée.
Merci encore d'avoir utiliser de ton temps pour m'aidé ;)
Si tu a encore des suggestion a me faire hésite pas ;) ... ni a critiqué d'ailleurs
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Quel est ton problème au niveau des expressions régulières ?
As tu pensé à la fontion eval ensuite ?
Bien à toi,
Olivier
As tu pensé à la fontion eval ensuite ?
Bien à toi,
Olivier
//US//NY//
Messages postés
48
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
29 mars 2011
6
14 avril 2010 à 01:09
14 avril 2010 à 01:09
Baaaa,
Ce que je voulais faire c'était extraire un bout de chaine placé être certaines balises ( {PHP /* code php */ ?} ) et ensuite l'interprète avec, comme tu l'as dit, la fonction eval();
Donc je pensait utiliser preg_match(); ou preg_match_all(); mais c'est pas dans l'utilisation de ces fonctions que je bloque car j'ai bien réussi a utiliser preg_match pour reconnaitre une adresse email ...
Mais dans la création d'expression régulière en clair je ne sait pas comment ecrire:
Commence par {PHP et fini par ?} et puis après extraire le code antre ces "balises"
Enfin bon comme je l'ai dit plus haut je pense qu'avoir opté pour la solution du fichier php facultatif est mieux car de 1 c'est plus rapide et encore moins limiter.
Ce que je voulais faire c'était extraire un bout de chaine placé être certaines balises ( {PHP /* code php */ ?} ) et ensuite l'interprète avec, comme tu l'as dit, la fonction eval();
Donc je pensait utiliser preg_match(); ou preg_match_all(); mais c'est pas dans l'utilisation de ces fonctions que je bloque car j'ai bien réussi a utiliser preg_match pour reconnaitre une adresse email ...
Mais dans la création d'expression régulière en clair je ne sait pas comment ecrire:
Commence par {PHP et fini par ?} et puis après extraire le code antre ces "balises"
Enfin bon comme je l'ai dit plus haut je pense qu'avoir opté pour la solution du fichier php facultatif est mieux car de 1 c'est plus rapide et encore moins limiter.
//US//NY//
Messages postés
48
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
29 mars 2011
6
14 avril 2010 à 01:47
14 avril 2010 à 01:47
Merci et encore merci .. tes messages mon beaucoup aidé ;)