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 :

Gestion de ficher de configuration sur deux sites [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut Gestion de ficher de configuration sur deux sites
    Bonjour à tou(te)s,

    J'ai actuellement deux sites séparés : le front-office pour les utilisateurs (en http basique) et le back-office pour les administrateurs (en https pour plus de sécurité).

    J'ai souhaité utiliser un fichier de configuration type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $config['nombre_jours_avant'] = 30;
    $config['nombre_jours_après'] = 60;
    ?>
    Bien entendu, je vais tâcher de permettre l'édition de ce fichier du côté Back-Office (en gros, je donne les valeurs des variables et il remplace le fichier par un nouveau).
    Mes questions sont :
    - Puis-je alors utiliser un seul fichier (côté back-office par exemple) pour les deux sites ?
    - Est-ce une bonne idée ?

    Merci d'avance,

  2. #2
    Expert éminent
    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
    Points : 7 762
    Points
    7 762
    Par défaut
    Oui, pourquoi pas. Personnellement j'utilise des .ini pour les paramètres de configurations, générer des fichiers .php j'aime pas tellement...

    Il n'y a aucun problème à mutualiser les configurations qui sont partagées entre le backend et le frontend. Si ça te gène de faire ça sur fichier, tu peux aussi bien le faire en DB.

  3. #3
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    Meri, en base non, il y a peu de choses, ca me semble disproportionné (il y a une base quand même, mais pour des données, pas pour de la configuration).

    Ma question c'est surtout que ce sont deux sites distincts. Le deuxième étant protégé (https), le premier doit y avoir accès pour au moins ce fichier de configuration. Ou alors, je mets le fichier côté front-office...

  4. #4
    Expert éminent
    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
    Points : 7 762
    Points
    7 762
    Par défaut
    La notion de sécurité (notamment avec HTTPS) n'importe pas dans le carde de la lecture du fichier. Je serais quand même d'avis de le garder dans l'arborescence du backoffice.

  5. #5
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    Merci pour tes réponses, je vais tâcher de m'atteler à la tâche maintenant !

  6. #6
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Oui, pourquoi pas. Personnellement j'utilise des .ini pour les paramètres de configurations, générer des fichiers .php j'aime pas tellement...
    Tiens, je rebondis sur ce que tu dis. Pourquoi tu n'aimes pas ? Le problème que je vois avec un .inl c'est que le tout serait affiché directement sur l'écran de l'utilisateur, non ? Avec un php, au moins le contenu sera invisible à l'utilisateur.

  7. #7
    Expert éminent
    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
    Points : 7 762
    Points
    7 762
    Par défaut
    Il faut protéger les fichiers de configuration .ini avec une règle au niveau d'apache (avec un .htaccess par exemple). L'avantage c'est qu'ils sont lisible en langage humain donc éditables sans problème par un tiers via FTP par exemple. De plus, charger leur contenu en mémoire est un jeu d'enfant. Après c'est toi qui voit, c'est vrai que mettre la conf dans un .php est par nature plus sécurisé, mais éditer ce fichier par PHP relève pour moi du bidouillage...

  8. #8
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    Euh, si tu mets un .htaccess, aucun utilisateur ne pourra le voir, non ? Comment alors l'inclure dans un fichier ?

    ...

    En posant la question, je pense comprendre : Tu fais du fopen sur ce fichier, c'est ca ? Tu le lis en php pour définir des variables de session par exemple ?

  9. #9
    Expert éminent
    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
    Points : 7 762
    Points
    7 762
    Par défaut
    En posant la question, je pense comprendre : Tu fais du fopen sur ce fichier, c'est ca ? Tu le lis en php pour définir des variables de session par exemple ?
    Effectivement, même si fopen est un peu grossier et que parse_ini_file est plus approprié, c'est le comportement que j'effectue.
    Une solution basique pour charger un fichier INI qui définit des constantes est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    define('CONF_FILE', '/path/to/the/file.ini');
    if ($struct = parse_ini_file(CONF_FILE, false)) {
      foreach ($struct as $key => $value) {
         if (!defined($key)) define($key, $value);
      }
    }
    C'est pas bien propre mais ça rends service parfois.

  10. #10
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    hmm, je comprends. Moi au contraire, je mets le code php directement. Donc il suffit de l'inclure (je l'inclus dans chaque page et je n'utilise pas de variable en session pour la configuration.

    Merci pour tes idées, éclaircissements et cie

  11. #11
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    Arf !
    J'ai viré le "Résolu" parce que ma question revient en force

    J'ai créé le fichier de configuration, et je tente de l'inclure depuis l'autre
    Par contre, j'ai un message d'erreur assez logique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http:// wrapper is disabled in the server configuration by allow_url_include=0
    Donc, si je veux utiliser ce même fichier de config sur le site client, je vais être obligé soit de le copier, soit de modifier la configuration. Cette solution est-elle risquée ? J'ai jeté un oei dnas la doc php mais ils ne disent rien de particulier.

  12. #12
    Expert éminent
    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
    Points : 7 762
    Points
    7 762
    Par défaut
    Ton backoffice et ton frontoffice ne sont pas sur le même serveur ??
    Si c'est effectivement le cas, il faut mettre la directive allow_url_include à On dans php.ini, si tu n'as pas le contrôle dessus, tu peux le faire avec un .htaccess de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    php_flag allow_url_include 1
    ou dans le php en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ini_set('allow_url_include', 1);
    Voir: http://www.php.net/manual/en/filesys...llow-url-fopen

    Si les deux sites sont sur le même serveur, inutile d'avoir recours à cette technique car il suffit de mettre le path absolu dans la directive include (ou require).

  13. #13
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Si les deux sites sont sur le même serveur, inutile d'avoir recours à cette technique car il suffit de mettre le path absolu dans la directive include (ou require).
    C'est le cas, ouf ! Merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.2] Authentification sur deux sites
    Par deglingo592003 dans le forum Langage
    Réponses: 8
    Dernier message: 08/09/2009, 14h00
  2. Gestion de licences de logiciel sur un site FTP
    Par colorid dans le forum Langage
    Réponses: 3
    Dernier message: 15/06/2009, 16h35
  3. [WS 2008] DC sur deux sites
    Par D3V1L J4M dans le forum Windows Serveur
    Réponses: 10
    Dernier message: 04/05/2009, 04h25
  4. repliquer sur deux sites avec un seul cluster (slony)
    Par fridi_mourad dans le forum Requêtes
    Réponses: 0
    Dernier message: 14/02/2009, 15h12
  5. [Conception] Inscription simultanée sur deux sites différents
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 20/04/2006, 11h28

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