[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Title
SunSet
Как добавить (поменять) тег <title> в файле в зависимости от того какой свитч выбран? То есть при загрузке файла index.php титл = "Это индекс". Если свитчем выбираем файл1 то тег <title> должен быть "Это индес + это страница 1" unsure.gif
Титлы из базы вытягиваются. Пробовал вставлять разные титлы на индексе и на подгружаемой странице, но выводит только тот что в индексе. Последуюющие не хочет видеть.



Спустя 7 минут, 34 секунды (17.08.2009 - 23:41) SunSet написал(а):
Может, в switch | case както тег прописать... или через if | else чтото мудрить?

Спустя 1 час, 49 минут, 15 секунд (18.08.2009 - 01:30) kirik написал(а):
Все зависит от структуры приложения.. Как универсальный вариант можешь юзать switch/if-elseif:
PHP
switch($page)
{
case 
'news':
    
$title 'Новости сайта';
    
$keywords '';
    
$description '';
break;
//.......
default:
    
//.......
}

Спустя 14 минут, 54 секунды (18.08.2009 - 01:45) SunSet написал(а):
Мой SWITCH. (каюсь, стырил и переделал под себя)))
Свернутый текст

PHP
<?
$page='';
$ex='.php';
if (
$mod==''$mod='index';
switch (
$mod)
{
case 
"index":
             require_once(
$page."main".$ex);
             break;
case 
"embassy":
             require_once(
$page."".$mod."".$ex);
             break;
case 
"map":
             require_once(
$page."".$mod."".$ex);
             break;

default:
echo 
"404<br>Страница не найдена!";
// createlog("ERROR", "404=[".$REQUEST_URI."]");
             
break;



Только у меня проблемка получается, kirik. Подгружаемая страница то из базы выводит и тайтлы, контент и мета-теги так же. Как в CASE из базы вытягивать?

Спустя 8 минут, 54 секунды (18.08.2009 - 01:54) kirik написал(а):
Цитата (SunSet @ 17.08.2009 - 17:45)
Как в CASE из базы вытягивать?

Не понял.. smile.gif

Спустя 15 минут, 27 секунд (18.08.2009 - 02:09) SunSet написал(а):
kirik
Ну вот твой пример
PHP
case 'news':
    
$title 'вот сюда нужно из базы брать титл';
    
$keywords '';
    
$description '';

Да и с моей конкструкцией свитча как состыковать? Тут плохо понимаю.. sad.gif

Спустя 43 минуты, 11 секунд (18.08.2009 - 02:53) kirik написал(а):
так?
PHP
<?
$page='';
$ex='.php';
if (
$mod==''$mod='index';
switch (
$mod)
{
case 
"index":
             
$title '';
             
$keywords '';
             
$description '';

             require_once(
$page."main".$ex);
             break;
case 
"embassy":
             
$title '';
             
$keywords '';
             
$description '';

             require_once(
$page."".$mod."".$ex);
             break;
case 
"map":
             
$title '';
             
$keywords '';
             
$description '';

             require_once(
$page."".$mod."".$ex);
             break;

default:
echo 
"404<br>Страница не найдена!";
// createlog("ERROR", "404=[".$REQUEST_URI."]");
             
break;
}

А в $page."".$mod."".$ex в нужных местах выводишь значения этих переменных..

Спустя 1 час, 7 минут, 12 секунд (18.08.2009 - 04:00) Gram написал(а):
Завтра с утра в асю стучи - разрулим твою проблему 366 - 060 - 886

Спустя 3 часа, 37 минут, 28 секунд (18.08.2009 - 07:37) glock18 написал(а):
Цитата (SunSet @ 17.08.2009 - 22:45)
$page."".$mod."".$ex

а эт что такое? почему не
Цитата
$page.$mod.$ex

Спустя 1 час, 23 минуты, 54 секунды (18.08.2009 - 09:01) ИНСИ написал(а):
можно немного по другому сделать, создаешь файл title.php и его подключаешь где надо, через require_once в самом начале файла
а в файле прописываешь
PHP
if($_SERVER['PHP_SELF'] == '/index.php') { $title = 'Главная страница'; }
else if $_SERVER['PHP_SELF'] == '/noindex.php') { $title = 'Не главная страница'; }

то есть получается в зависимости от страницы, меняется и заголовок. Выводишь переменную title. Потом просто в него дописываешь что надо =))

Спустя 9 минут, 55 секунд (18.08.2009 - 09:11) SunSet написал(а):
welbox2
kirik
Спасибо за советы, после работы буду тестить wink.gif

Gram
С утра не могу, родина ждет)) Гдето к 17 буду rolleyes.gif

Спустя 7 часов, 11 минут, 5 секунд (18.08.2009 - 16:22) SunSet написал(а):
kirik
Твоя конструкция заработала на половину.. если вручную вбить значения для меременных title, description, keywords то все работает. Но мне нужно чтоб из базы вытягивалось. Делаю запрос перед SWITCH | CASE, потом все толкаю в переменную и приравниваю $title = $полученное_из_базы. Видимо, неправильно пишу, потому что в браузере титл пишет как "Array". Пробовал и двойными кавычками, одинарными, точками еще, все безтолку blink.gif


PHP
$tip mysql_query ("SELECT title FROM embassy WHERE country='russia'",$db);
$tit mysql_fetch_array($tip);


case 
"embassy":
             
$title '$tit';
             
$keywords '777777';
             
$description '77777777';
             require_once(
$page."".$mod."".$ex);
             break;

Спустя 8 минут, 26 секунд (18.08.2009 - 16:31) kirik написал(а):
SunSet
елки-палки..
PHP
$tip = mysql_query ("SELECT title FROM embassy WHERE country='russia'",$db);
$tit = mysql_result($tip, 0);


