Questions sur la fonction include

Questions sur la fonction include - PHP - Programmation

Marsh Posté le 25-10-2004 à 22:55:04    

Je voudrais parler ici d'un sujet qui me trouble :
 
Considérons 4 fichiers : file1, file2, file3, vars avec les contenus suivants :  
 
vars:
 
...code, déclaration de variables ...
 
--------------------------------
 
file1 :
 
...code...
include "file2"
...code...
 
--------------------------------
 
file2:
 
...code...
include "file3"
...code...
 
--------------------------------
 
file3:
 
...code...
 
--------------------------------
 
 
Puis-je utiliser les varaibles de vars, ou file1 dans file3, file2 ?
 
Si oui, y-a-t'il un "niveau" limite ?
 
Merci de vos réponses.
 
 
PS: chez moi les variable de vars peuvent etre vues dans file2 mais pas file3 ! :heink:

Reply

Marsh Posté le 25-10-2004 à 22:55:04   

Reply

Marsh Posté le 25-10-2004 à 23:03:07    

oui et il y a pas de limite...
 
ps : t'es sur de pas ecraser tes variables ?


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 25-10-2004 à 23:05:05    

Simplifie toi la vie : le include recopie le contenu d'un fichier X dans un fichier Y puis exécute Y. Toutes variables définies/fonction/wte sera donc accessible dans le code suivant le include.
 
Perso, j'ai jamais rencontré de limite au nombre d'inclusion possible :)

Reply

Marsh Posté le 25-10-2004 à 23:10:29    

ui mais c'est plus lisible avec différents fichiers !
 
Et non je n'écrase aucune variable, je m'en sert juste mais sa valeur n'est pas passé je ne comprend pas!
 
PS: je m'en sert dans une classe .

Reply

Marsh Posté le 25-10-2004 à 23:19:56    

crazyjoke a écrit :

ui mais c'est plus lisible avec différents fichiers !


 
C'est pour la compréhension du fonctionnement que je te disais de te simplifier la vie :)
 
Pour le reste, sans le code, comme d'hab, on peut rien faire :)

Reply

Marsh Posté le 25-10-2004 à 23:26:37    

naceroth a écrit :

C'est pour la compréhension du fonctionnement que je te disais de te simplifier la vie :)
 
Pour le reste, sans le code, comme d'hab, on peut rien faire :)


 
Oui mais quand index.php fait 1500 lignes c'est pas simple à lire si tu vois ce que je veux dire ... :D

Reply

Marsh Posté le 25-10-2004 à 23:29:47    

Voila le code !
 
<?php
//Fichier include contenant le nécessaire a la sécurité du site web
 
 class secure {
   
  function send_cookie ($name, $value) {
   if (!setcookie ($name, $value)) {
    echo "error cookie cannot be sent <br>";
    }
   }
   
  function check_cookies () {
   
   include "admin/config/config.php";
 
   $usernick = $_COOKIE["puceos_nick"];
   $userpass = $_COOKIE["puceos_pass"];
   
   mysql_connect($hostname, $username, $password);
   mysql_select_db($database);
 
BLABLABLABLABLA, après c'est plus intéressant, en fait je n'arrive pas a voir le contenu de $hostname, $username, etc ... sans réinclure de fichier dans la classe. alors que avant la classe c'est lisible.

Reply

Marsh Posté le 25-10-2004 à 23:31:22    

C'est booooooooo hein comme code :D ?

Reply

Marsh Posté le 25-10-2004 à 23:31:51    

le seul erreur si une variable foire, c'est que tu l'ecrase (ou que tu te trompe de variable mais la !)


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 25-10-2004 à 23:34:13    

heureusement que tu fais des includes :D
 
Si tu initialises tes vars directement dans file3, ça marche ?

Reply

Marsh Posté le 25-10-2004 à 23:34:13   

Reply

Marsh Posté le 25-10-2004 à 23:34:58    

erreur classique : met tes variables en global :D


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 25-10-2004 à 23:38:26    

crazyjoke a écrit :

Voila le code !

Code :
  1. <?php
  2. //Fichier include contenant le nécessaire a la sécurité du site web
  3. class secure {
  4.  function send_cookie ($name, $value) {
  5.   if (!setcookie ($name, $value)) {
  6.    echo "error cookie cannot be sent <br>";
  7.    }
  8.   }
  9.  function check_cookies () {
  10.   include "admin/config/config.php";
  11.   $usernick = $_COOKIE["puceos_nick"];
  12.   $userpass = $_COOKIE["puceos_pass"];
  13.   mysql_connect($hostname, $username, $password);
  14.   mysql_select_db($database);




 
Ah ça perso, je suis pas fan, je préfère largement initialisé les paramètres de connection, soit en les passant à la méthode, soit par le constucteur :)

Reply

Marsh Posté le 25-10-2004 à 23:40:27    

c'est quoi la méthode, le constructeur ?? je suis nouveau en fait en php !

Reply

Marsh Posté le 25-10-2004 à 23:41:32    

Si elles sont pas en global on ne les voit pas dans la classe ?

Reply

Marsh Posté le 25-10-2004 à 23:45:15    

bha non comme dans les fonctions...
 
mais les passer au constructeur est mieux niveau POO


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 26-10-2004 à 00:05:01    

crazyjoke a écrit :

c'est quoi la méthode, le constructeur ?? je suis nouveau en fait en php !


 
Ah :) C'est pas propre à PHP, ce sont des termes de programmation objet, donc (en version simplifiée) :
 
- Les méthodes sont les fonctions définies dans une classe (et pour ta culture générale, les variables d'une classe sont appellées propriétés :))
- Le constructeur est une méthode particulière qui est appellée systématiquement à la création de l'objet. En php4, c'est une fonction définie dans la classe et qui porte le même nom que ta classe.
 

Code :
  1. class MaClass{
  2. var $bar; // une propriété
  3. // le constructeur
  4. function MaClass($variable){
  5.   $this->bar = $variable;
  6. }
  7. // une méthode
  8. function Foo(){...}
  9. }


Reply

Marsh Posté le 26-10-2004 à 00:06:51    

Euh meme en mettant dans mon fichier de config :
 
global $hostname, $username, $password, $database;
 
ca ne marche pas

Reply

Marsh Posté le 26-10-2004 à 00:08:44    

Laisse tomber j'avais rien compris a la syntaxe de global !!

Reply

Marsh Posté le 26-10-2004 à 00:22:48    

Dites quand j'envoi des cookies en php, la page qui les envoie n'y a pas accès directement par $_COOKIE ?

Reply

Marsh Posté le 26-10-2004 à 00:27:32    

Reply

Marsh Posté le 26-10-2004 à 00:30:37    

crazyjoke a écrit :

Euh meme en mettant dans mon fichier de config :
 
global $hostname, $username, $password, $database;
 
ca ne marche pas


global te sert normalement uniquement dans des fonctions pour accéder aux variables extérieurs, si tu utilise global directement dans un fichier en dehors de fonction, ca sert à rien
essaye avec $_GLOBALS['tavar'] pr voir

Reply

Marsh Posté le 26-10-2004 à 00:35:30    

Oui ca y est j'ai lu correctement l'aide de php.net :D

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed