[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Формирование странички
XCross
Правильно ли я понял уроки IRBIS-team?

В index.php примерно слудующее:

<?php
require 'top.php'; // это то, что должно быть в шляпе(div'ы, ссылки и прочее)
require 'left.php'; //это левая панель(навигация тож самое div, ссылки)

$page=$_REQUEST['page'];

switch($page)
{

case 'home':
include 'tpl/news.php'; //Главная страница
break;


case 'register':
include 'tpl/register.php'; //Страница регистрации
break;


case 'addnews.php':
include 'tpl/addnews.php'; //Добавление новости
break;

и так далее...

default:
include 'tpl/news.php';
break;
}

include 'bottom.php'; //Тут футер

?>


В каждом подключаемом шаблоне выполняются свои скрипты...
Еще вопросец: Одинаковых переменных не должно быть? т.е. пересекаться в момент выполнения? Допустим в left.php там свое формируется, дальше в news.php свое...



Спустя 9 минут, 15 секунд (21.04.2011 - 09:54) Renden написал(а):
Я бы написал так:

<?php
require 'top.php'; // это то, что должно быть в шляпе(div'ы, ссылки и прочее)
require 'left.php'; //это левая панель(навигация тож самое div, ссылки)
if (isset($_GET['page'])) {
$page = $_GET['page'] ? $_GET['page'] : 'news'; //не заметил что дефаулт у тя news.php отредактировал
if(file_exists('tpl/'.$page.'.php')) {
include ('tpl/'.$page.'.php');
} else {
echo "Страница не найдена";
}
}

include 'bottom.php'; //Тут футер
?>

Ответиг: Нет не должно быть тк в итоге у тя получается 1 большой файл, со всеми переменными которые могут быть использованны в любом месте скрипта, рекомендую пользоватся функциями если у тебя похожие действия.

Спустя 4 минуты, 32 секунды (21.04.2011 - 09:59) neadekvat написал(а):
Renden, в топку твой вариант - он дырявый насквозь. Нельзя так делать.

Как минимум, так:
<?php
require 'top.php'; // это то, что должно быть в шляпе(div'ы, ссылки и прочее)
require 'left.php'; //это левая панель(навигация тож самое div, ссылки)

$modules = array('addnews', 'reg');
if (in_array($_GET['page'], $modules)) {
include 'tpl/'. $_GET['page'] .'.php';
else
include
'news.php';

include 'bottom.php'; //Тут футер

Спустя 3 минуты, 13 секунд (21.04.2011 - 10:02) Renden написал(а):
neadekvat
Да согласен такой вариант лутьше, неподумал чет. Вплане дырявый, да в папке tpl можно выполнить любой скрипт который там лежит, но там ведь только шаблоны страниц...
Я тоже учусь так что прокоментируй пожалуйста)

Спустя 1 минута, 56 секунд (21.04.2011 - 10:04) XCross написал(а):
т.е. как я понял сначала создаем массив со всеми имеющимися страничками, потом проверяем есть ли запрашиваемая страница в массиве и если есть, то подключаем ее, если нет, то можно ошибку 404...
Вроди так понял. Так строится навигация по страничкам?

Спустя 2 минуты, 36 секунд (21.04.2011 - 10:07) Renden написал(а):
kmaks
Ну в данном случае так, я же храню заместо массива информацию о страницах в базе mysql)

Спустя 21 секунда (21.04.2011 - 10:07) neadekvat написал(а):
Цитата (kmaks @ 21.04.2011 - 11:04)
если есть, то подключаем ее, если нет, то можно ошибку 404...

Или страницу по умолчанию, как я показал (отредактировал код).
В остальном верно.

Цитата (kmaks @ 21.04.2011 - 11:04)
Так строится навигация по страничкам?

Один из вариантов.

Спустя 5 минут, 18 секунд (21.04.2011 - 10:12) XCross написал(а):
а как передать переменную страничке?
типа shownews.php?id=1

