Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Динамический <title>...</title>

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Как заставить автоматически изменятся содержимому <title>...</title> ?
Exponat
Отправлено: 15 Января, 2013 - 17:51:54
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Здравствуйте!

В главном файле index.php происходит подключение include shapka.php, niz.php, content.php
В файле news.php выводится оглавление новости, ее текст, фото.
В базе данных есть таблица news в которой есть столбец title содержащий заголовок новостей.

Как мне реализовать когда открываешь страницу новости - ее заголовок был автоматичекси в <title>?
 
 Top
caballero
Отправлено: 15 Января, 2013 - 17:59:38
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




<title><?=$заголовок?></title>


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Exponat
Отправлено: 15 Января, 2013 - 18:15:43
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Это в главном index.php писать? А разве ненужно запросы делать из MSQL?

(Отредактировано автором: 15 Января, 2013 - 18:17:54)

 
 Top
caballero
Отправлено: 15 Января, 2013 - 18:20:27
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




да кто ж знает какие там у тебя файлы и что там в БД - тут экстрасенсов нет.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
esterio
Отправлено: 15 Января, 2013 - 18:21:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Ето зависить от логикы вашего приложения, тут нету екстрасенсов, можно хранить в файле, в БД, генерировать на основании УРЛ и т.д.
 
 Top
Exponat
Отправлено: 15 Января, 2013 - 19:45:52
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Извените за не полное расскрытые темы, я только учусь php...

Вот в главном index.php прописываю:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include "include/baza.php";
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="uk" lang="uk">
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8. <title>Название сайта"</title>
  9. <link href="style.css" rel="stylesheet" type="text/css" />
  10. <meta name="description" content="..Слова..." />
  11. </head>
  12. <body>
  13. <?PHP include "include/shapka.php"; ?>
  14.  
  15. <?PHP
  16.  $action = $_GET['action'];
  17.  
  18.  if ($action=="index" or !isset($action))
  19.  {
  20.  include "page/index.php";
  21.  }
  22.  
  23.  if (isset($action) and $action != "index")
  24.  {
  25. $page = "page/".$action.".php";
  26. if (file_exists($page))
  27. {        
  28.  include "page/".$action.".php";
  29. }
  30. else
  31. {echo "<div align='center'>Запрашиваемой страницы не найдено!</div>";}
  32.  
  33.  }
  34.  ?>
  35. <?PHP include "include/niz.php"; ?>
  36. </body>
  37. </html>


Навожу полный код страницы news.php в которой выводится новость, ее заголовок, текст, картинка:
PHP:
скопировать код в буфер обмена
  1. <table style="width:1000px;  margin-top:34px;" border="0" cellspacing="0" cellpadding="0" align="center">
  2.   <tr>
  3.     <td valign="top" width="660">
  4.    
  5. <?PHP
  6.  
  7. $zapros_statti = mysql_query ("SELECT * FROM `news` WHERE `id`='".$_GET['id']."'");
  8. $result_statti = mysql_fetch_assoc($zapros_statti);
  9.  
  10.  
  11. $zapros_cat_statti = mysql_query ("SELECT * FROM `cat` WHERE `id`='".$result_statti['cat']."' ") or die (mysql_error());
  12. $result_cat_statti = mysql_fetch_assoc($zapros_cat_statti);
  13.  
  14. echo "<div class='title' align='left' style='margin-top:30px; width:660px;'><div style='margin-left:10px;'><a class='link_title' href='index.php?action=interesu'>Новини</a> » <a class='link_title' href='index.php?action=cat&cat=".$result_cat_statti['id']."'>".$result_cat_statti['title']."</a></div></div>";
  15.  
  16. echo "<div style='border:1px solid #dfdfdf;width:637px; padding:10px;'>";
  17.  
  18. ?>
  19. <table cellpadding="0" cellspacing="0" border="0" width="600"><tr><td valign="top">
  20. <script type="text/javascript" src="//yandex.st/share/share.js" charset="utf-8"></script>
  21. <div style='margin-top:10px;' class="yashare-auto-init" data-yashareL10n="uk" data-yashareType="button" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir"></div>
  22. </td><td valign="top" align="right">
  23.  
  24. <?PHP
  25. echo "<div style='color:#666; font-size:14px; margin-top:17px;'><i>Дата новини: ".$result_statti['date']." р.</i></div>";
  26. ?>
  27.  
  28. </td></tr></table>
  29.  
  30. <?PHP
  31. $i=0;
  32.  
  33. echo "<table style='margin-top:-20px; '><tr>";
  34.        
  35. echo "<td valign='top' style='padding:10px;  '><h1 style='color:#F00; font-size:18px; text-decoration:underline; margin-bottom:10px;' align='center'>".$result_statti['title']."</h1>";
  36. if ($result_statti['img']!='')
  37. {
  38. echo "<img style='width:300px; float:left; margin-left:3px; margin-right:7px;' src='image/news/".$result_statti['img']."'>";
  39. }
  40. else
  41. {
  42. echo "<img style='width:300px; float:left; margin-left:3px; margin-right:7px;' src='image/none.jpg'>";
  43. }
  44.  
  45. echo "<span style=' '>".$result_statti['text']."</span>";
  46.  
  47.  echo "</td>";
  48.  
  49. echo "</tr></table>";
  50.  
  51. echo "</div>";
  52.  
  53. ?>
  54.  
  55.    </td>
  56.    
  57.     <td valign="top" width="330">
  58. <?PHP include("include/pogoda.php"); ?>
  59.  
  60.  
  61.  <?PHP include("include/left_news.php"); ?>
  62.  
  63.     </td>
  64.   </tr>
  65. </table>


