|
|
|
| Привет Всем!! читал в интернете статью о конструировании сайтов по кирпичикам. Так тут я не понял один момент.
Вот текст статьи.
-------------------------------------------
Задача - сделать сайт с функциями динамической структуры данных.
В этом примере мы ближе подойдем к основной задаче - создать сайт на основе темплейта.
Вид основной странички (index.php) изменился незначительно:
<?php
require("func.php");
include("header.txt");
text();
include("footer.txt");
?>
-------------------------------
Далее приводится функция в которой используется переменная PAGE. При использовании этой функции я обнаружил что переменная $page нигде не получает начального значения и не инициализируется при загрузке главной страницы. Как исправить этакую ситуацию? Где можно сделать инициализацию переменной $page? Или можно проверить передаются ли вообще какие-нибудь переменные через строку адресную, типа "http://www.narod.ru?page=1"
------- функция ------
Листинг. Файл func.php
<?php
$text_path = "text/"; // Каталог с текстами
// Вставка блока основного текста соответственно параметру $page
function text()
{
if($page == "news"){ include($text_path."news.txt"); }
elseif($page == "photo"){ include($text_path."photo.txt"); }
// ...
else{ include($text_path."index.txt"); }
}
// Вывод навигационного меню без ссылки на страницу $page
function menu()
{
if($page != ""){ echo ("<a href='index.php'>Главная</a><br>"); }
elseif($page != "news"){ echo ("<a href='index.php?page=news'>Новости</a>"); }
elseif($page != "photo"){ echo ("<a href='index.php?page=photo'>Галерея</a>"); }
// ...
}
// Вывод блока кратких новостей (если мы не на основной новостной странице)
function news()
{
if($page != "news"){ include ($text_path."shortnews.txt"); }
else{ banner(); }
}
?> | |
|
|
|
|
|
|
|
для: Alex Boxgorn
(17.08.2005 в 14:51)
| | чтобы получить переменную из адресной строки надо написать следующее:
чтобы проверить пустая она или нет - следущее:
if (!isset($page)) //если пустая, то...
|
| |
|
|
|
|
|
|
|
для: P@Sol
(17.08.2005 в 15:06)
| | так сервер ругается на отсутствие переменной page
Undefined index: page in z:\home\test2.ru\www\index.php on line 156
а 156-я строка это
$page=$_GET["page"];
Может существует функция по проверке на присутствие (отсутствие) вообще каких-либо передаваемых переменных и их количество. Типа, ноль переменных передано - значит их нет. или передано 1 переменная, тогда что-то делаем. | |
|
|
|
|
|
|
|
для: Alex Boxgorn
(17.08.2005 в 15:13)
| | а какая разница? поставьте Error_Reporting(E_ALL & ~E_NOTICE); и не будет этой надписи...оно вам мешает? можно проверять url есть ли там параметры или нет...но это надо что то придумывать...а в моем примере все просто...если у вас register globals on, то можно только
оставить | |
|
|
|
|
|
|
|
для: P@Sol
(17.08.2005 в 15:38)
| | Спасибо огромное за помощь!!
Я думал это сообщение и на хостинге вылезет. Вот и добивался решения проблемы. Теперь все понятно как все работает.
А вообще по умолчанию - REGISTER GLOBALS OFF ? | |
|
|
|
|
|
|
|
для: Alex Boxgorn
(17.08.2005 в 15:51)
| | От хостера зависит. Говорят, что в обозримом будущем будет Off, но пока я с такими не сталкивался (правда, и опыт у меня не шибко обширный). | |
|
|
|
|
|
|
|
для: Alex Boxgorn
(17.08.2005 в 15:51)
| | нет, это служебное сообщение, которое помогает отладке:)
также можно создать файл .htaccess (эффект тот же, только действует для всех файлов в директории)
php_value error_reporting 7
|
по умолчанию, на серверах, где есть php4 стоит on, но в php5 рекомендованно ставить off | |
|
|
|
|
|
|
|
для: Alex Boxgorn
(17.08.2005 в 15:51)
| | В новых дистрибутивах по умолчанию значение директивы register_globals устанавливается в Off, но многие хостеры выстанавливают его в On, так как пока слишком много кода ориентированного на включённую директиву register_globals.
http://www.softtime.ru/info/articlephp.php?id_article=13 | |
|
|
|