Я не знаю, как назвать это php / css error tho - PullRequest
1 голос
/ 01 апреля 2010

происходит то, что все загружается просто отлично URL-адрес deigned.sytes.net за исключением ссылок, когда я нажимаю о нас или услугах или контактах, они выглядят как загружаемые, но содержимое в body.tpl не изменяется по умолчанию , Может быть, вы можете помочь мне с этим, почему ссылки не меняются. вы хотите здесь только файлы php

Я сделал phps-файлы для просмотра, но если вы настаиваете на этом, я опубликую требуемый код.

designed.sytes.net / index.phps designed.sytes.net/classes/file.class.phps

Ответы [ 2 ]

1 голос
/ 01 апреля 2010

В 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, если текстовый файл существует?


UPDATE:

Также убедитесь, что вы правильно проверили значение, полученное из $_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, вы перенаправляете на домашнюю страницу.

0 голосов
/ 01 апреля 2010

Я вижу в вашем файле 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

, кажется, показывает что-то другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...