Тут можно увидеть как реализуется запрос на вывод название новости $result_statti['title']. Да? А как его в <titel> загнать?

Спасибо что отзываетесь!
 
 Top
DelphinPRO
Отправлено: 15 Января, 2013 - 19:58:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




очевидно, нужно пересмотреть структуру приложения.
сначала выполняем логику, потом выводим полученные данные
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. // определяем какая страница нужна пользователю,
  3. // вытаскиваем данные из БД
  4. // распихиваем все по переменным
  5. ...
  6.  
  7. // а потом сразу выводим страницу:
  8. ?>
  9. <html>
  10. <head>
  11.   <title><?=$title?>
  12. <head>
  13. <body>
  14.   <?= $content ?>
  15. </body>
  16. </html>


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Exponat
Отправлено: 15 Января, 2013 - 20:27:46
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




DelphinPRO пишет:
очевидно, нужно пересмотреть структуру приложения.
сначала выполняем логику, потом выводим полученные данные
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. // определяем какая страница нужна пользователю,
  3. // вытаскиваем данные из БД
  4. // распихиваем все по переменным
  5. ...
  6.  
  7. // а потом сразу выводим страницу:
  8. ?>
  9. <html>
  10. <head>
  11.   <title><?=$title?>
  12. <head>
  13. <body>
  14.   <?= $content ?>
  15. </body>
  16. </html>


Я только начинаю учить php. Мне достался сайт, я его не разрабатывал и менять сейчас структуру я не смогу...

С кода что я привел нельзя прикрутить?
 
 Top
esterio
Отправлено: 15 Января, 2013 - 20:35:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Ну тогда для хардкода
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. function setTitle($html)
  3. {
  4.         global $title;
  5.         return str_replace('{title}', $title, $html);
  6. }
  7. ob_start('setTitle');
  8. $title = 'SomeSite.come';
  9. ?>
  10. <title>{title}</title>
  11. <?php

(Отредактировано автором: 15 Января, 2013 - 20:36:40)

 
 Top
DelphinPRO
Отправлено: 15 Января, 2013 - 20:42:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




хардкор пошел Улыбка
ну тогда еще вариантик: пишем в любом месте
PHP:
скопировать код в буфер обмена
  1.  
  2. echo '<script>document.title = "' . $result_statti['title'] . '";</script>';

warning! поисковики не увидят такой заголовок.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Exponat
Отправлено: 15 Января, 2013 - 20:52:11
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




DelphinPRO пишет:
хардкор пошел Улыбка
ну тогда еще вариантик: пишем в любом месте
PHP:
скопировать код в буфер обмена
  1.  
  2. echo '<script>document.title = "' . $result_statti['title'] . '";</script>';

warning! поисковики не увидят такой заголовок.


Ваш вариан работает идеально Закатив глазки А почему поисковиками не будет виден?

Хардкод от esterio не сработал....пробывал его вставлять в главный index.php (к которому все другие части документа подключаются)... В нем нужно менять какието параметры?
 
 Top
esterio
Отправлено: 15 Января, 2013 - 20:55:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




DelphinPRO
тогда уже такой Радость Радость Радость
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. setcookie('title', $title, 0, '/');
  4. ?>
  5. <script>
  6. // возвращает cookie если есть или undefined
  7. function getCookie(name) {
  8.         var matches = document.cookie.match(new RegExp(
  9.           "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
  10.         ))
  11.         return matches ? decodeURIComponent(matches[1]) : undefined
  12. }
  13.  
  14. function load()
  15. {
  16.         document.getElementsByTagName('title')[0].innerHTML = getCookie('title');
  17. }
  18. </script>
  19. <html>
  20. <head>
  21. <title>SomeSite.com</title>
  22. </head>
  23. <body onload="load();">
  24. </body>
  25. </html>

(Добавление)
Exponat пишет:
Хардкод от esterio не сработал....пробывал его вставлять в главный index.php (к которому все другие части документа подключаются)... В нем нужно менять какието параметры?

Да нужно

1. в начале скрипта
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function setTitle($html)
  3. {
  4.         global $result_statti;
  5.         return str_replace('{title}', $result_statti['title'], $html);
  6. }
  7. ob_start('setTitle');


2. там где стоин тег title
CODE (html):
скопировать код в буфер обмена
  1. <title>{title}</title>
  2.  

3. в самом конце

(Добавление)
Exponat пишет:
А почему поисковиками не будет виден?

Потому что поисковые боты не знают что такое JS, а тут как раз title меняется с помосчю JS
 
 Top
Exponat
Отправлено: 15 Января, 2013 - 21:21:41
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




esterio пишет:
DelphinPRO
тогда уже такой Радость Радость Радость
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. setcookie('title', $title, 0, '/');
  4. ?>
  5. <script>
  6. // возвращает cookie если есть или undefined
  7. function getCookie(name) {
  8.         var matches = document.cookie.match(new RegExp(
  9.           "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
  10.         ))
  11.         return matches ? decodeURIComponent(matches[1]) : undefined
  12. }
  13.  
  14. function load()
  15. {
  16.         document.getElementsByTagName('title')[0].innerHTML = getCookie('title');
  17. }
  18. </script>
  19. <html>
  20. <head>
  21. <title>SomeSite.com</title>
  22. </head>
  23. <body onload="load();">
  24. </body>
  25. </html>

(Добавление)
Exponat пишет:
Хардкод от esterio не сработал....пробывал его вставлять в главный index.php (к которому все другие части документа подключаются)... В нем нужно менять какието параметры?

Да нужно

1. в начале скрипта
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function setTitle($html)
  3. {
  4.         global $result_statti;
  5.         return str_replace('{title}', $result_statti['title'], $html);
  6. }
  7. ob_start('setTitle');


2. там где стоин тег title
CODE (html):
скопировать код в буфер обмена
  1. <title>{title}</title>
  2.  

3. в самом конце

(Добавление)
Exponat пишет:
А почему поисковиками не будет виден?

Потому что поисковые боты не знают что такое JS, а тут как раз title меняется с помосчю JS

СПАСИБО!! Закатив глазки Заработало! Вторую версию хардкода я не стал проверять, а расставил все как вы написали в первой версии. Вот только главная страница (index.php) не проводит запрос на $result_statti['title'] (она берет его в подключившемся news.php где идет полный запрос для $result_statti['title']), тоесть на главной странице выводился в title просто УРЛ главной страницы. Я поменял:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <title>{title} - Название сайта</title>


Теперь когда ты в новости - title идеально работает: Название новости - Название сайта. Но когда ты на главной странице: - Название сайта. Дифис не красиво смотрица...
Вы уж извините за наглость Улыбка

(Отредактировано автором: 15 Января, 2013 - 21:24:25)

 
 Top
esterio
Отправлено: 15 Января, 2013 - 22:25:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




каждый раз формируйте title и с названием сайта вместе


Не надо цитировать весь пост
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB