使用带有php变量的include_once时出错

时间:2011-11-07 08:11:10

标签: php

//$GLOBAL_includesPath = "http://localhost/smthing/";

    <?
       include_once $GLOBAL_includesPath.'global_menu.php';
    ?>

错误:

  

警告:include_once()[function.include-once]:http:// wrapper is   通过allow_url_include = 0 in在服务器配置中禁用   第39行的C:\ xampp \ htdocs \ smthing \ includes \ page_header.php

     

警告:   include_once(HTTP://localhost/sthing/includes/global_menu.php)   [function.include-once]:无法打开流:没有合适的包装器   可以在C:\ xampp \ htdocs \ smthing \ includes \ page_header.php上找到   第39行

     

警告:include_once()[function.include]:打开失败   'http://localhost/smthing/includes/global_menu.php'包含在内   (include_path ='。; C:\ xampp \ php \ PEAR')in   第39行的C:\ xampp \ htdocs \ smthing \ includes \ page_header.php

2 个答案:

答案 0 :(得分:6)

相信我,您不希望包含来自网址

  • 一旦它不是localhost,那就是一个巨大的安全风险
  • 包含远程PHP文件将包含其输出; PHP代码本身将在远程服务器上执行
  • 如果您想要输出,请使用curl或file_get_contents()

如果你不在乎并且只是想让它工作(糟糕!),错误告诉你所需要的一切:你的php.ini中的Eenable allow_url_include

否则,请使用include_once('path/to/your/file/global_menu.php');

答案 1 :(得分:4)

包括HTTP网址没什么意义。您确定是否希望以这种方式包含文件

试试这个

include_once $_SERVER['DOCUMENT_ROOT'].'/smithing/global_menu.php';