Спустя 50 секунд (21.04.2011 - 10:13) Renden написал(а):
kmaks
$id = (int)$_GET['id'];

Спустя 11 минут, 43 секунды (21.04.2011 - 10:25) XCross написал(а):
Это то я знаю... biggrin.gif

Спустя 2 минуты, 52 секунды (21.04.2011 - 10:28) XCross написал(а):

<?php
require 'top.php'; // это то, что должно быть в шляпе(div'ы, ссылки и прочее)
require 'left.php'; //это левая панель(навигация тож самое div, ссылки)

$modules = array('shownews', 'reg');
if (in_array($_GET['page'], $modules)) {
include 'tpl/'. $_GET['page'] .'.php';
else
include
'news.php';

include 'bottom.php'; //Тут футер


Ведь смотри, формируется страничка index.php, а не shownews.php и если передать значение переменной, то получится в index.php...

там ведь shownews.php подключится просто(без передачи переменных)
:blink:

Спустя 3 минуты, 14 секунд (21.04.2011 - 10:31) neadekvat написал(а):
Цитата (kmaks @ 21.04.2011 - 11:28)
там ведь shownews.php подключится просто(без передачи переменных)

А попробовать? При подключении скрипт станет частью "большего" скрипта, он будет выполнен вместе с ним (а не изолированно), и все переменные, доступные в "большем" скрипте будут доступны в подключаемом, ровно как и наоборот.

Спустя 24 минуты, 12 секунд (21.04.2011 - 10:55) XCross написал(а):
Хорошо, попробую. Спасибо всем!

Спустя 9 часов, 47 минут, 54 секунды (21.04.2011 - 20:43) XCross написал(а):
Работает! Все спасибо...так даже код менее громоздкий smile.gif

Спустя 42 минуты, 26 секунд (21.04.2011 - 21:25) denizkin написал(а):
kmaks
Я бы доработал вариант Renden по взятию id до такого:

$id = isset($_GET['id'])?(int)$_GET['id']:0;

if ( ($id > 0) && ($id <=pagesCount) ) {
// тут ещё можно сделать жёсткую проверку по имеющимся ссылкам!
// выполняем наши странички

}
else {
// ошибка 404
}



Спустя 8 минут, 31 секунда (21.04.2011 - 21:34) neadekvat написал(а):
denizkin, зачем это? И откуда берется pagesCount? Почему в константе всего одна буква в верхнем регистре, когда все цивилизованные программисты пишут имена констант в верхнем регистре?

Спустя 13 минут, 43 секунды (21.04.2011 - 21:48) denizkin написал(а):
neadekvat
pagesCount - это общее кол-во твоих страниц, тобишь макс id, после которого нет страниц! Чтоб если ввести неверную страницу был переход на 404, а не переход на несуществующую страницу!
И вообще ты незамечаешь, что ты фигню пишешь?
Человек спросил как id взять ему ответили, я привёл пример как лучше это дело экранировать, более жёсткий шаблон! wink.gif Я привёл в данном конкретном случае!
Цивилизованные программисты жёстко затачивают всё, чтобы не было сбоев и пишут всё под конкретную задачу!

Ты там мне так и не ответил по поводу таблицы, чем она плоха в замену той таблицы связей которую привёл Snus!

Спустя 47 минут (21.04.2011 - 22:35) neadekvat написал(а):
Цитата (denizkin @ 21.04.2011 - 22:48)
pagesCount - это общее кол-во твоих страниц, тобишь макс id, после которого нет страниц! Чтоб если ввести неверную страницу был переход на 404, а не переход на несуществующую страницу!

То есть, по-твоему, не может возникнуть ситуация, когда id входит в промежуток, но страницы с таким id нет (удалена, например)?

Цитата (denizkin @ 21.04.2011 - 22:48)
Человек спросил как id взять ему ответили, я привёл пример как лучше это дело экранировать, более жёсткий шаблон!

Мои тапочки захлебываются от смеха, смотря на твой "более жесткий шаблон!".

Цитата (denizkin @ 21.04.2011 - 22:48)
Цивилизованные программисты жёстко затачивают всё, чтобы не было сбоев и пишут всё под конкретную задачу!

Не надо демагогии. Есть правило: имена констант пишут в верхнем регистре. Точка.

Цитата (denizkin @ 21.04.2011 - 22:48)
Ты там мне так и не ответил по поводу таблицы, чем она плоха в замену той таблицы связей которую привёл Snus!

Там - где?

Цитата (denizkin @ 21.04.2011 - 22:48)
И вообще ты незамечаешь, что ты фигню пишешь?

Я сейчас прочитал что-то настолько смешное, что у меня не хватает эмоций и слов, чтобы это описать.

Спустя 9 минут, 17 секунд (21.04.2011 - 22:44) Guest написал(а):
neadekvat
Ты такой... я люблю твороженные булочки, просто ужас!

1) Чтоб не возникло такой ситуации я внутри сделал подпись, что можно сделать доп. условие которое и будет выбирать на остальные страницы!

