【问题标题】:I don't know what to call it php/css error tho我不知道怎么称呼它 php/css 错误寿
【发布时间】:2010-04-01 09:46:26
【问题描述】:

发生的事情是一切都在加载很好 url 是 deigned.sytes.net 除了当我点击关于我们或服务或联系时的链接它们看起来像在那里加载但 body.tpl 中的内容不会从默认值改变.也许你可以帮助我解决为什么链接没有改变。你想要这里是唯一的 php 文件

我已经制作了 phps 文件以供查看,但如果您坚持,我将发布所需代码。

design.sytes.net/index.phps 设计的.sytes.net/classes/file.class.phps

【问题讨论】:

    标签: php css xhtml load


    【解决方案1】:

    在 URL 中,您将参数命名为 p,但在您的 files.class.php 中,您实际测试的是 $_GET['page']。因此,要么将 URL 更改为使用 page 作为参数,要么将代码更改为:

    // in files.class.php instead of if(!isset($_GET['page']))
    if(!isset($_GET['p'])){
        // your code here...
    } else {
       // ...
    } 
    

    在您的原始代码中,由于$_GET['page'] 不存在,它始终显示索引页面。


    对我来说,另一件看起来很奇怪的事情是以下(但也许这只是你设置它的方式):

    if(file_exists($_GET['page'].'.txt')){
        // and lets include that then:
        ob_start();
        include("contents/". $_GET['page'] . '.php');
        $content = ob_get_contents();
        ob_end_clean();
    }
    

    您首先检查文本文件是否例如about.txt 存在,但包含一个 PHP 文件 contents/about.php。这是故意的吗?如果文本文件存在,PHP是否一直存在?


    更新:

    还要确保正确检查从 $_GET['page'] 获得的值,或者最终以任何方式调用它。
    例如。这个电话http://designed.sytes.net/index.php?page=../index 似乎要杀死你的服务器(对不起,这是无意的:()

    更新 2
    为了提供“某些”安全性,您可以检查 $_GET['page'] 是否是预定义值之一,而不是检查具有此名称的文件是否存在。例如:

    $valid_pages = array('home', 'about', 'services', 'contact');
    
    if(isset($_GET['page']) && in_array($_GET['page'], $valid_pages) {
       // include page here
    }
    else {
        // redirect to home page
    }
    

    这确保$_GET['page'] 不是像../index 这样的相对路径形式。如果它不是 $valid_pages 中的这些值之一,则重定向到主页。

    【讨论】:

    • 嘿嘿,那是你感谢抱歉,不,我没有用修复程序更新 php,使它们全部变成 .php 而不是 .txt,谢谢你现在完全理解它的原因了t 加载也许您可以帮助我解决未应用的 z-index 级别,我会将其添加到上面的内容中
    • @s32ialx:查看我关于这个“安全问题”的更新答案。
    • @s32ialx:关于 z-index:如果您从 ID 为 mains 的元素中删除 z-index,则菜单会正确显示在 Firefox 3.6 的内容上方。
    • @Felix 感谢您提供的安全提示,我很快就会实现这一点
    【解决方案2】:

    我在您的http://designed.sytes.net/classes/file.class.phps 文件中看到您有$_GET['page'],但在查询字符串中您有p=

    一个不起作用的例子是:

    http://designed.sytes.net/index.php?p=about
    

    然后改为:

    http://designed.sytes.net/index.php?page=about
    

    似乎显示了一些不同的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2011-02-28
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多