2009-12-10 3 views
0

J'ai un comportement étrange avec la fonction du système PHP. Dans ce script php il y a seulement deux instructions (le reste étant html pur):comportement du système PHP comportement étrange

<?php echo system('cgi-bin/gallery2/galleryheaderview.cgi'); ?> 
<?php echo system('cgi-bin/gallery2/galleryview.cgi'); ?> 

Le premier cgi retourne une seule ligne que vous pouvez vérifier ici http://reboltutorial.com/cgi-bin/gallery2/galleryheaderview.cgi

Il retourne

Ma galerie

Mais le script entier php retourne Ma Galerie deux fois:

Ma Galerie Ma galerie

http://reboltutorial.com/gallery2.php

Y at-il une raison (je ne pas utiliser My Gallery dans le deuxième script cgi bien sûr voir http://reboltutorial.com/cgi-bin/gallery2/galleryview.cgi) et comment empêcher cela?

Merci.

Répondre

4

Mise à jour: La fonction system fera deux choses. Le premier est, il va exécuter une commande et passer sa sortie à travers le navigateur et/ou le tampon de sortie. La seconde est, il retournera la dernière ligne de sortie. Alors, quand vous dites

echo system('/...'); 

Vous dites « Hey system, sortie les résultats de cette commande », puis « Hey EHCO, sortie tout system retours ». Suppression de l'écho

system('/...'); 

va résoudre votre problème.

Quelques autres choses à vérifier

  1. Êtes-vous sûr de ses galleryheaderview.cgi qui est de retour deux fois les choses? Commentez l'include pour vous assurer que c'est bien le script qui fait écho à My Gallery deux fois

  2. Votre page/programme PHP est-il inclus/construit de telle manière que galleryheaderview.cgi est appelé deux fois?

  3. Etes-vous sûr que l'appel de l'URL http://reboltutorial.com/cgi-bin/gallery2/galleryheaderview.cgi appelle la même ligne de commande que cgi-bin/gallery2/galleryheaderview.cgi?

Si vous avez vérifié les trois éléments ci-dessus, vous aurez besoin de tomber dans la source de galleryheaderview.cgi et pourquoi sa sortie l'en-tête deux fois.

+0

J'ai résolu le problème en fusionnant le script de deux cgi mais ce n'est pas satisfaisant votre explication me semble maintenant rationnelle alors je vais essayer d'enlever l'écho. Merci. –

1

Êtes-vous absolument certain que rien d'autre ne sortira de My Gallery avant cette ligne?Vous devriez essayer de le retirer, et voir si elle va complètement à l'écart ou s'il y a encore un « Ma galerie »

<?php echo system('cgi-bin/gallery2/galleryheaderview.cgi'); ?> 

Si cela ne peut-être vous avez-vous d'autres pas apporter, inclus un certain fichier php deux fois?