2) Где ты увидел константу? pagesCount получается из запроса к бд! Я тебе вставил кусок кода, ты в нём константу увидел!

3) Там где разговор про таблицы! Не прикидывайся, я люблю булочки!

4) Да ты вообще смешён!)) biggrin.gif

Если хочешь я до твоего кода тоже докапаюсь, который ты сверху привёл
если введёшь index.php?page=reg&page=addnews сработает news! Фигли ты такой умный и не учёл этого?


 ! 

М
Первое предупреждение за неуважительное отношение к собеседнику
inpost

Спустя 1 минута, 20 секунд (21.04.2011 - 22:45) neadekvat написал(а):
Залогинься и подтверди, что это действительно ты, denizkin. В противном случаи я не буду тратить время на анонима.

Спустя 16 минут, 17 секунд (21.04.2011 - 23:02) denizkin написал(а):
neadekvat
А то ты не понял с кем ты говоришь! Опять прикидываешься! wink.gif Я с другого компа просто зашёл не заметил, что не был залогинен! Короче одним словом, я люблю твороженные булочки!

 ! 

М
Второе предупреждение и последнее: маты и неуважительное отношение к собеседнику!
inpost

Спустя 6 минут, 40 секунд (21.04.2011 - 23:08) neadekvat написал(а):
Цитата (Guest @ 21.04.2011 - 23:44)
Ты такой нубарь, просто ужас!

Цитата (denizkin @ 22.04.2011 - 00:02)
а мажор понты свои себе в жопу засунь

И кто из нас неадекват, солнышко?

Цитата (Guest @ 21.04.2011 - 23:44)
1) Чтоб не возникло такой ситуации я внутри сделал подпись, что можно сделать доп. условие которое и будет выбирать на остальные страницы!

Нафига Лозе козе баян? Проверяешь существование id в базе и все, без всяких "более жестких шаблонов!". Да, мои тапочки все еще смеются.

Цитата (Guest @ 21.04.2011 - 23:44)
Где ты увидел константу? pagesCount получается из запроса к бд! Я тебе вставил кусок кода, ты в нём константу увидел!

Так вот же. Это именно константа. Знака $ там нет.

Цитата (Guest @ 21.04.2011 - 23:44)
Там где разговор про таблицы!

Так дай линк. Тебе ведь нужен мой ответ.

Цитата (Guest @ 21.04.2011 - 23:44)
если введёшь index.php?page=reg&page=addnews сработает news! Фигли ты такой умный и не учёл этого?

Хм, интересно, какой идиот передает два одинаковых параметра скрипту за один раз? Это был риторический вопрос wink.gif

Спустя 9 минут, 27 секунд (21.04.2011 - 23:18) denizkin написал(а):
neadekvat
1) У кого ник тот он и есть!

2) Я pagesCount по твоему откуда беру? Внутри у себя в коде я проверяю так же на существование в базе, просто если у меня стоит флажок, что удалённых страниц нет или страниц которые не отображаются, я не делаю лишних запросов в базу при проверке ид!

