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 :

Appel includes en fonction du nom de la page


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut Appel includes en fonction du nom de la page
    Bonjour,

    Je tente d'appeler mes includes pour différentes pages via le code :
    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
    18
    19
    20
    21
    22
    23
    $link=(isset($_GET['link']))?trim(rawurldecode((string)$_GET['link'])):'';
    switch ($link) {
    	case 'accueil':
    		$include1='("./includes/inc_newsFunctions.php");';
    		$include2='("./includes/inc_cocktailsFunctions.php");';
    		$include3='("./includes/inc_accueilFunctions.php");';
    		break;
    	case 'magazine':
    		$include1='' ;
    		$include2='';
    		$include3='';
    		$include4='';
    		break;
    	default:
    		$include1='' ;
    		$include2='';
    		$include3='';
    		$include4='';
    }
    require_once ''.$include1."\n"; 
    require_once ''.$include2."\n"; 
    require_once ''.$include3."\n"; 
    require_once ''.$include4."\n";
    pour le moment je teste sur la page d'accueil mais ça me renvoi un message d'erreur:
    Warning: main(("./www/includes/inc_newsFunctions.php"); ) [function.main]: failed to open stream: No such file or directory in /homez.318/nightfev/www/n63show.php on line 193

    Fatal error: main() [function.require]: Failed opening required '("./www/includes/inc_newsFunctions.php"); ' (include_path='.:/usr/local/lib/php') in /homez.318/nightfev/www/n63show.php on line 193
    A priori il ne trouve pas le répertoire des includes.

    Pourtant sur la même page j'appelle d'autres includes de façon permanente via le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /**/ require_once("./includes/inc_membresFunctions.php");
    et dans ce cas là ça fonctionne parfaitement.

    J'ai essayé de mettre les includes au format : $include1='("/includes/inc_newsFunctions.php");';
    mais ça ne change rien.

    Quelqu'un peut me venir en aide ?

    Merci par avance,

    Aurélien

  2. #2
    Membre confirmé Avatar de speedy_g
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 213
    Par défaut
    La apparemment, il va sur ./www/includes ce qui n'est pas le répertoire qui fonctionne ./includes comme spécifié dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /**/ require_once("./includes/inc_membresFunctions.php");
    faire cela est ok :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $include = "./includes/inc_membresFunctions.php";
    require_once($include);

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut
    J'ai fait la modif mais ça ne marche pas.

    Voici le modifié :
    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
    18
    19
    20
    21
    22
    23
    $link=(isset($_GET['link']))?trim(rawurldecode((string)$_GET['link'])):'';
    switch ($link) {
    	case 'accueil':
    		$include1= "./includes/inc_newsFunctions.php"; 
    		$include2= "./includes/inc_cocktailsFunctions.php";
    		$include3= "./includes/inc_accueilFunctions.php";
    		break;
    	case 'magazine':
    		$include1='' ;
    		$include2='';
    		$include3='';
    		$include4='';
    		break;
    default:
    		$include1='' ;
    		$include2='';
    		$include3='';
    		$include4='';
    }
    require_once ($include1); 
    require_once ($include2); 
    require_once ($include3); 
    require_once ($include4);
    Voici maintenant l'erreur qui s'affiche :

    Fatal error: main() [function.require]: Failed opening required '' (include_path='.:/usr/local/lib/php') in /homez.318/nightfev/www/n63show.php on line 196

    Comment lui indiquer le bon répertoire d'includes ?

    Merci de ton aide,

    Aurélien

  4. #4
    Membre confirmé Avatar de speedy_g
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 213
    Par défaut
    Si le test est sur acceuil, je ne vois pas ou est défini le $include4.

  5. #5
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Salut,

    En utilisant dirname(__FILE__) cela devrait aller.

    Au passage, nous pourrions utiliser un tableau contenant le(s) fichier(s) à inclure.
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    $include=array();
     
    $link=(isset($_GET['link']))?trim(rawurldecode((string)$_GET['link'])):'';
    switch ($link) {
    	case 'accueil':
    		$include=array(
    			'inc_newsFunctions',
    			'inc_cocktailsFunctions',
    			'inc_accueilFunctions'
    		);
    		break;
    	case 'magazine':
    	/*
    		$include=array(
    			'...',
    			'...'
    		);
    	*/
    		break;
    default:
    	/*	$include=array(
    			'...',
    			'...'
    		);
    	*/
    }
     
    foreach($include as $inc)require_once(dirname(__FILE__).'/includes/'.$inc.'.php');

  6. #6
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut
    Merci ça fonctionne à merveille !!!

    Je me permets d'abuser un peu mais je voudrais savoir comment appeler des fonctions grâce au même système, à savoir une fonction différente par page.

    Voici un exemple de code qui me permet d'appeler une fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $newsReq	= getNewsFromId($nbrNewsId );
    $newValue 	= mysql_fetch_array($newsReq);
    Merci beaucoup de me filer un coup de main,

    Aurélien

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

Discussions similaires

  1. Appel d'une fonction au chargement de la page
    Par paradeofphp dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 01/08/2010, 01h19
  2. Réponses: 3
    Dernier message: 11/10/2008, 13h13
  3. Réponses: 5
    Dernier message: 17/05/2008, 13h15
  4. [MySQL] Appel d'une fonction au nom généré dynamiquement
    Par FrankOVD dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 10/06/2006, 14h36
  5. [FPDF] Erreur après appel d'une fonction avec include
    Par orus8 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 04/11/2005, 10h49

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