case "embassy":
             $title = $tit;
             $keywords = '777777';
             $description = '77777777';
             require_once($page."".$mod."".$ex);
             break;

а не жирно будет за каждым тайтлом лазить в БД?

Спустя 5 минут, 6 секунд (18.08.2009 - 16:36) SunSet написал(а):
kirik
Иначе никак unsure.gif
Вообще вся страница будет из базы формироваться, так что и титл и мета теги тоже оттуда планирую брать. Таких вот страниц будет больше сотни потом, не буду ж по каждой странице ходить, исправлять если то. Проще из базы. Хоть и напряжней... huh.gif

Спустя 5 минут, 56 секунд (18.08.2009 - 16:42) glock18 написал(а):
Цитата (kirik @ 18.08.2009 - 13:31)
а не жирно будет за каждым тайтлом лазить в БД?

ога.

а потом еще по запросу отдельно за описанием и кивордами )))

Вообще то целесообразность зависит от того, что за машина будет держать сервер с сайтом. Если машина - самолет, то, думаю, это запросик мало что изменит smile.gif

Спустя 3 минуты, 36 секунд (18.08.2009 - 16:45) SunSet написал(а):
glock18
Да там всего подгружать к индексу будет страничек 5-8 для SWITCH'а, вот и по одному запросу будет на каждую подгружаемую страницу. Но вот этих индексов будет штук 100 smile.gif
Но не в этом дело, мне лишь бы работало сейчас, потом смотреть на ошибки буду.

Спустя 6 минут, 34 секунды (18.08.2009 - 16:52) SunSet написал(а):
kirik

PHP
$tip mysql_query ("SELECT title,keywords,description FROM embassy WHERE country='russia'",$db);
$tit mysql_result($tip0);


case 
"embassy":
             
$title '$tit["title"]';
             
$keywords '$tit["key"]';
             
$description '$tit["description"]';
             require_once(
$page."".$mod."".$ex);
             break;


Ну вот так, чтоб по три раза не делать одно и тоже)) Но оно ж не работает blink.gif



Warning: mysql_fetch_array() [function.mysql-fetch-array]: The result type should be either MYSQL_NUM, MYSQL_ASSOC or MYSQL_BOTH. in Z:\home\q\www\russia\index.php on line 12



Спустя 5 минут, 43 секунды (18.08.2009 - 16:58) kirik написал(а):
SunSet
ну дык..)
PHP
$tip mysql_query ("SELECT title,keywords,description FROM embassy WHERE country='russia'",$db);
$tit mysql_fetch_assoc($tip);


case 
"embassy":
             
$title $tit["title"];
             
$keywords $tit["key"];
             
$description $tit["description"];
             require_once(
$page."".$mod."".$ex);
             break;

посмотри внимательно что я исправил, и постарайся узнать почему я это исправил.

Спустя 6 минут, 3 секунды (18.08.2009 - 17:04) Krevedko написал(а):
а зачем там ' blink.gif
он же тогда переменную воспринимает как текст

Спустя 10 минут, 4 секунды (18.08.2009 - 17:14) SunSet написал(а):
Krevedko
Я и с ними пробовал, и без них..

kirik
Нолик в функции, как поискал, указывает на какоето смещение. Строку так выбирает нужную из массива, как понимаю?


Сейчас работает. Но волнует еще один вопрос - страница то через пень-колоду строится))) Титлы и мета-теги в низу странички формируются. Этого не избежать? Я же
PHP
<?php echo "$title"
вставляю непосредственно в подгружаемую страницу, а не индекс. Потому и титлы формируются гдето в середине <body>

Спустя 41 минута, 32 секунды (18.08.2009 - 17:55) ИНСИ написал(а):
SunSet я вывожу обычно так =))
<?=$title?>

Спустя 2 минуты, 48 секунд (18.08.2009 - 17:58) SunSet написал(а):
welbox2
Не в этом суть, место вставки же видно потом в хтмл-коде, у меня титл оказывается внизу, так как свитч-кейс под тегами <head> оказывается. ph34r.gif

Если не получится до ума довести, то прийдется навигацию делать отдельными файлами, а не через switch подгружать. Геморойно правда...

Спустя 8 минут, 33 секунды (18.08.2009 - 18:07) kirik написал(а):
SunSet
думай сиди, эксперементируй.

Спустя 22 часа, 12 минут, 33 секунды (19.08.2009 - 16:19) ИНСИ написал(а):
SunSet используй то, что я дал, там просто и то, что тебе надо.

Спустя 35 минут, 11 секунд (19.08.2009 - 16:54) SunSet написал(а):
welbox2
Вопрос снимается, уже по примитиву сделал все blink.gif
Спасибо за помощь все же.

Спустя 2 часа, 8 минут, 59 секунд (19.08.2009 - 19:03) ИНСИ написал(а):
SunSet жалко, просто если сейчас сделаешь, потом в дальнейшем может понадобиться. не поленись, сделай =))

Спустя 3 минуты, 11 секунд (19.08.2009 - 19:06) kirik написал(а):
Цитата (welbox2 @ 19.08.2009 - 11:03)
росто если сейчас сделаешь, потом в дальнейшем может понадобиться. не поленись, сделай

+++
обязательно понадобится. Это основная логика любого движка..

Спустя 41 минута, 54 секунды (19.08.2009 - 19:48) SunSet написал(а):
Ага, затюкали сначала laugh.gif

Еще к свитчам вернусь, пока буду делать то что под силу самому. Еще успею надоесть потом с вопросами про безопасность. А то проверок запросов и приходящих данных не делаю.


_____________
... и помните! Каким бы ни был PHP, главное - чтобы он был защищенным! :) (PHP с Анфисой Чеховой)
Быстрый ответ:

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