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 :

include non fonctionnel depuis migration en 5.3 [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2008
    Messages : 12
    Points : 5
    Points
    5
    Par défaut include non fonctionnel depuis migration en 5.3
    Bonjour à tous,

    Bientôt 24h que je cherche sans trouver d'où vient le problème, s'il faut c'est une bêtise en plus !

    Voilà : Mon site est fait sur PHP 5.2 et je viens de tenter le passage en 5.3 (voir après 5.4 ou 5.5), mais si tout le reste semble fonctionner comme il faut j'ai un problème au niveau de ma navigation imbriquée,

    Mettons que j'ai 4 pages (je simplifie j'en ai plus)

    www/index.php
    www/grafibullev7/centre.php
    www/grafibullev7/_accueil.php
    www/grafibullev7/_galeries.php


    index >inclue centre qui >inclue accueil (par défaut) ou galeries

    Mon include pour index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include("grafibullev7/centre.php"); ?>
    Qui fonctionne puisque si je remplace centre.php par une autre page du dossier elle s'affiche

    Extrait de ma page centre.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ($page == 'accueil')
    	 {include('_accueil.php'); }
    else if ($page == 'galeries') 
    	 {include('_galeries.php'); }
    //sinon, charger l'accueil		  	 
    else {include('_accueil.php'); }
    Exemple d'un lien dans la page accueil ou index par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.grafibulle.net/index.php?page=galeries
    Est-ce que quelque chose à changé à propos des imbrications dans les nouvelles versions de php ?? ou des url ? J'ai beau chercher dans les sujets "incompatibilité" "depreciated" "migration 5.3" etc etc mais je ne trouve pas,

    Pourriez-vous me donner un coup de main dans mon brouillard s'il vous plaît ? Merci infiniment !


    J'ai dû pour l'instant remettre mon site en 5.2 pour éviter de poser des problèmes aux internautes, mais sachant que je vais de tout façon devoir passer au-dessus et que la base de ma programmation est toujours en imbrications... je dois avouer que je flippe un peu :/ (là ce n'est que mon site personnel mais j'en ai pour d'autres personnes !)

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton site devait utilisé le déjà obsolète "register globals"
    Il faut utiliser $_GET['page'] et non $page.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2008
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    merci sabotage, je vais tenter aujourd'hui !

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    pour éviter les problème de chemins relatifs avec des include dans des include dans...

    page index.php (qui est à la racine) :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include( __DIR__.'grafibullev7/centre.php' ); ?>
    et page centre.php (qui est dans le même dossier que les fichiers qu'il inclus) :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $page = ( !empty($_GET['page']) )? $_GET['page'] : 'accueil';
    if ($page == 'accueil')
    	 {include( __DIR__.'/_accueil.php' ); }
     
    else if ($page == 'galeries') 
    	 {include( __DIR__.'/_galeries.php' ); }
     
    //sinon, charger l'accueil		  	 
    else {include( __DIR__.'/_accueil.php' ); }
    voir : les constantes magique.
    __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.
    On aurait pu écrire aussi :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $page = ( !empty($_GET['page']) )? $_GET['page'] : 'accueil';
    if ($page == 'accueil')
    	 {include( dirname(__DIR__).'/grafibullev7/_accueil.php' ); }
     
    else if ($page == 'galeries') 
    	 {include( dirname(__DIR__).'/grafibullev7/_galeries.php' ); }
     
    //sinon, charger l'accueil		  	 
    else {include( dirname(__DIR__).'/grafibullev7/_accueil.php' ); }

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2008
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Merci jreaux62 pour les détails je vais pouvoir gagner un peu de temps ^^

    Oui, j'avais tenté de travailler avec __DIR__ hier, mais sans le combiner avec $_GET['page']

    je vais voir si je peux pas faire un tout, car j'ai pas trop de temps devant moi avant de rembaucher, sinon je tenterai ce soir

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2008
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Merci infiniment !!! ça fonctionne très bien

    (j'avais juste un petit bug dans le chemin vers centre.php avec un / qui manquait, mercimerci c'était parfait

    J'ai plus qu'à entrer ma liste de pages... et le faire sur tous mes sites


    Bonne soirée !

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

Discussions similaires

  1. Include non fonctionnel
    Par linar009 dans le forum Général JavaScript
    Réponses: 31
    Dernier message: 11/08/2006, 09h48
  2. [classpath]classpath non chargé depuis le jar, le système,..
    Par Grummfy dans le forum Général Java
    Réponses: 5
    Dernier message: 12/01/2006, 17h28
  3. [Cookies] include non persistant en mémoire
    Par ouioui2000 dans le forum Langage
    Réponses: 1
    Dernier message: 18/10/2005, 15h07
  4. Tunnel SSH non reconnu depuis Windows
    Par D@rKness74 dans le forum Développement
    Réponses: 2
    Dernier message: 03/05/2005, 12h32
  5. INCLUDE non exécuté
    Par Sadneth dans le forum ASP
    Réponses: 3
    Dernier message: 07/09/2003, 00h44

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