Variables qui meurent ??!!

Eléphanteau du PHP | 40 Messages

30 mars 2007, 10:58

Bonjour,
je ne comprends pas : j'ai un fichier qui attribue un tableau à une variable :
		<?
[...]
while( $row = mysql_fetch_assoc( $rslt ) ) 
			{ 		
					$line[$i]=$row['number'];
					$i++;
 			}	
 			?>
Et après sur une autre page :
FONCTIONNE PAS :
<?  include('http://www.monsite.com/fichierdudessus.php');?>
<?  echo $line[1];?>
FONCTIONNE :
		<?
[...]
while( $row = mysql_fetch_assoc( $rslt ) ) 
			{ 		
					$line[$i]=$row['number'];
					$i++;
 			}	
?>
<?  echo $line[1];?>

La variable est elle perdue dans l'include ??!!
Si quelqu'un peut m'aider ..
Merci beaucoup.
-- Moteur de recherche qui agit pour l'environnement : www.ecogine.org --

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

30 mars 2007, 11:28

Utilise un chemin relatif et non pas une url pour inclure ton fichier, tu auras de meilleurs résultats :)

Il me semble que si tu inclues une url, pour des raisons évidentes de sécurité, tu n'auras accès qu'au résultat du script comme s'il s'agissait d'une page html et pas d'un script php (et heureusement, sinon on pourrait afficher les codes sources php de n'importe quel site, en piquer les infos de connexion, etc. :))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 40 Messages

30 mars 2007, 11:42

Ok pour le chemin relatif.
Mais question sécurité, tu veux dire que si je met
<? 
$connect = mysql_connect('localhost', 'djib32_djib32', 'heycestsecret!!');
mysql_select_db('djib32_sites'); 
?>
sur une page php "qui est ouverte et lue", on peut récupérer les codes ??!!!
-- Moteur de recherche qui agit pour l'environnement : www.ecogine.org --

Eléphant du PHP | 445 Messages

30 mars 2007, 11:47

Non, ça, c'était au cas où l'on pourrait inclure une url grâce à cette fonction.

Là ne t'en fais pas pour tes identifiants ;)
LLDC
Ulti

Eléphanteau du PHP | 40 Messages

30 mars 2007, 12:02

Je pensais que le chemin relatif était facile, mais non ...

J'ai la page "avis.php", qui est dans le même répertoire que "triagedatephp.php"
<? include '/home/djib32/public_html/webcompa/com/'.'triagedatephp.php'."?site=$id";?> 
<? include '../home/djib32/public_html/webcompa/com/triagedatephp.php'."?site=$id";?>
<? include 'triagedatephp.php'."?site=$id";?>
<? include "triagedatephp?site=$id";?>
<? include 'triagedatephp?site='.$id.'';?>
J'ai du faire 25 combinaisons possibles ... mais rien de tout ca fonctionne ....A chaque fois il me dit qu'il ne trouve pas le fichier ... Bien sur il y est =)
-- Moteur de recherche qui agit pour l'environnement : www.ecogine.org --

Eléphant du PHP | 445 Messages

30 mars 2007, 12:05

Tu as quelques soucis au niveau de la concaténation...

Si les deux fichiers sont dans le même dossier, cela devrait fonctionner :
include('./triagedatephp.php?site='.$id);
LLDC
Ulti

Eléphanteau du PHP | 40 Messages

30 mars 2007, 12:12

Idem, ca ne marche pas ... bizzare.

Le message d'erreur :

Warning: main(./triagedatephp.php?site=cdiscount) [function.main]: failed to open stream: No such file or directory in /home/djib32/public_html/webcompa/com/avis.php on line 117
-- Moteur de recherche qui agit pour l'environnement : www.ecogine.org --

Eléphant du PHP | 445 Messages

30 mars 2007, 12:14

Il faut savoir lire les erreurs ;)

No such file or directory in /home/djib32/public_html/webcompa/com/avis.php on line 117
LLDC
Ulti

Eléphanteau du PHP | 40 Messages

30 mars 2007, 12:17

Et bien c'est la ligne qui correspond au
include('./triagedatephp.php?site='.$id);
Et le triagedatephp.php marche nickel à coté, quand on le lance directement..
-- Moteur de recherche qui agit pour l'environnement : www.ecogine.org --

Eléphant du PHP | 445 Messages

30 mars 2007, 12:22

C'est de ça dont je parlais : No such file or directory

Tu es sûr que les deux fichiers sont dans le même dossier, que le nom est bon ?
LLDC
Ulti

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

30 mars 2007, 12:24

Ne passe pas de variable dans le chemin de l'include :)

Tu vas inclure le code à l'endroit de l'include comme s'il y avait été tapé, il suffit d'avoir défini les variables au prélable pour pouvoir les y utiliser :
$site = $id;
include('triagedatephp.php');
Pour rappel :
"./" correspond au dossier local
"../" correspond au dossier parent
"/" correspond à la racine du système de fichier
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 445 Messages

30 mars 2007, 12:50

Bon, ok je me suis trompé... ^^ Mais j'avoue que je n'avais jamais tenté de passer des paramètres dans un fichier inclut puisque je définis toutes mes variables avant..

Disons que ses include m'ont perturbés :oops: ok ? =)
LLDC
Ulti

Eléphanteau du PHP | 40 Messages

30 mars 2007, 14:47

Nickel ca marche merci bcp.

Je ne sais pas si ca a changé qqchose, mais au passage j'ai passé la variable à renvoyer en global ...
-- Moteur de recherche qui agit pour l'environnement : www.ecogine.org --