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 ou require ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 480
    Par défaut Include ou require ?
    J'ai un certain nombre de variables qui sont partagées par plusieurs fichiers.
    Du coup, je veux les mettre dans un fichier commun auquel je fais appel dans les fichiers en question.
    Mais ce que j'ai codé ne fonctionne pas.

    Fichier des variables (dev_qualif_prod.php) :

    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
     
    	$environnement = 'dev';		//pour le développement
    	// $environnement = 'qualif';	//pour la qualif
    	// $environnement = 'prod';	//pour la production
     
    	function parametre_environnement($page) {
    		switch($environnement) {
    			case 'dev':
    				switch($page) {
    					case 1:
    						$message .= "qualif-";
    					case 2:
    						$server = '##########';
    						$login = '########"';
    						$password = '########';
    					case 3:
    						$message .= "qualif-";
    					case 4:
    						$mysqlserver = "localhost";
    						$mysqlloggin = "root";
    						$mysqlpassword = "##########";
    						$mysqlmaindb = "#########";
    					case 5:
    						$table = "tmp_";
    				}
    ...
    Fichier faisant appel au fichier ci-dessus (login.php) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	include 'dev_qualif_prod.php';
    	parametre_environnement(4);
    ....
    	$connectdb = mysql_connect($mysqlserver,$mysqlloggin,$mysqlpassword);
    .....
    Le message d'erreur : Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in login.php on line 117

  2. #2
    Membre éprouvé Avatar de arthak
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 91
    Par défaut
    le fait que tu ai utilisé include n'a pas d'incidence sur ton erreur. C'est seulemnt de mettre tes variables dans une fonction qui ne sont pas accessibles en dehors de cette fonction Essaye par exemple d'utiliser des constantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // variables de connexion SQL
    define('SERVEUR',"127.0.0.1");	  //définir l'hôte local
    define('NOM',"root");		  	  //définir le login
    define('PASSE',"");		  	  //définir le mot de passe, ici rrien
    define('BASE',"MOP");		  //définir la base principale
     
    	$connexion = mysql_connect(SERVEUR, NOM, PASSE)
              or echo("Impossible de se connecter : " . mysql_error()); 
    	mysql_select_db(BASE);

  3. #3
    Membre chevronné

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Par défaut
    En faite ta variable est dans le scope (espace de variable) de la fonction parametre_environnement.
    Normal que tu ne puisses y accéder depuis ton script principal (qui s'execute dans le scope global).

    Ton include n'a aucune influence dessus.
    C'est ta fonction qui n'est pas bonne. il faut soit retourner un tableau, soit enregistrer tes variables dans des globales (je déconseille fortement).

    Ou bien, utiliser des constantes sans fonction comme on fait dans 90% des cas

  4. #4
    Membre éclairé
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 480
    Par défaut
    La fonction n'est là que pour initialiser les variables selon le cas ($page et $environnement).

    Avant de mettre en place cette fonction, j'avais ceci :

    fichier varconnect.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
    $mysqlserver = "localhost";
    $mysqlloggin = "root";
    $mysqlpassword = "######";
    $mysqlmaindb = "######";
    ...
    fichier login.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ....
    require("varconnect.php");
    mysql_connect($mysqlserver,$mysqlloggin,$mysqlpassword);
    mysql_select_db($mysqlmaindb);
    ....
    Avec ça, pas de problème.

    Je ne vois pas pourquoi le fait de mettre la fonction pose problème : j'initialise bien les variables aussi.

    J'ai essayé ceci :
    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
     
    	$environnement = 'dev';		//pour le développement
    	// $environnement = 'qualif';	//pour la qualif
    	// $environnement = 'prod';	//pour la production
     
    	function parametre_environnement($page) {
    		switch($environnement) {
    			case 'dev':
    				switch($page) {
    					case 1:
    						$message .= "qualif-";
    					case 2:
    						$server = '##########';
    						$login = '########"';
    						$password = '########';
    					case 3:
    						$message .= "qualif-";
    					case 4:
    						define('$mysqlserver',"localhost");
    						define('$mysqlloggin',"root");
    						define('$mysqlpassword',"######");
    						define('$mysqlmaindb',"######");
    					case 5:
    						$table = "tmp_";
    				}
    ...
    Toujours le même problème.

  5. #5
    Membre éclairé
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 480
    Par défaut
    J'ai trouvé avec vos conseils :

    Fichier des constantes (dev_qualif_prod.php)
    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
     
    	$environnement = 'dev';		//pour le développement
    	// $environnement = 'qualif';	//pour la qualif
    	// $environnement = 'prod';	//pour la production
     
    		switch($environnement) {
    			case 'dev':
    				switch($page) {
    					case 1:
    						$message .= "qualif-";
    					case 2:
    						$server = '##########';
    						$login = '########"';
    						$password = '########';
    					case 3:
    						$message .= "qualif-";
    					case 4:
    						define('$mysqlserver',"localhost");
    						define('$mysqlloggin',"root");
    						define('$mysqlpassword',"######");
    						define('$mysqlmaindb',"######");
    					case 5:
    						$table = "tmp_";
    				}
    				break;
     
    ...
    fichier login.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	$page = 4;
    	include 'dev_qualif_prod.php';
    ...
    					mysql_connect($mysqlserver,$mysqlloggin,$mysqlpassword);
    mysql_select_db($mysqlmaindb);
    ...

  6. #6
    Membre éprouvé Avatar de arthak
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 91
    Par défaut
    en fait le fait que tu decide me mettre la variable $toto= "truc" dans une fonction fera qu'en dehors de cette fonction elle n'aura plus cette valeur a par si tu fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    function toto()
    {
         global $toto;
         $toto = "truc";
    }
    toto();
    echo $truc ; //toto

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

Discussions similaires

  1. include et require
    Par amazircool dans le forum Langage
    Réponses: 1
    Dernier message: 14/04/2008, 06h05
  2. [Configuration] Question sur Include (ou Require)
    Par charlands dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 06/10/2007, 14h10
  3. [Système] include ou require ?
    Par amazircool dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2007, 15h22
  4. Fonctions include et require avec php 5.2.1
    Par Nuts07 dans le forum Langage
    Réponses: 10
    Dernier message: 10/03/2007, 23h30
  5. Fonction include (ou require ?)
    Par Link14 dans le forum Langage
    Réponses: 6
    Dernier message: 04/06/2006, 15h40

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