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 :

Fichier de configuration contenant les répertoires principaux


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Points : 336
    Points
    336
    Par défaut Fichier de configuration contenant les répertoires principaux
    Bonjour.

    Dans mon appli web, j'ai créé un fichier configuration PHP (contantes.php sous le repertoire Config qui ressemble à ça :
    Code php : 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
    19
    20
    21
    <?php
    header('Content-Type: text/html;charset=UTF-8');
    // Paramètres pour MySQL
    define('DBNAME', 'touslesport-V2');
    define('DBLOGIN', 'root');
    define('DBPASSWD', '');
     
    //Autres
    define('VERSION', 'Projet-V5.2');
    define ('RACINE', $_SERVER["DOCUMENT_ROOT"]);
     
    //Chemins
     
    	//Requête Select
    	define('MYSQL2', './BDD/mysql.php');
     
    	//fonctions php
    	define('fctpHp', '/../Outils/fctpHp.php');	
     
    	//requêtes alimentation de la BDD
    	define('LISTEPARCOURS2', RACINE.'/'.VERSION.'/BDD/listeParcours.php');

    Je ne sais pas comment écrire mes chemins pour qu'il sqoient accessibles de touts mes répertoires et sous répertoire de la même manière.

    Mon projet est sur clé usb avec easyphp, le nom de la clé diffère selon les ordi sur lesquels je me connecte.

    L'architecture de mon projet est la suivante :
    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
    Projet-V5.2
                      index.php
                      /Config
                                  contantes.php
                      /BDD
                                  mysql.php
                      /Outils
                                  fctpHp.php
                      /Vues
                                 /Acuueil
                                            footer.php
                                            header.php
                                  contenuIndex.php
                                  contenuFormulaire.php
                      /Contrôleur
     
                     etc
    Comment dois je écrire mes chemins dans mon fichier de confog pour qu'ils soient accessibles de partout avec le même nom de constante ?

    Merci de votre aide.

  2. #2
    Membre averti Avatar de Freudd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 165
    Points : 379
    Points
    379
    Par défaut
    Bonjour 69Pierre,

    je t'invite à te pencher sur la fonction dirname() et sur la constante magique __DIR__

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Points : 336
    Points
    336
    Par défaut
    Merci.

    J'ai effectivement déjà regardé ces notions mais je n'ai visiblement pas compris puisque je n'arrive pas au résultat escompté.
    De Apache, je lance une application, pHp n'a pas une fonction pour renvoyer la racine du projet ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par 69Pierre Voir le message
    ...pour renvoyer la racine du projet ?
    Et ça, c'est quoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    define ('RACINE', $_SERVER["DOCUMENT_ROOT"]);

    Ta question initiale n'est pas claire.
    Citation Envoyé par 69Pierre Voir le message
    ...pour qu'ils soient accessibles de partout avec le même nom de constante ?...
    C'est quoi, "ils" :
    • des include() / require() / ... ?
    • des liens (<a>, <script>,...) ?

  5. #5
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Points : 336
    Points
    336
    Par défaut
    Bonjour.

    Oui, pardon c'est des require_once

  6. #6
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Points : 336
    Points
    336
    Par défaut
    Bonjour.
    C’est incompréhensible.

    Je voudrais importer le fichier contantes.php de la même manière dans tous les autres fichiers de mon projet en utilisant un chemin absolu, /Projet-V5.2/Config/contantes.php en faisant le même :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once '/Projet-V5.2/Config/contantes.php'

    Cela ne fonctionne pas, je ne comprends pas.
    Je pensais qu'un chemin absolu était un chemin accessible de la même manière à n'importe quel endroit du projet, ce n'est visiblement pas le cas.



    Projet-V5.2
    index.php
    /Config
    contantes.php

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    je ne retrouve pas le post sur ce forum, mais je t'invite à utiliser le code que jreaux62 m'avait montré :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Paths
    if(!defined('SITE_URL_WWW_LOCAL'))	define('SITE_URL_WWW_LOCAL',	'localhost/test');  // en TEST LOCAL, A REMPLACER PAR...
    if(!defined('SITE_URL_WWW_PROD'))	define('SITE_URL_WWW_PROD',	'URL_de_ton_site'); // en PRODUCTION
     
    if( !defined('SITE_URL_WWW')) define('SITE_URL_WWW', isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] == 'localhost' ? SITE_URL_WWW_LOCAL : SITE_URL_WWW_PROD );
    if( !defined('SITE_URL_HTTP'))	define('SITE_URL_HTTP',	'http://'.SITE_URL_WWW);
    puis require_once SITE_URL_HTTP.'/Projet-V5.2/Config/contantes.php'

  8. #8
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Points : 336
    Points
    336
    Par défaut
    Super, merci.

    Ca me donne matière.

  9. #9
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Points : 336
    Points
    336
    Par défaut
    Un truc de fou :
    Warning: require_once(): http:// wrapper is disabled in the server configuration by allow_url_include=0 in
    Warning: require_once(http://localhost:8080/Projet-V5.2/Co...ontantes.php): failed to open stream: no suitable wrapper could be found in
    Fatal error: require_once(): Failed opening required 'http://localhost:8080/Projet-V5.2/Config/contantes.php' (include_path='.;C:\php\pear') in
    alors que le fichier est bien là.

  10. #10
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    dans ton php.ini, allow_url_include doit être à off ; essaye de le mettre à on...on sait jamais.

  11. #11
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Points : 336
    Points
    336
    Par défaut
    Bingo.

    En fait, c'est celui là qu'il faut que je passe à 1 avec php 7 alors qu'une session_start dans mon index.php suffisait avec php 5 :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ; Initialize session on request startup.
    ; http://php.net/session.auto-start
    session.auto_start = 1

    Il me reste à régler mes histoires de chemins qui fonctionnaient avec php 5 et ne fonctionne plus avec php 7 avec ta remarque qui me semble du même tonneau.

  12. #12
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Points : 336
    Points
    336
    Par défaut
    J'ai fait cette fonction pour résoudre mon problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    define('RACINE', dirname('index.php')); 
     
    define('BDD', RACINE.'/BDD/');
     
    if (file_exists(BDD.'mysql.php')) {
    	define('MYSQL2', BDD.'mysql.php');
    } else {
    	define('MYSQL2', '.'.BDD.'mysql.php');
    }

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/07/2013, 01h54
  2. Réponses: 0
    Dernier message: 02/02/2009, 13h03
  3. Réponses: 5
    Dernier message: 09/11/2005, 17h52
  4. Les fichiers de configuration de comptes avec Samba
    Par tomnie dans le forum Réseau
    Réponses: 4
    Dernier message: 18/03/2004, 08h30

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