2013-07-08 5 views
2

J'ai regardé tous les sujets sur ce forum, avant de poster celui-ci. Aucune des solutions n'a été capable de résoudre mes problèmes, je suis donc obligé d'ouvrir un nouveau sujet.Impossible d'ouvrir l'erreur de flux: La requête HTTP a échoué

J'ai le include ci-dessous dans mon code, mais il a une erreur avec l'erreur "Echec de l'ouverture du flux: requête HTTP a échoué!". J'ai déjà cet ensemble dans php.ini:

allow_url_include = On and 
allow_url_fopen = On 

mais il échoue toujours.

1.Below est le comprennent défini dans /test/foo.php qui comprend le fichier sur le même serveur sous /test/bar.php

<div class="tab-content" style=''> 
<div class="tab-pane active" id="my1"><?php include('http://'. $_SERVER['SERVER_NAME'] . ':' . 
$_SERVER['SERVER_PORT'] . "/bar.php?env=test1&days=3&start=$start&end=$end");?></div> 
</div> 

2.Here est la structure dir:

a) /test/foo.php -> cela a inclus à mon propre serveur. b) /test/bar.php

3.Apache racine du document pointe vers /test comme

/var/www/html --> /test 

4. echo __DIR__ me montre "/ test" de sorte que son pointage définitivement le bon répertoire.

5.J'ai donné l'autorisation complète à ce répertoire dans le cas où c'est le problème, mais pas de chance.

6. Erreur exacte dans le journal d'erreurs apache pour l'un des éléments ci-dessus. Il ne comprend aucun des éléments ci-dessus. Le nom du serveur et le port sont intentionnellement supprimés du journal ci-dessous.

[Dim 7 juillet 2013 15:01:47] [error] PHP [client] Warning: include (http: //: /bar.php env = my1 & jours = 3 & start = 2013- 06-07 & end = 2013-07-07): échec de l'ouverture du flux: requête HTTP échouée! dans /test/foo.php sur la ligne 36
[Sun Jul 07 15:01:47 2013] [erreur] [client] PHP Attention: include(): Échec de l'ouverture 'http: //: /bar.php? env = my1 & days = 3 & début = 2013-06-07 & fin = 2013-07-07 'pour l'inclusion (include_path ='.:/usr/share/pear:/usr/share/php ') dans/test/le fichier foo.php en ligne 36

+0

Eh bien, pour commencer, quel est le code sur la ligne 36 de foo.php? –

+0

Souvent, cela est dû au fait que le serveur se trouve derrière un routeur qui possède l'adresse IP du nom DNS, mais il est plus courant d'inclure des _files_ locaux plutôt que des urls ... – Wrikken

+0

Merci à tous pour vos réponses. Toute idée sur la façon dont je peux ajouter des paramètres de requête si j'inclue des fichiers locaux plutôt que des URL? – user2561808

Répondre

0

si

include('http://'. $_SERVER['SERVER_NAME'] . ':' 
    . $_SERVER['SERVER_PORT'] 
    . "/bar.php?env=test1&days=3&start=$start&end=$end"); 

tente de chercher à

http://:/bar.php?env=my1&days=3&start=2013-06-07&end=2013-07-07 

Cela implique que $ _SERVER ['SERVER_NAME'] et $ _SERVER ['SERVER_PORT'] sont vides. Courez-vous ceci depuis la ligne de commande?

(Je suppose que vous savez que même avec des valeurs littérales, vous avez créé un grand trou de sécurité dans votre système, que le script qui en résultera sera plus lent qu'incluant directement le fichier et que même si les variables sont remplies t signifie que le routage/DNS sur de nombreux hôtes vous permettrait d'accéder au code de cette façon)

Questions connexes