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 :

revenir à la racine de l'hebergement (pas du site).


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 017
    Points : 308
    Points
    308
    Par défaut revenir à la racine de l'hebergement (pas du site).
    Bonjour,

    Voila mon problème : Un seul hébergement, plusieurs sites qui sont chacun dans un dossier de l'hébergement.

    On a donc www qui contient les dossiers site1, site2, site3, etc...
    chaque site est totalement indépendant (même s'il existe des hyperliens entre eux) et accessible avec son propre nom du genre www.site1.com etc...

    Une page dans chacun de ces site fait appel à des ressources communes situées dans un autre dossier (www/agenda).
    Pour accéder à ces ressources on utilise du PHP avec des lignes du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    set_include_path(get_include_path() . PATH_SEPARATOR . './Classes/');.
    ou
    $inputFileName = './dates.xlsx';
    et
    $closeFileName = './dates.xlsx';
    le problème c'est évidement les ./quelquechose
    ce que je voudrais pour être certain d'arriver au bon endroit c'est mettre une adresse qui repart de la racine.
    Je pourrais probablement mettre http://monhebergement/agenda ce qui donnerait quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    set_include_path(get_include_path() . PATH_SEPARATOR . 'http://espaceimy.cluster010.ovh.net/agenda/Classes/');.
    ou
    $inputFileName = 'http://espaceimy.cluster010.ovh.net/agenda//dates.xlsx';
    et
    $closeFileName = 'http://espaceimy.cluster010.ovh.net/agenda//dates.xlsx';
    Mais est ce une bonne solution ?
    n'y a t'il pas une manière plus propre de rester en relatif tout en allant à la racine ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Je n'avais pas lu ce post avant de répondre à l'autre...

    Si les fichiers à inclure sont dans le même www, alors pour indiquer le chemin relatif entre un fichier inclus et CELUI DANS LEQUEL il est inclus, on peut utiliser :
    • __DIR__
    • dirname(__DIR__)

    voir : Constantes magiques

    Tu peux aussi regarder ce que renvoie $_SERVER['DOCUMENT_ROOT'].

    voir : $_SERVER

  3. #3
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 017
    Points : 308
    Points
    308
    Par défaut
    Bon là je suis vraiment largué !

    __DIR__ Le dossier du fichier. Si utilisé dans une inclusion, le dossier du fichier inclus sera retourné. C'est l'équivalent de dirname(__FILE__). Ce nom de dossier ne contiendra pas de slash final, sauf si c'est le dossier racine
    Heu oui mais ça je m'en fou, j'ai pas besoin d'une commande qui me retourne quelque chose, j'ai besoin d'une commande qui me place à un endroit.
    Je ne veux pas savoir dans quel dossier est un fichier, je veux me mettre dans ce dossier.

    $_SERVER est un tableau contenant des informations comme les en-têtes, dossiers et chemins du script.
    La encore moi ça ne m'intéresse pas d'avoir un tableau avec des infos, je sais ou je veux aller, je veux aller dans www/agenda/Classes.
    J'ai un include qui le faisait bien avant quand le dossier classe était dans le répertoire du fichier qui l'appelait.
    Ca faisait alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set_include_path(get_include_path() . PATH_SEPARATOR . './Classes/');
    include 'PHPExcel/IOFactory.php';
    Dans ce temps la il y avait un dossier AGENDA2 qui contenait le fichier index.php (qui contenait le code ci-dessus) et un dossier Classes.

    Mais maintenant le dossier Classes est dans un dossier plus loin dans l'arborescence.
    Le fichier agenda.php qui contient le code est à www/wp_jdw/theme/lush/agenda/index.php.
    Le dossier classes est dans www/agenda/Classes.

    J'ai l'impression de passer à coté d'un truc

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Yepazix Voir le message
    J'ai l'impression de passer à coté d'un truc
    Ca c'est clair.

    Quand on se fout de tout et qu'on ne teste rien...

    Et vu comment tu réponds (comme d'habitude), ça ne donne pas envie d'aller plus loin dans les explications.

  5. #5
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 017
    Points : 308
    Points
    308
    Par défaut
    Bon donc si je comprends bien tu veux dire que je dois uttiliser

    $_SERVER['DOCUMENT_ROOT'].
    pour définir là ou je veux allez
    et utiliser __DIR__ pour voir ou je suis ?

    C'est ça ?

    J'ai compris comment faire avec __DIR__
    J'ai fait simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [insert_php]
    var_dump(__DIR__);
    [/insert_php]
    (Je suis dans une page WP --> les [insert_php])


    Maintenant il faut que je vois comment fonctionne $_SERVER['DOCUMENT_ROOT'].

    Je te dirai quoi..


    Merci.

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par Yepazix Voir le message
    Je ne veux pas savoir dans quel dossier est un fichier, je veux me mettre dans ce dossier.
    En d'autres termes, tu n'es perdu : c'est le reste du monde qui ne se trouve pas au bon endroit.

    Pour aller quelque part, il faut savoir d'où on part. Paris-Rome ou Tombouctou-Rome, ce n'est pas exactement la même route.

    Pour aller de www/wp_jdw/theme/lush/agenda/index.php à www/agenda/Classes:
    - soit tu remontes l'arborescence à coup de /...
    - soit tu modifies le include_path.

  7. #7
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 017
    Points : 308
    Points
    308
    Par défaut
    Bon là je suis occupé de tester des trucs.
    J'ai fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [insert_php]
    $artout="jdw";
    $chemin1 = $_SERVER['DOCUMENT_ROOT'];
    $chemin2 = '/agenda';
    $chemin = $chemin1.$chemin2;
     
    $dir    = $chemin;
    $files1 = scandir($dir);
    $files2 = scandir($dir, 1);
    print_r($files1);
    print_r($files2);
    Ce qui me permet de voir que je suis dans le bon dossier (www/agenda) puisqu'il m'affiche le contenu de ce dossier.
    Le souci c'est que quand je fais ensuite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set_include_path(get_include_path() . PATH_SEPARATOR . $chemin);
    include 'PHPExcel/IOFactory.php';
    J'ai toujours ce dudju de message d'erreur :

    Warning: include(PHPExcel/IOFactory.php) [function.include]: failed to open stream: No such file or directory in /home/espaceimy/www/wp_jerome_de_warzee/wp-content/plugins/insert-php/insert_php.php(48) : eval()'d code on line 24

    Warning: include() [function.include]: Failed opening 'PHPExcel/IOFactory.php' for inclusion (include_path='.:/usr/local/php5.3/lib/php:/home/espaceimy/www/wp_jerome_de_warzee/wp-content/plugins/background-manager/vendor/OAuth/lib:/home/espaceimy/www/agenda') in /home/espaceimy/www/wp_jerome_de_warzee/wp-content/plugins/insert-php/insert_php.php(48) : eval()'d code on line 24

    Fatal error: Class 'PHPExcel_IOFactory' not found in /home/espaceimy/www/wp_jerome_de_warzee/wp-content/plugins/insert-php/insert_php.php(48) : eval()'d code on line 28
    En ce qui concerne la suggestion de Celira est ce que je peux l'utiliser sans risque dans mon cas de figure ?
    A savoir c'est ici du code que j'exécute dans une page WORD PRESS.
    Si je change le Include path est ce que je ne risque pas d'altérer des fonctions de Word Press ?

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    euh... tu changes déjà le include_path, là. C'est exactement ce que fait la fonction set_include_path
    Ensuite, si les classes que tu cherches sontdans www/agenda/Classes, le chemin à ajouter est $_SERVER['DOCUMENT_ROOT'].'/agenda/Classes'.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Le fichier agenda.php qui contient le code est à www/wp_jdw/theme/lush/agenda/agenda.php.
    Le dossier classes est dans www/agenda/Classes.
    A inclure : www/agenda/Classes/PHPExcel/IOFactory.php

    1/ Dans le fichier agenda.php (ci-dessus cité) :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    include( dirname(dirname(dirname(dirname(__DIR__)))).'/agenda/Classes/PHPExcel/IOFactory.php' );
    • __DIR__ est le dossier contenant le fichier agenda.php (donc dossier "agenda")
    • dirname(...) : on descend à chaque fois d'un dossier jusqu'à la racine www
    • ensuite, on remonte dans l'arborescence


    2/ 2ème solution (celle commentée par Celira) :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    include( $_SERVER['DOCUMENT_ROOT'].'/agenda/Classes/PHPExcel/IOFactory.php' );
    Cela dit, je t'avais dit de vérifier ce qu'indique $_SERVER['DOCUMENT_ROOT'] :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_SERVER['DOCUMENT_ROOT']; // si tu ne sais pas comment vérifier une données...
    Car en LOCAL, ça ne donne pas forcément le bon résultat (disons que comme je gère plusieurs sites, chacun dans son propre dossier et indépendants les uns des autres, ça descend trop loin !)
    Dernière modification par Celira ; 07/07/2015 à 11h18.

  10. #10
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 017
    Points : 308
    Points
    308
    Par défaut
    Là j'ai besoin d'un verre je crois !!!!!!!!!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [insert_php]
    $artout="jdw";
    /** Charger la bibliothèque **/ 
    include( $_SERVER['DOCUMENT_ROOT'].'/agenda/Classes/PHPExcel/IOFactory.php' );
    $inputFileName = './dates.xlsx';
    $objPHPExcel = PHPExcel_IOFactory::load($inputFileName);
    /** On dit que c'est la feuille 0 du fichier excell qu'on va utiliser*/
    $worksheet=$objPHPExcel->getSheet(0);

    me donne :

    Warning: require(/home/espaceimy/www/agenda/Classes/PHPExcelhttp://espaceimy.cluster010.ovh.net/agenda/Classes/PHPExcel/Autoloader.php) [function.require]: failed to open stream: No such file or directory in /home/espaceimy/www/agenda/Classes/PHPExcel/IOFactory.php on line 35

    Fatal error: require() [function.require]: Failed opening required '/home/espaceimy/www/agenda/Classes/PHPExcelhttp://espaceimy.cluster010.ovh.net/agenda/Classes/PHPExcel/Autoloader.php' (include_path='.:/usr/local/php5.3/lib/php:/home/espaceimy/www/wp_jerome_de_warzee/wp-content/plugins/background-manager/vendor/OAuth/lib') in /home/espaceimy/www/agenda/Classes/PHPExcel/IOFactory.php on line 35

    Pourquoi il me parle de autolaoder.php ?
    Et d'où ca sort ça ? include_path='.:/usr/local/php5.3/lib/php:/home/espaceimy/www/wp_jerome_de_warzee/wp-content/plugins/background-manager/vendor/OAuth/lib'

    Le wp est en ligne chez mon hébergeur mais pas accessible pour les gens (sauf s'il tombent dessus par hasard bien sur).

    Attention donc que je suis aussi dans un environnement particulier, mon code PHP s'execute dans une page WP via les plug-in "Insert PHP" et "PHP Code Widget".
    Je commence à me demander si ce n'est pas le problème !

    Si je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    [insert_php]
    $artout="jdw";
    /** Charger la bibliothèque **/ 
    include( dirname(dirname(dirname(dirname(__DIR__).'/agenda/Classes/PHPExcel/IOFactory.php' );
    $inputFileName = './dates.xlsx';
    $objPHPExcel = PHPExcel_IOFactory::load($inputFileName);
    /** On dit que c'est la feuille 0 du fichier excell qu'on va utiliser*/
    $worksheet=$objPHPExcel->getSheet(0);
    Là du coup j'ai
    Parse error: syntax error, unexpected ‘;’ in /home/espaceimy/www/wp_jerome_de_warzee/wp-content/plugins/insert-php/insert_php.php(48) : eval()’d code on line 4
    et pour la forme j'ai fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    [insert_php]
    $artout="jdw";
    /** Charger la bibliothèque **/ 
    echo $_SERVER['DOCUMENT_ROOT'];
    include( $_SERVER['DOCUMENT_ROOT'].'/agenda/Classes/PHPExcel/IOFactory.php' );
    echo $_SERVER['DOCUMENT_ROOT'];
    et la j'ai ça :

    /home/espaceimy/www
    Warning: require(/home/espaceimy/www/agenda/Classes/PHPExcelhttp://espaceimy.cluster010.ovh.net/agenda/Classes/PHPExcel/Autoloader.php) [function.require]: failed to open stream: No such file or directory in /home/espaceimy/www/agenda/Classes/PHPExcel/IOFactory.php on line 35

    Fatal error: require() [function.require]: Failed opening required '/home/espaceimy/www/agenda/Classes/PHPExcelhttp://espaceimy.cluster010.ovh.net/agenda/Classes/PHPExcel/Autoloader.php' (include_path='.:/usr/local/php5.3/lib/php:/home/espaceimy/www/wp_jerome_de_warzee/wp-content/plugins/background-manager/vendor/OAuth/lib') in /home/espaceimy/www/agenda/Classes/PHPExcel/IOFactory.php on line 35

    Et du coup je pige encore moins puisqu'il me renvoit /home/espaceimy/www avant la ligne qui est censée le ramener à la racine.

    Bon je suis complètement largué donc la question est peut être idiote mais je tente :

    Est ce que tout ça ne viendrait pas du fait que je suis dans une page WP, du coup si je donne le bon chemin pour "mon" php qui à besoin d'allez dans ./agenda est ce que je ne prive pas WP d'allez dans un chemin autre qu'il aurait besoin ?

    Bon là je vais pleurer 5 minutes, manger un pot de Nutella et boire un verre et je reviens

  11. #11
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Warning: require(/home/espaceimy/www/agenda/Classes/PHPExcelhttp://espaceimy.cluster010.ovh.net/agenda/Classes/PHPExcel/Autoloader.php) [function.require]: failed to open stream: No such file or directory in /home/espaceimy/www/agenda/Classes/PHPExcel/IOFactory.php on line 35
    ça, ça doit être ta classe IOFactory qui fait ses propres includes (enfin, qui essaye)

    include_path='.:/usr/local/php5.3/lib/php:/home/espaceimy/www/wp_jerome_de_warzee/wp-content/plugins/background-manager/vendor/OAuth/lib'
    ça, c'est l'include_path défini sur ton serveur. Visiblement, pour word press, il y a des choses ajoutées à l'include_path (même si ce n'est pas toi qui l'a fait)

    Parse error: syntax error, unexpected ‘;’ in /home/espaceimy/www/wp_jerome_de_warzee/wp-content/plugins/insert-php/insert_php.php(48) : eval()’d code on line 4
    ça c'est notre ami tacheté qui s'est emmêlé dans les parenthèses de ses multiples appels à dirname et toi qui n'a pas fait gaffe en recopiant la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include( dirname(dirname(dirname(dirname(__DIR__).'/agenda/Classes/PHPExcel/IOFactory.php' );
    Bon, moi j'essaierai la solution du départ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $chemin = $_SERVER['DOCUMENT_ROOT'].'/agenda/Classes';
    set_include_path(get_include_path() . PATH_SEPARATOR . $chemin);
    include 'PHPExcel/IOFactory.php';

  12. #12
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 017
    Points : 308
    Points
    308
    Par défaut
    Merci Celira de me prendre par la main
    Bon je sais je suis un gamin en gardienne qui demande à son institutrice de faire de la trigonométrie mais bon...

    ça c'est notre ami tacheté qui s'est emmêlé dans les parenthèses de ses multiples appels à dirname et toi qui n'a pas fait gaffe en recopiant la ligne
    Et je le soupçonne même d'avoir fait exprès pour voir si je suivais et maintenant il est surement très fâché et je l'ai bien mérité

    Bon j'ai remis en place la solution de départ et j'ai toujours ce message :

    /home/espaceimy/www
    Warning: require(/home/espaceimy/www/agenda/Classes/PHPExcelhttp://espaceimy.cluster010.ovh.net/agenda/Classes/PHPExcel/Autoloader.php) [function.require]: failed to open stream: No such file or directory in /home/espaceimy/www/agenda/Classes/PHPExcel/IOFactory.php on line 35

    Fatal error: require() [function.require]: Failed opening required '/home/espaceimy/www/agenda/Classes/PHPExcelhttp://espaceimy.cluster010.ovh.net/agenda/Classes/PHPExcel/Autoloader.php' (include_path='.:/usr/local/php5.3/lib/php:/home/espaceimy/www/wp_jerome_de_warzee/wp-content/plugins/background-manager/vendor/OAuth/lib:/home/espaceimy/www/agenda/Classes') in /home/espaceimy/www/agenda/Classes/PHPExcel/IOFactory.php on line 35

    Comme tu dis c'est IOFactory qui fait ses propres includes mais qui n'y arrive pas donc est ce que je dois parcourir tous les fichiers php de la classe et modifier le chemin par ce que contient $chemin ?
    Ou alors est ce qu'il y a une solution plus simple ?

    Tu dis aussi

    ça, c'est l'include_path défini sur ton serveur. Visiblement, pour word press, il y a des choses ajoutées à l'include_path (même si ce n'est pas toi qui l'a fait)
    Bon je ne suis pas encore très à l'aise avec cette notion de Include path mais si je pige bien c'est une sorte de chemin par défaut qu'on donne à l'ensemble du site ?
    Du coup est ce que le modifier ne risque pas de "perturber" WP ?
    Est ce que c'est un truc ou on ajoute des chemin un peu comme on fait dans le host ou alors est ce qu'un chemin "écrase" un autre ?

    Si c'est l'option 2 je comprendrais plus ou moins pourquoi ça ne marcherait pas. Le nouveau chemin permettrait à la classe de fonctionner mais plus à WP.
    Si c'est l'option 1 je ne pige du tout !

  13. #13
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 017
    Points : 308
    Points
    308
    Par défaut
    J'ai très nettement progressé sur ce problème et je suis assez fier de moi même si le résultat n'est pas encore probant.

    Je suis reparti de la solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $chemin = $_SERVER['DOCUMENT_ROOT'].'/agenda/Classes';
    set_include_path(get_include_path() . PATH_SEPARATOR . $chemin);
    include 'PHPExcel/IOFactory.php';
    Que je comprenais mieux et je me suis mis à faire plus attention aux messages d'erreur que je recevais en retour.
    Ceux ci ne faisaient pas référence à mon fichier mais à des fichiers faisant partie du dossier Classe.
    Je suis donc allez examiné ces fichiers et j'y ai trouvé des chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!defined('PHPEXCEL_ROOT')) {
        define('PHPEXCEL_ROOT', dirname(__FILE__) . '/');
        require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
    que j'ai remplacé par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!defined('PHPEXCEL_ROOT')) {
        define('PHPEXCEL_ROOT', $_SERVER['DOCUMENT_ROOT']. '/');
        require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (!defined('PHPEXCEL_ROOT')) {
    	/**
    	 * @ignore
    	 */
    	define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../../');
    	require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
    que j'ai remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (!defined('PHPEXCEL_ROOT')) {
    	/**
    	 * @ignore
    	 */
    	define('PHPEXCEL_ROOT', $_SERVER['DOCUMENT_ROOT']. '/agenda/Classes/');
    	require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (!defined('PHPEXCEL_ROOT')) {
    	/**
    	 * @ignore
    	 */
    	define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../');
    	require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
    que j'ai remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (!defined('PHPEXCEL_ROOT')) {
    	/**
    	 * @ignore
    	 */
    	define('PHPEXCEL_ROOT', $_SERVER['DOCUMENT_ROOT']. '/agenda/Classes/');
    	require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
    Je suis vraiment content car je n'ai plus de message d'erreur
    Je n'ai plus rien !..... en fait c'est un peu le problème aussi.... je n'ai plus rien ! Plus rien du tout !

    Ma page est complètement vide, pas l'ombre d'un caractère, pas même mon layout Wod press une belle page toute vide ! http://www.espaceimagi.be/wp_jerome_de_warzee/agenda-3/

    Et ça c'est vraiment ennuyeux car comment savoir ou chercher si je n'ai même pas un message ou une indication pour trouver une piste.
    Bon je me dis que j'ai du foirer quelque part dans mes modifs au niveau de l'arborescence mais j'ai un peu de mal à m'y retrouver entre les /../../, ./, .././..././/./...../.

    Allez vous voyez que je cherche aussi par moi même j'ai encore besoin de votre savoir, ca finira par rentrer

    Merci en tous les cas déjà pour vos beaux effort de didactisme je me sens déjà plus malin ce soir que ce matin...

  14. #14
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 017
    Points : 308
    Points
    308
    Par défaut
    C'est un peu plus problématique que prévu car je n'ai plus rien nul part !
    Plus aucune page de mon site WP ne s'affiche....

    Bon c'est vraiment étrange, je ne sais pas en quoi ce que j'ai fait pourrait altérer mon PC mais il semble que quelque chose se soit passé.
    La plus part des sites que j'essaye d'afficher sont hyper lents et parfois plantent.
    C'est un peu mieux avec chrome mais pas top tout de même.
    J'ai vérifié sur un autre PC tout est normal !
    Je vais tout fermer dès que j'aurai fini de grosses copies de vidéos et je vais redémarrer pour voir.
    Je ne comprends pas en quoi ce que j'ai fait peut produire ce genre de chose ?

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Yepazix Voir le message
    Est ce que tout ça ne viendrait pas du fait que je suis dans une page WP, du coup si je donne le bon chemin pour "mon" php qui à besoin d'allez dans ./agenda est ce que je ne prive pas WP d'allez dans un chemin autre qu'il aurait besoin ?
    C'est LA bonne question.
    (comme quoi, quand on arrête de s'énerver, le cerveau fonctionne mieux !)

    En ce qui me concerne, je ne t'ai JAMAIS conseillé de modifier le include_path...
    Il ne faut pas modifier le include_path de "tout" le site, mais juste le chemin pour inclure tes Classes.

    Et tu n'as toujours pas dit ce que donne :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_SERVER['DOCUMENT_ROOT'];
    Donc :
    • arrête de t'énerver, de n'en faire qu'à ta tête,
    • lis ce qu'on t'écrit, réponds aux questions et suis les instructions.


    Profite-en pour faire (dans agenda.php) :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo dirname(dirname(dirname(dirname(__DIR__)))).'/agenda/Classes/PHPExcel/IOFactory.php';
    La question étant, dans les 2 cas : "Qu'est-ce que ça affiche ?"

    N.B. Une autre fois, je t'expliquerai l'interêt de dirname(__DIR__)...
    Dernière modification par Invité ; 08/07/2015 à 08h56.

  16. #16
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 017
    Points : 308
    Points
    308
    Par défaut
    Oui c'est vrai que quand ça va pas je pète une durite et je me braque du coup quand un message d'erreur apparaît je ne remarque même pas qu'il n'est pas identique à celui qu'il y avait avant.

    Donc j'ai fait ce que tu m'as demandé.
    Petite précision toute de même, il n'y a plus de page agenda.php, ça c'était du temps ou le site était fait par moi en PHP, maintenant c'est Word Press et donc mon code PHP il est dans une page comme ceci :
    Nom : atelier.jpg
Affichages : 1719
Taille : 199,9 Ko

    Et ça me donne comme résultat :
    /home/espaceimy/www – /home/espaceimy/www/agenda/Classes/PHPExcel/IOFactory.php

    Nom : resultat.jpg
Affichages : 1635
Taille : 78,7 Ko

    Entre temps j'ai rétabli mes fichiers à une version antérieure sauvegardée hier. Les pages s'affichent à nouveau normalement.
    Quoi qu'il en soit je pense que cette petite aventure démontre que les problème vient du fait que dans le dossier Classe il y a des fichiers php qui font eux même appel à d'autres via un chemin qu'ils ne trouvent pas.
    Sachant que accéder aux images ou au fichier dates.xlsx ne pose aucun problème au niveau du chemin et que le seul problème vient donc de ce dossier Classe, ne serait il pas plus efficace de mettre ce dossier classe là ou il devrait être ? (plutôt que d'indiquer là ou il est).
    Mais la question est alors : " ou devrait il être" ? (Car dans l'organisation des dossiers de WP ce n'est pas facile).
    Ceci étant dit j'ai aussi un problème dans mon code PHP, j'en ai fait un autre post car sinon on va vraiment s'emmeler les pinceaux et je ne crois pas que ça puisse venir de là.

  17. #17
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 017
    Points : 308
    Points
    308
    Par défaut
    Un truc que j'ai tenté.
    Au lieu de mettre le code directement dans la page WP, j'ai crée une page php ultra simple avec mon code et j'ai essayé d'appeler cette page.
    j'ai commencé par créer une page "base.php" qui ne contient rien que ce code (pas d'entête, ou quoi que ce soit).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ceci est un test
    <?php
    echo 'ceci est un text php';
    ?>
    Ensuite dans ma page WP je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [insert_php]
    include($_SERVER['DOCUMENT_ROOT'].'/agendamaster/base.php');
    [/insert_php]
    Ca fonctionne nikel il m'affiche bien "ceci est un test et ceci est un text php".

    Du coup je me suis dit c'est gagné et j'ai fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [insert_php]
    include($_SERVER['DOCUMENT_ROOT'].'/agendamaster/index.php');
    [/insert_php]
    En sachant que index contient le code php qui fait ceci : http://espaceimy.cluster010.ovh.net/...ster/index.php

    Je me suis dit "l'include il ne fait qu'includer la page index.php "toute faites".
    Si cette page index.php fonctionne quand on l'appelle par http://espaceimy.cluster010.ovh.net/...ster/index.php elle doit pouvoir être includer dans wp.

    Et be non j'ai les messages suivants :
    Warning: include(PHPExcel/IOFactory.php) [function.include]: failed to open stream: No such file or directory in /home/espaceimy/www/agendamaster/index.php on line 16

    Warning: include() [function.include]: Failed opening 'PHPExcel/IOFactory.php' for inclusion (include_path='.:/usr/local/php5.3/lib/php:/home/espaceimy/www/wp_jerome_de_warzee/wp-content/plugins/background-manager/vendor/OAuth/lib:./Classes/') in /home/espaceimy/www/agendamaster/index.php on line 16

    Fatal error: Class 'PHPExcel_IOFactory' not found in /home/espaceimy/www/agendamaster/index.php on line 20

  18. #18
    Invité
    Invité(e)
    Par défaut
    1/ Les fichiers en "include" ne doivent PAS contenir de DOCTYPE, ni les balises <html>, <head>, <body>.

    2/ le message d'erreur concerne "PHPExcel/IOFactory.php", qui n'est toujours pas trouvé.

    3/ "/home/espaceimy/www"
    Si tu es bien sur le serveur (et pas en local), alors la racine n'est pas "www", mais "home".

    4/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo dirname(dirname(dirname(dirname(__DIR__)))).'/agenda/Classes/PHPExcel/IOFactory.php';
    renvoie "/home/espaceimy/www/agenda/Classes/PHPExcel/IOFactory.php"
    Alors, pour ne descendre que jusque "www", il faut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include( dirname(dirname(__DIR__)).'/agenda/Classes/PHPExcel/IOFactory.php');
    A tester.

  19. #19
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 017
    Points : 308
    Points
    308
    Par défaut
    OK, je crois que je comprends mais il y a tout de même quelque chose qui me "chipote" (comme on dit chez nous).

    On part d'un truc qui marche. Ce truc c'est :
    - un dossier qui s'appelle "agendamaster" et qui se trouve à www/agendamaster.
    - dans ce dossier on à :
    - Un dossier image et un dossier affiches qui contiennent des images utilisées dans la page (ac on s'en fou un peu pour le moment).
    - Un fichier dates.xlsx qui contient des infos qui doivent être exploitées par php et affichées.
    - Un dossier Classes qui contient le nécessaire à la bonne exécution du fichier index.php.
    - Un fichiers index.php qui contient un code php qui va chercher les infos dans le fichiers xlsx.

    Comme on peut le voir ici ça fonctionne +/-.

    Pourtant rien n'a été modifié dans Classes, le fichier index.php fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set_include_path(get_include_path() . PATH_SEPARATOR . './Classes/');
    include 'PHPExcel/IOFactory.php';
    Donc le code fait un appel qui marche à Classes et ensuite tous les codes qui sont exécutés dans Classes trouvent leur chemin.


    Maintenant quand on tente de mettre le code dans la page WP (qui est dans un autre dossier) ou quand on tente de faire un include de la page index.php qui est dans le dossier agenda2 ça ne fonctionne pas et on à des messages d'erreur.
    Ces messages indiquent que des fichiers php qui sont appelés par des fichiers php qui sont dans Classes ne sont pas trouvés.
    Ce que je ne pige pas c'est que pourtant Classes n'a pas bougé de place.
    Pourquoi si classes trouvait son chemin avant il ne le trouve plus maintenant ?

  20. #20
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 017
    Points : 308
    Points
    308
    Par défaut
    Et donc encore une question rapport à ton message précédant.
    Alors quand je fais

    $_SERVER['DOCUMENT_ROOT'].

    Je suis à "/home/" et pas à "/home/espaceimy/www" ?

    C'est ça ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Besoin d'aide pour l'hebergement d'un site de 1 à 5go de video flv?
    Par ned-flanders dans le forum Hébergement
    Réponses: 3
    Dernier message: 22/02/2008, 11h22
  2. Hebergement web - plusieurs site sur plusieurs serveur
    Par annega22 dans le forum Serveurs (Apache, IIS,...)
    Réponses: 4
    Dernier message: 23/04/2007, 16h52
  3. Réponses: 1
    Dernier message: 13/10/2006, 13h52
  4. hebergement d'un site asp
    Par hamida sara dans le forum ASP
    Réponses: 1
    Dernier message: 11/09/2006, 14h27
  5. [Infos-conseil]Hebergement d'un site
    Par Sunchaser dans le forum Hébergement
    Réponses: 3
    Dernier message: 05/08/2006, 17h48

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