6
votes

Wrapper est désactivé dans la configuration du serveur par allow_url_include = 0

J'essaie de récupérer les contenus de page avec un appel code> AJAX code>. J'ai une série de liens dans une enveloppe de page. Lorsque je clique sur un lien, il charge une fonction JavaScript qui récupère le contenu de la page à partir d'un script code> php code>. Dans ce cas, je développe mon localhost code>, mais en production, le script sera dans le même dossier racine et le même domaine que le fichier qui fait l'appel code> ajax code>. J'utilise la réponse comme contenu d'un div code>. Le contenu n'est pas purement php code>, et par là, je veux dire lorsqu'il est généré par PHP, il a html code> éléments tels que div code> s et couvre. C'est fondamentalement les choses qui vont entre les étiquettes de corps d'ouverture et de fermeture. Pour cette raison, je ne suis pas sûr de pouvoir simplement utiliser json_encode code>.

au lieu du contenu du contenu dans le div code>, je reçois l'erreur suivante: p >

AVERTISSEMENT: requis_once () [Fonction.require-une fois]: http: // wrapper est Désactivé dans la configuration du serveur par allow_url_include = 0 p> BlockQuote>

Après avoir lu sur allow_url_include code> Il semble que cela soit généralement désactivé par défaut. Je suppose que cette fonctionnalité permet de graves attaques de site. Est-ce le cas. Si oui, comment puis-je récupérer le contenu d'un autre fichier? p>

J'ai essayé d'utiliser la fonction de chargement code> JQuery code> p> xxx pré>

mais avec exactement les mêmes résultats. P>

Cela me rend fouillé! TIA. P>

EDIT: STRUT> Je pense que j'ai peut-être trouvé le problème; Le fichier php code> que le AJAX code> est récupéré le contenu de l'utilise requiert_once code>. Le fichier qu'il nécessite est sur le même serveur dans le même dossier racine, mais il s'agissait d'un répertoire. Cependant, cela crée un nouveau problème: je reçois le contenu, mais pas pleinement. Par exemple, dans le fichier, j'ai ceci: p>

Title:  <?php echo $details['title']; ?>


0 commentaires

3 Réponses :


10
votes

allow_url_include affecte uniquement inclure () et nécessite () , vous pouvez toujours utiliser le module de poire http_request2 ou le CURL fonctionne pour chercher des pages Web.

Utiliser Inclure () pour les pages Web distantes est considéré comme une "mauvaise pratique" et peut poser un risque de sécurité. Par exemple, si vous utilisez include ($ var); et que certains attaquants gèrent à remplacer $ var avec http: //hacksite.tld il / elle peut "injecter" ...


0 commentaires

1
votes

Pas de soucis, il suffit d'utiliser file_get_contents () puis écrivez un nouveau fichier dans vos documents avec le contenu que vous avez récupéré, puis include le fichier de votre fichier. Le fichier que vous avez inclus maintenant est prêt pour tout changement souhaité, à l'aide de CSS , javascript , etc .. Ceci est essentiellement ce qu'est une enveloppe.


0 commentaires

-2
votes

C'est parce que vous utilisez une URL complète. Essayez ce qui suit à la place:

$('#content').load('test_page.php');


0 commentaires