3) Это опечатка, я люблю твороженные булочки!

4) я люблю твороженные булочки

5) Ну вот такой неадекват как ты и будет 2 параметра одинаковых передавать запросе и кричать что почему ты не сделал так!))

Короче будь проще, и выражай мысли нормально!


 ! 

М
Первый стерпел, собеседник ведёт себя прилично, второй я стерпел, собеседник не поддался на твоё поведение, третьи выбрики - черезчур. Отправляйся в баню, подумай о смысле жизни, о культуре поведения, о том, что тебя выделяет среди животных, и есть ли отличия между тобой и макакой!
inpost

Спустя 6 минут, 25 секунд (21.04.2011 - 23:24) neadekvat написал(а):
Цитата (denizkin @ 22.04.2011 - 00:18)
У кого ник тот он и есть!

И как оно: чувствовать себя ущербным на фоне человека с ником Неадекват?

Цитата (denizkin @ 22.04.2011 - 00:18)
Я pagesCount по твоему откуда беру? Внутри у себя в коде я проверяю так же на существование в базе, просто если у меня стоит флажок, что удалённых страниц нет или страниц которые не отображаются, я не делаю лишних запросов в базу при проверке ид!

Да какая разница, откуда? Это константа. А их надо писать в верхнем регистре.

Цитата (denizkin @ 22.04.2011 - 00:18)
Это опечатка, относится доебаться можно до чего угодно!

Где опечатка? Я хоть и обладаю телепатическими способностями, но твои мысли без 0,5 не разберешь.

Цитата (denizkin @ 22.04.2011 - 00:18)
Ну вот такой неадекват как ты и будет 2 параметра одинаковых передавать запросе и кричать что почему ты не сделал так!))

Но ведь это сделал именно ты. Уже забыл? Бедный, что с памятью то?

Цитата (denizkin @ 22.04.2011 - 00:18)
Короче будь проще, и выражай мысли нормально!

Сышь, пацанчик, мож с тобой на фене лясы точить? А то на русиче ты не догоняешь.

Спустя 3 часа, 55 минут, 25 секунд (22.04.2011 - 03:19) XCross написал(а):
Вот, что использую я сейчас. Намного удобнее переключателей. Незнаю что здесь можно еще оптимизировать. На мой взгляд и так пойдет.
С переменными разобрался, когда прочитал литературу. Все предельно просто оказалось.


<?php

define ("BLOCK", "YES");
include 'connect.php';
include 'tpl/header.php';
$modules = array('products', 'register', 'buy', 'more', 'cart');

if(in_array($_GET['page'], $modules))
{
include 'tpl/'. $_GET['page'] .'.php';
}

else
{
include 'tpl/products.php';
}

include 'tpl/left.php';
include 'tpl/footer.php';
?>

Спустя 5 часов, 33 минуты, 2 секунды (22.04.2011 - 08:53) Guest написал(а):
neadekvat
Какая это константа тебе выше написано опечатка $ забыл поставить! Но понятное дело куда тебе мега умники догнать то!

Если ты ссышь, то тебе пора к врачу! biggrin.gif
По фене?! Ты её хоть знаешь ? biggrin.gif

Спустя 8 минут, 47 секунд (22.04.2011 - 09:01) Игорь_Vasinsky написал(а):
OoOo. Вы чё так завелись, да:

1. Частенько кто нить смеётся над чьим то кодом: хотя можно было бы деликатно указать на минусы

2. И всегда ТС будет так реагировать на всё это, так уж устроен человек.

Так что есть "недодуманный скрипт" и есть правокатор.

Кто-то технарь и ставит собеседника на равне с собой.
Кто-то сам учиться, потому что нравиться и учиться на своих ошибках.

Может просто учиться помогать, а не критиковать?

Спустя 10 часов, 9 минут, 54 секунды (22.04.2011 - 19:11) Guest написал(а):
Игорь_Vasinsky
Грамотный подход! smile.gif


_____________
Обмен Ukash на WebMoney
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.