【问题标题】:php include problem with urls with options ?view=task&others file not foundphp 包含带有选项的 url 问题?view=task&others file not found
【发布时间】:2010-08-28 20:10:09
【问题描述】:

我真的已经阅读了涵盖该主题的其他文章。但我似乎处于一个稍微不同的位置。我没有使用 modrewrite(其他文章)。

我想在 php 脚本中“包含”一个网页,它是一个“Joomla php”生成的页面。我希望在不改变原始脚本的情况下即时添加。所以我打算通过解析页面来“预完成”页面的元素,一旦它被包含我就不想破解原始脚本。以至于我无法包含该文件,这不是因为路径错误-

所以 包括(“/home/public_html/index.php”);这会工作 包括(“/home/public_html/index.php?option=com_k2&view=item&task=add”);这不会!

我尝试了多种替代方法,在措辞中,我不能使用直接路由“http:etc...”,因为它是当前的 php 版本,所以必须是对同一服务器的引用。我尝试了相对,这些工作没有 ?option=com_k2&view=item&task=add

可以传递“选项”或变量可能是简单的答案。 或者包含不能用于“等待”生成页面 - 即它只会返回 html。

我不是最大的程序员,但我做的远不止这些,我认为这是非常基本的。

【问题讨论】:

    标签: php include


    【解决方案1】:

    这将包括 ("/home/public_html/index.php?option=com_k2&view=item&task=add");这不会!

    它永远不会:您将文件系统路径与 GET 参数混合在一起,该参数只能通过 Web 服务器传递(使用 http:// 调用...但是反过来,它不会运行 PHP 代码你想要的方式。)

    你可以预先设置变量:

     $option = "com_k2";
     $view =   "item";
     $task =   "add";
    

    以正常方式包含文件:

     include ("/home/public_html/index.php"); 
    

    这是假设您可以访问该文件,并且可以将脚本更改为期望变量而不是 GET 参数。

    【讨论】:

    • 当然你可以通过 URL 包含,但由于安全问题,这当然是非常糟糕的设计。我之所以提到它,是因为 Andrew 可能会自己发现这一点,我想明确表示这是一个非常非常糟糕的主意。
    • 谢谢。我真的不想更改文件,只是添加它!但看起来它可能不是......谢谢 - 并且布拉德为安全性竖起大拇指 - 我已经阅读了足够多的关于这个主题的内容,以发现关闭某些 php 功能的不好的一面!干杯...安迪。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    • 2014-03-29
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多