obtenir autour de allow_url_include=0 erreur
Je suis en train d'essayer d'inclure un fichier à partir d'une url, mais j'ai l'erreur suivante jetés.
Warning: include(): http://wrapper is disabled in the server configuration by allow_url_include=0 in /Applications/MAMP/htdocs/diningtime/testsite/salims/index1.php on line 58
Warning: include(http://localhost/diningtime/templates/100/index.php): failed to open stream: no suitable wrapper could be found in /Applications/MAMP/htdocs/diningtime/testsite/salims/index1.php on line 58
Warning: include(): Failed opening 'http://localhost/diningtime/templates/100/index.php' for inclusion (include_path='.:/Applications/MAMP/bin/php/php5.4.4/lib/php') in /Applications/MAMP/htdocs/diningtime/testsite/salims/index1.php on line 58
Test
Demandais si il y est de toute façon de contourner cela?
Mon PHP inclure le code est
<?php include "$location/index.php"; ?>
Je vous remercie de votre aide.
Pourquoi voulez-vous
Oui, lorsque le site est en ligne, il sera le tirant à partir d'un autre serveur donc j'ai besoin de tester le concept.
En supposant que c'est un fichier distant et non pas comme deceze points juste un tort inclus fichier local... demandez-vous comment faire pour l'activer?
Cela pourrait ouvrir la porte à distance de fichiers d'inclusion attaques: incapsula.com/web-application-security/...
include
un fichier à partir du même serveur par le biais d'une requête HTTP au lieu de passer par un chemin de fichier local? Avez-vous un pour faire une requête HTTP?Oui, lorsque le site est en ligne, il sera le tirant à partir d'un autre serveur donc j'ai besoin de tester le concept.
En supposant que c'est un fichier distant et non pas comme deceze points juste un tort inclus fichier local... demandez-vous comment faire pour l'activer?
ini_set('allow_url_include', 1);
ou de modifier vous php.fichier ini.Cela pourrait ouvrir la porte à distance de fichiers d'inclusion attaques: incapsula.com/web-application-security/...
OriginalL'auteur AppleTattooGuy | 2012-11-07
Vous devez vous connecter pour publier un commentaire.
Vous utilisez une URL complète, comme vous le chemin de l', qui dit à PHP pour tenter de faire une requête HTTP pour récupérer ce fichier. C'est PAS comment vous faites cela. Sauf que
...100/index.php
sorties de code PHP, vous allez obtenir le code HTML ou tout ce que l'inclure résultat, PAS le code php dans le fichier. Rappelez - vous que vous êtes aller chercher de l'aide de l'URL, ce qui signifie qu'il est d'une requête HTTP, ce qui signifie que le serveur va EXÉCUTER ce script et de livrer sa sortie, pas simplement servir de son code source.Il n'y a aucun moyen pour le serveur de dire que la requête HTTP pour que le script est un appel à partir d'un autre script PHP sur le même serveur. Il pourrait tout aussi bien être une demande pour que le script de certains pirates se cachant dans la Russie de vouloir voler votre code source. Voulez-vous votre code source visible pour le monde comme ça?
Pour les fichiers locaux, vous ne devez jamais utiliser un de plein fouet l'url. c'est horriblement inefficace, et ne pas faire ce que vous voulez. pourquoi ne pas simplement avoir
au lieu de cela, ce qui sera un fichier local seule demande, sans HTTP stade inclus?
permettant notamment par l'intermédiaire de l'url, c'est horriblement mauvais. si vous permettre à l'utilisateur de spécifier directement un fichier à inclure, vous êtes essentiellement leur permettant de charger n'IMPORTE quel code, à partir de n'importe où, et votre serveur sera heureux de chasse lui-même dans les toilettes. Repenser votre design...
Salut, ce m'explique la logique. Mais un doute utilisateur est sur le navigateur côté comment se fait il peut en mesure d'inclure un fichier. Merci @MarcB
il y a beaucoup de horriblement mauvais scripts php flottant autour qui ont des choses comme
include($_GET['page'])
, où le site du codeur s'attend que les gens n'aurait jamaishttp://example.com?page=home.php
pour les url, et ne s'attendait (ou de la pensée) quelqu'un aurait essayerhttp://example.com?page=../../../../../etc/passwd
OriginalL'auteur Marc B
J'ai eu un problème similaire.
Compte tenu de "Marc B' post, il est clair que l'utilisation des Url absolues n'est pas une bonne idée, même si il est possible en modifiant le php.ini 'ficuscr' états. Je ne suis pas sûr que cette solution de contournement ne fonctionne pour votre situation spécifique car elle nécessite encore des ajustements à chaque page en fonction de l'endroit où il est dans votre structure de dossier, mais il ne rend les choses plus simple si, comme moi, vous avez beaucoup de inclut dans votre site web.
Pour moi, cela signifie que si je le déplacer d'une page vers un autre emplacement dans la structure de dossiers, par exemple dans un sous-dossier de son emplacement actuel, tout ce que j'ai à faire est de modifier
<?php $root="../";?>
pour devenir<?php $root="../../";?>
par exempleOriginalL'auteur Sam Longman