Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Динамические сайты??
 
 автор: Alex Boxgorn   (17.08.2005 в 14:51)   письмо автору
 
 

Привет Всем!! читал в интернете статью о конструировании сайтов по кирпичикам. Так тут я не понял один момент.
Вот текст статьи.
-------------------------------------------
Задача - сделать сайт с функциями динамической структуры данных.
В этом примере мы ближе подойдем к основной задаче - создать сайт на основе темплейта.

Вид основной странички (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(); }
}
?>

   
 
 автор: P@Sol   (17.08.2005 в 15:06)   письмо автору
 
   для: Alex Boxgorn   (17.08.2005 в 14:51)
 

чтобы получить переменную из адресной строки надо написать следующее:

$page=$_GET["page"];
чтобы проверить пустая она или нет - следущее:

if (!isset($page)) //если пустая, то...

   
 
 автор: Alex Boxgorn   (17.08.2005 в 15:13)   письмо автору
 
   для: 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 переменная, тогда что-то делаем.

   
 
 автор: P@Sol   (17.08.2005 в 15:38)   письмо автору
 
   для: Alex Boxgorn   (17.08.2005 в 15:13)
 

а какая разница? поставьте Error_Reporting(E_ALL & ~E_NOTICE); и не будет этой надписи...оно вам мешает? можно проверять url есть ли там параметры или нет...но это надо что то придумывать...а в моем примере все просто...если у вас register globals on, то можно только

if (!isset($page)) 

оставить

   
 
 автор: Alex Boxgorn   (17.08.2005 в 15:51)   письмо автору
 
   для: P@Sol   (17.08.2005 в 15:38)
 

Спасибо огромное за помощь!!
Я думал это сообщение и на хостинге вылезет. Вот и добивался решения проблемы. Теперь все понятно как все работает.
А вообще по умолчанию - REGISTER GLOBALS OFF ?

   
 
 автор: Loki   (17.08.2005 в 16:12)   письмо автору
 
   для: Alex Boxgorn   (17.08.2005 в 15:51)
 

От хостера зависит. Говорят, что в обозримом будущем будет Off, но пока я с такими не сталкивался (правда, и опыт у меня не шибко обширный).

   
 
 автор: P@Sol   (17.08.2005 в 16:15)   письмо автору
 
   для: Alex Boxgorn   (17.08.2005 в 15:51)
 

нет, это служебное сообщение, которое помогает отладке:)

также можно создать файл .htaccess (эффект тот же, только действует для всех файлов в директории)

php_value error_reporting 7


по умолчанию, на серверах, где есть php4 стоит on, но в php5 рекомендованно ставить off

   
 
 автор: cheops   (17.08.2005 в 18:50)   письмо автору
 
   для: Alex Boxgorn   (17.08.2005 в 15:51)
 

В новых дистрибутивах по умолчанию значение директивы register_globals устанавливается в Off, но многие хостеры выстанавливают его в On, так как пока слишком много кода ориентированного на включённую директиву register_globals.

http://www.softtime.ru/info/articlephp.php?id_article=13

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования