За последние 24 часа нас посетили 35123 программиста и 1748 роботов. Сейчас ищут 876 программистов ...

Как сделать уникальные мета тэги

Тема в разделе "PHP для новичков", создана пользователем Анатолий1944, 14 фев 2017.

  1. Анатолий1944

    Анатолий1944 Новичок

    С нами с:
    14 фев 2017
    Сообщения:
    30
    Симпатии:
    2
    Привет, вывод статей из базы данных происходит с помощью одного файла article.php
    Вопрос:
    Как мне задать уникальное содержимое мета-тэгов, таких как keywords, description, а также тэга title - для каждой новой статьи ?
    Ведь это потребуется для поисковиков.
    Файл то один, и на всех страницах статей будет отображаться одинаковое содержимое этих тэгов.
    Я новичок, и всё писал по обучалкам, повторяя за учителем.
    Код:
    PHP:
    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <title>тест</title>
    5. <meta charset="UTF-8">
    6. <meta name="description" content="Короткое описание"/>
    7. <meta name="keywords" content="Ключевые слова" />
    8.  
    9.  
    10.   <!-- Google Fonts -->
    11.   <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700" rel="stylesheet">
    12. <link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
    13.  
    14.   <!-- Custom -->
    15.   <link rel="stylesheet" type="text/css" href="/media/css/style.css">
    16.     <link rel="stylesheet" type="text/css" href="/media/css/ino/vipadayushiy_spisok_2.css">
    17.  
    18. </head>
    19. <body>
    20.  
    21.   <div id="wrapper">
    22.  
    23.     <!-- HEADER - главное меню  -->
    24.     <?php include "/includes/header.php"; ?>
    25.     <?php include "includes/navigator.php"; ?>
    26.     <?php
    27.     $article = mysqli_query($connection, "SELECT * FROM `articles` WHERE `id` = " . (int) $_GET['id']);
    28.    
    29.     if( mysqli_num_rows($article) <= 0 )
    30.     {
    31.         ?>
    32.                     <div id="content">
    33.               <div class="container">
    34.                 <div class="row">
    35.                   <section class="content__left col-md-8">
    36.                     <div class="block">
    37.                  
    38.                       <h3>Статья не найдена</h3>
    39.                       <div class="block__content">
    40.                         <div class="full-text">
    41.                             Запрашиваемая статья не найдена!
    42.                         </div>
    43.                       </div>
    44.                     </div>
    45.                  
    46.                   </section>
    47.                   <section class="content__right col-md-4">
    48.                    <?php include "/includes/sidebar.php"; ?>
    49.                   </section>
    50.                 </div>
    51.               </div>
    52.             </div>
    53.         <?php
    54.     } else
    55.     {
    56.         $art = mysqli_fetch_assoc($article);
    57.         mysqli_query($connection, "UPDATE `articles` SET `views` = `views` + 1 WHERE `id` = " . (int) $art['id']);
    58.         ?>
    59.                     <div id="content">
    60.               <div class="container">
    61.                 <div class="row">
    62.                   <section class="content__left col-md-8">
    63.                     <div class="block">
    64.                
    65.                       <h3 style="font-size:20px;"><?echo $art ['title']; ?></h3>
    66.                       <div class="block__content">
    67.                       <img src="/static/images/<?php echo $art ['image']; ?>" class="articles_image">
    68.                      
    69.                       <br><br>
    70.                         <div class="full-text">
    71.                             <?echo $art ['text']; ?>
    72.                         </div>
    73.                       </div>
    74.                     </div>
    75.                  
    76.                    <div class="block">
    77.                    <a href="#comment-add-form">Добавить свой</a>
    78.               <h3>Комментарии</h3>
    79.               <div class="block__content">
    80.                 <div class="articles articles__vertical">
    81.  
    82.                 <?php
    83.       $comments = mysqli_query($connection, "SELECT * FROM `comments` WHERE `articles_id` = " . (int) $art['id'] . " ORDER BY `id` DESC");
    84.    
    85.                 if(mysqli_num_rows($comments) <= 0 )
    86.                 {
    87.                     echo "Нет комментариев";
    88.                 }
    89.                 while ( $comment = mysqli_fetch_assoc($comments) )
    90.                 {  
    91.                     ?>
    92.                     <article class="article">
    93.                         <div class="article__image" style="background-image: url(https://www.gravatar.com/avatar/<?php echo md5($comment['email']); ?>?s=125);"></div>
    94.                         <div class="article__info">
    95.                           <a href="/article.php?id=<?php echo $comment['articles_id']; ?>"><?php echo $comment['author']; ?></a>
    96.                        
    97.                               <div class="article__info__meta"></div>
    98.                        
    99.                           <div class="article__info__preview"><?php echo $comment['text']; ?></div>
    100.                         </div>
    101.                       </article>
    102.                     <?php
    103.                 }
    104.                 ?>
    105.  
    106.                 </div>
    107.               </div>
    108.             </div>
    109.                  
    110.                    <div id="comment-add-form" class="block">
    111.                     <h3>Добавить комментарий</h3>
    112.                     <div class="block__content">
    113.                         <form class="form" method="POST" action="/article.php?id=<?php echo $art['id']; ?> #comment-add-form">
    114.                        
    115.                         <?php
    116.                             if( isset($_POST['do_post']) )
    117.                             {
    118.                                 $errors = array();
    119.                                
    120.                                 if( $_POST['name'] == '' )
    121.                                 {
    122.                                     $errors[] = 'Введите имя!';
    123.                                 }  
    124.                                
    125.                                 if( $_POST['nickname'] == '' )
    126.                                 {
    127.                                     $errors[] = 'Введите ваш никнейм!';
    128.                                 }  
    129.                                
    130.                                 if( $_POST['email'] == '' )
    131.                                 {
    132.                                     $errors[] = 'Введите Email!';
    133.                                 }  
    134.                                
    135.                                 if( $_POST['text'] == '' )
    136.                                 {
    137.                                     $errors[] = 'Введите текст комментария!';
    138.                                 }
    139.                                
    140.                                 if( empty ($errors) )
    141.                                 {
    142.                                     // Добавить комментарий
    143.                                
    144.                                     mysqli_query($connection, " INSERT INTO `comments` (`author`,`nickname`,`email`,`text`,`pubdate`,`articles_id`) VALUES ('".$_POST['name']."', '".$_POST['nickname']."', '".$_POST['email']."', '".$_POST['text']."', NOW(), '".$art['id']."' )");
    145.                                    
    146.                                     echo '<span style="color:green; font-weight:bold; margin-bottom:10px; display:block;">Комментарий успешно добавлен!</span>';
    147.                                 } else
    148.                                 {
    149.                                 // Вывести ошибку
    150.                                  echo '<span style="color:red; font-weight:bold; margin-bottom:10px; display:block;">'.$errors ['0'] .'</span>';
    151.                                 }
    152.                             }
    153.                         ?>
    154.                             <div class="form__group">
    155.                                 <div class="row">
    156.                                     <div class="col-md-4">
    157.                                         <input type="text" name="name" class="form__control" placeholder="Имя" value="<?php echo $_POST['name']; ?>">
    158.                                         </div>
    159.                                     <div class="col-md-4">
    160.                                     <input type="text" name="nickname" class="form__control" placeholder="Никнейм" value="<?php echo $_POST['nickname']; ?>">
    161.                                         </div>
    162.                                     <div class="col-md-4">
    163.                                     <input type="text" name="email" class="form__control" placeholder="Email (не будет показан)" value="<?php echo $_POST['email']; ?>">
    164.                                         </div>
    165.                                     </div>
    166.                                 </div>
    167.                                 <div class="form__group">
    168.                                 <textarea class="form__control" name="text" placeholder="Текст комментария ..."><?php echo $_POST['text']; ?></textarea>
    169.                                 </div>
    170.                                 <div class="form__group">
    171.                                 <input type="submit" name="do_post" value="Добавить комментарий" class="form__control">
    172.                                 </div>      
    173.                     </form>
    174.                     </div>
    175.                   </div>
    176.                  
    177.                   </section>
    178.                   <section class="content__right col-md-4">
    179.                    <?php include "/includes/sidebar.php"; ?>
    180.                   </section>
    181.                 </div>
    182.               </div>
    183.             </div>
    184.  
    185.         <?php
    186.     }
    187.     ?>
    188.  
    189. <?php include "/includes/footer.php"; ?>
    190.  
    191.   </div>
    192.  
    193. </body>
    194. </html>
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    А у учителя чего не спросишь?
    Модифицировать ровно так же как ты выводишь любые другие данные.
     
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    Шедевр. Провернка на равно нулю - это я ещё понимаю, но как количество строк, которые вернулись из базы, может быть отрицательным - я не догоняю
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @mkramer как это? Высосало из скрипта в базу. У тебя такого не бывало? Молодой еще :cool:
     
    mkramer нравится это.
  5. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Статья же в базе хранится, добавь колонки для текста метатегов.
     
    #5 denis01, 14 фев 2017
    Последнее редактирование: 15 фев 2017
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    @Анатолий1944
    1. Добавьте в базу столбцы для метатегов, как советует @denis01
    2. Поместите запрос статьи из базы данных выше, чем html код (не обязательно в отдельный файл, можно просто в том же файле, но выше, будет зрительное хотя бы разделение запроса в БД и html). Вообще, старайтесь не мешать html с запросами к базе (я говорю не о MVC и прочих паттернах, а именно о том, чтобы просто сначала получить всё, что нужно, потом формировать html)
     
  7. Анатолий1944

    Анатолий1944 Новичок

    С нами с:
    14 фев 2017
    Сообщения:
    30
    Симпатии:
    2
    mkramer, denis01 - Большое спасибо за помощь!