За последние 24 часа нас посетили 9645 программистов и 1019 роботов. Сейчас ищет 431 программист ...

<title>Заголовок</title>

Тема в разделе "PHP для новичков", создана пользователем MixazZz, 11 май 2022.

  1. MixazZz

    MixazZz Новичок

    С нами с:
    30 мар 2022
    Сообщения:
    49
    Симпатии:
    1
    Всех приветствую! Так как я начинаю изучать php столкнулся с такой проблемой. Я разбил index.php на части header.php, main.php, footer.php и в header я вставил такой html
    HTML:
    1. <!DOCTYPE html>
    2. <html lang="ru">
    3.  
    4.     <meta charset="UTF-8">
    5.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7.     <link rel="shortcut icon" href="https://www.newstatesman.com/wp-content/uploads/sites/2/2021/12/2ATHYW0-1038x778.jpg" type="image/x-icon">
    8.     <link rel="stylesheet" href="../assets/style/css/font-awesome-4.7.0/css/font-awesome.min.css">
    9.     <link rel="stylesheet" href="../assets/style/css/main.css">
    10.     <title></title>
    11.     <script src="https://cdn.tiny.cloud/1/e1lg6rzpq17mvmwyrplee0lbega4ezbafjibjd0quye1yqft/tinymce/6/tinymce.min.js" referrerpolicy="origin"></script>
    12. </head>
    13.  
    14.  
    вот index.php
    PHP:
    1. <?php
    2. // error_reporting(0);
    3. require_once __DIR__ . "/functios/function.php";
    4. connectDB();
    5. require_once __DIR__ . "/pages/header.php" ?>
    6. <main class="container mt-3" style="max-width: 960px;">
    7.     <?php require_once __DIR__ . "/functios/core.php" ?>
    8. </main>
    9. <?php require_once __DIR__ . "/pages/footer.php" ?>
    в части main.php подключаю все через require_once. И теперь столкнулся с такой проблемой, что не могу другим страницам давать название <title>Заголовок</title>. Может кто поможет, или даст направление на мыслью. Вот этот говно код https://github.com/BadSmailik/mycode-new.git может кто посмотрит и кинет каллом :)
     
  2. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.186
    Симпатии:
    230
    Так из вашего кода и не понятно откуда вы эти самые названия берете
     
  3. MixazZz

    MixazZz Новичок

    С нами с:
    30 мар 2022
    Сообщения:
    49
    Симпатии:
    1
    так я их не откуда не беру. я спрашиваю как для каждой страницы присвоить свое имя
     
  4. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.186
    Симпатии:
    230
    PHP:
    1. $name = 'page';
    2.  
    3. $body = "<html>$name</html>";
    4.  
    5. echo $body;
     
  5. MixazZz

    MixazZz Новичок

    С нами с:
    30 мар 2022
    Сообщения:
    49
    Симпатии:
    1
    не помогло :(
     
  6. antoniii

    antoniii Новичок

    С нами с:
    16 мар 2022
    Сообщения:
    142
    Симпатии:
    16
    Откуда ты хочешь брать заголовок? Из базы? Или назначать принудительно?
     
  7. MixazZz

    MixazZz Новичок

    С нами с:
    30 мар 2022
    Сообщения:
    49
    Симпатии:
    1
    Из базы
     
  8. antoniii

    antoniii Новичок

    С нами с:
    16 мар 2022
    Сообщения:
    142
    Симпатии:
    16
    Тогда нужна функция которая формирует массив результатов запроса. Ее можно написать в отдельном файле и включить по require в твой index. Вызвать ее и получить результат, который вставить в строку <title><?=$title?></title>
     
  9. MixazZz

    MixazZz Новичок

    С нами с:
    30 мар 2022
    Сообщения:
    49
    Симпатии:
    1
    Короче только вот так помогло
    PHP:
    1. if (parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) === '/') {
    2.     echo '<title>Главная страница</title>';
    3. } elseif (parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)) {
    4.     @$page = R::load('content', $_GET['id']);
    5.     echo '<title>'.$page->title.'</title>';
    6. }
    я знаю что это ху****ня, я не до конца понял тему "единая точка входа" будем учиться дальше.
     
  10. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.340
    Симпатии:
    551
    Не поняли даже того, что index.php – это не страница и даже не шаблон? :)

    Что мешает инфу о главной хранить в той же БД? Например, в Простой модели сим. идентификатором главной является пустая строка:
    Код (Text):
    1.  
    2. INSERT INTO `site_categories` (`id`, `title`, `content`) VALUES
    3. ('', 'Главная страница', ''),
    4. ('page', 'Внутряк', '');
    --- Добавлено ---
    Если у вас используются только числовые идентификаторы, можете идентифицировать главную, например, нулевым идентификатором и при наличии на входе адреса "/" искать в таблице по id=0 ;)
    --- Добавлено ---
    P.S. parse_url – не надежная ф-ция для парсинга $_SERVER['REQUEST_URI'] ;)
     
  11. MixazZz

    MixazZz Новичок

    С нами с:
    30 мар 2022
    Сообщения:
    49
    Симпатии:
    1
    я мало что понимаю. но представьте, что юзеров на сайте 10к. и каждый когда будет юзать страницы, то БД наверно скажет мне "ты дурак". где то читал статью что много запросов в БД тоже плохо
     
  12. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.340
    Симпатии:
    551
    Основы выучите сначала. Когда будет 10к юзеров, будете думать. Есть разные виды кеширования и т.п. ;)
     
  13. MixazZz

    MixazZz Новичок

    С нами с:
    30 мар 2022
    Сообщения:
    49
    Симпатии:
    1
    почитав эту статью про модели. мало что понял. Ладно буду пытаться
    --- Добавлено ---
    я с этой красной фасолью не могу привязать таблицы друг у другу
     
  14. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.340
    Симпатии:
    551
    Что там понимать? Я вам пример таблицы показывал в теме:
    - при запросе по адресу / выбирается запись с id='' (пустая строка);
    - при запросе по адресу /page выбирается запись с id='page';
    и т.п.

    Что касается поля bits (оно у меня скрыто, т.е. имеет какое-то дефотное значение для показанных записей), оно нужно для более сложных адресов, например /page/1. Можете пока забить. Но все-таки уточню: каждый адрес ассоциируется с двумя осн. элементами, категорией и объектом, например:
    / – категория с id='', объект с id='';
    /page – категория с id='page', объект с id='';
    /page/1 – категория с id='page', объект с id='1';
    и т.п., причем объекты не обязаны храниться в БД (это зависит от типа категории), например это могут быть обычные файлы или каталоги ФС.
    --- Добавлено ---
    Какие таблицЫ? Начните с одной таблицы, как я показывал.
     
  15. MixazZz

    MixazZz Новичок

    С нами с:
    30 мар 2022
    Сообщения:
    49
    Симпатии:
    1
    ладно не старайтесь, я все равно не пойму вас. Но спасибо что уделили время
     
  16. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.340
    Симпатии:
    551
    Если вы не в состоянии понять даже начало моего пред. поста, вам еще рано заниматься программированием. Начните с кубиков, счетных палочек, конструктора Lego и т.п. :D Удачи на этом нелегком пути.
     
  17. MixazZz

    MixazZz Новичок

    С нами с:
    30 мар 2022
    Сообщения:
    49
    Симпатии:
    1
    знаете не надо умничать! вы тоже много чего не понимаете, это не форум а зброд самовлюбленных напыщиных "програмистов" которые то и дело глумятся над теми кто спрашивает. Вы вот тоже за неделю стали хорошо в этом разбираться? Я вот тоже могу привести тебя на свою работу и сказать, это лебедка ЛГКМ Ты если спросишь для чего она? а я тебе скажу епать ты тупой! я же сказал это лебедка. Иходи думай что для чего
     
  18. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.340
    Симпатии:
    551
    Я не умничаю. Просто шутка. Возможно, неудачная. Но очевидно, вы учитесь как-то не так. Может, вам лучше продолжать заниматься лебедками...
    --- Добавлено ---
    Обещаю не лезть к вам с вопросами про лебедку :)
     
  19. MixazZz

    MixazZz Новичок

    С нами с:
    30 мар 2022
    Сообщения:
    49
    Симпатии:
    1
    Может вы и правы. Просто не у кого спросить, а если спрашиваешь либо не понял с первого раза, либо начинаются стебы что ничего не знаешь
     
  20. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.340
    Симпатии:
    551
    Вы, кстати, не задавали вопросов вроде «для чего она?» Я увидел человека, который отвечает «из базы», юзает RB для работы с БД (@ в начале той команды, конечно, звоночек, но не настолько сильный, чтобы можно было подумать, что вы не можете сложить 2+2) и в то же время не понимает элементарных вещей. Так что Вы сильнее нам сносите крышу, чем мы Вам. Новички должны терпеть :)

    Начните с основ. Программированию долго учатся.
     
  21. MixazZz

    MixazZz Новичок

    С нами с:
    30 мар 2022
    Сообщения:
    49
    Симпатии:
    1
    да я понимаю что этому быстро не научишься. Есть знакомые которые кодят 5 лет, но тоже еще много не умеют. Я вообще это делаю не ради того что бы зарабатывать, а что бы было хобби. Да я такой мазахист раз выбрал такую тему, просто нравиться.
    PHP:
    1. $pages = R::findAll('categories');
    2. foreach ($pages as $page);
    3. if ($_SERVER['REQUEST_URI'] == '/') {
    4.     echo '<title>' . $page['title'] . '</title>';
    5.     echo $page['meta'];
    6. }
    ты это имел ввиду?
     
  22. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.340
    Симпатии:
    551
    Хобби тоже нужно заниматься основательно. Тем более если это Web-программирование. Что-нить криво напишете для сайта, который юзает больше двух «калек», он упадет, его поломают и т.п.

    Нет. Зачем выбирать список из нескольких записей? Мне казалось, вы хотели сделать роутинг для выборки и вывода отдельной записи для каждой страницы.

    Хотя вы можете сначала, в процессе роутинга, выбрать одну запись. А потом, если это главная, в ее контроллере выбрать и вывести какой-то список, например список «внутренних» страниц (для этого можно использовать условие WHERE `id`!='').

    Но лучше начните с простого, т.е. с вывода нескольких однотипных страниц, например по адресам / и /page.

    P.S. R::load, наверное, не поддерживает символьные идентификаторы. Поищите др. метод. Или используйте ф-ции самого PHP.
    --- Добавлено ---
    Да:
    Попробуйте R::findOne. Поле со слагами можно назвать slug ;)
    --- Добавлено ---
    Это поле нужно объявить уникальным ключом:
    Код (Text):
    1.   PRIMARY KEY (`id`),
    2.   UNIQUE KEY `slug` (`slug`),
     
  23. MixazZz

    MixazZz Новичок

    С нами с:
    30 мар 2022
    Сообщения:
    49
    Симпатии:
    1
    И вот я думал что начал понимать :) и тут бац... я опять не понимаю. Я понимаю то что я писал, можно всё стереть и начать заново. вот если не сложно и когда будет время, можете написать пример ;)
    --- Добавлено ---
    я не могу связать таблицы в БД. пишет ошибку. Может это из за R::frozen()
     
  24. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.186
    Симпатии:
    230
    Чтобы отобразить заголовок страницы, сначала нужно откуда-нибудь, получить её идентификатор.
    Потом этот идентификатор нужно сопоставить с имеющимся списком заголовков.
    И вывести необходимый.
    В вашем коде этого нет.
    Читая дальнейшее обсуждение вашей проблемы пришел в недоумение - как, не усвоив элементарного, можно залезать в какие-то дебри. Чисто разговор умалишенных
     
  25. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.239
    Симпатии:
    1.663
    Ну 10к и для таких простых запросов - не скажет.

    Переменные, определённые перед require доступны в скриптах, которые включены (ну поскольку механизм include/require буквально вставляет файл вызванный как есть).