Всех приветствую! Так как я начинаю изучать php столкнулся с такой проблемой. Я разбил index.php на части header.php, main.php, footer.php и в header я вставил такой html HTML: <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="shortcut icon" href="https://www.newstatesman.com/wp-content/uploads/sites/2/2021/12/2ATHYW0-1038x778.jpg" type="image/x-icon"> <link rel="stylesheet" href="../assets/style/css/font-awesome-4.7.0/css/font-awesome.min.css"> <link rel="stylesheet" href="../assets/style/css/main.css"> <title></title> <script src="https://cdn.tiny.cloud/1/e1lg6rzpq17mvmwyrplee0lbega4ezbafjibjd0quye1yqft/tinymce/6/tinymce.min.js" referrerpolicy="origin"></script> </head> <body> вот index.php PHP: <?php session_start(); // error_reporting(0); require_once __DIR__ . "/functios/function.php"; connectDB(); require_once __DIR__ . "/pages/header.php" ?> <main class="container mt-3" style="max-width: 960px;"> <?php require_once __DIR__ . "/functios/core.php" ?> </main> <?php require_once __DIR__ . "/pages/footer.php" ?> в части main.php подключаю все через require_once. И теперь столкнулся с такой проблемой, что не могу другим страницам давать название <title>Заголовок</title>. Может кто поможет, или даст направление на мыслью. Вот этот говно код https://github.com/BadSmailik/mycode-new.git может кто посмотрит и кинет каллом
Тогда нужна функция которая формирует массив результатов запроса. Ее можно написать в отдельном файле и включить по require в твой index. Вызвать ее и получить результат, который вставить в строку <title><?=$title?></title>
Короче только вот так помогло PHP: if (parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) === '/') { echo '<title>Главная страница</title>'; } elseif (parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)) { @$page = R::load('content', $_GET['id']); echo '<title>'.$page->title.'</title>'; } я знаю что это ху****ня, я не до конца понял тему "единая точка входа" будем учиться дальше.
Не поняли даже того, что index.php – это не страница и даже не шаблон? Что мешает инфу о главной хранить в той же БД? Например, в Простой модели сим. идентификатором главной является пустая строка: Код (Text): INSERT INTO `site_categories` (`id`, `title`, `content`) VALUES ('', 'Главная страница', ''), ('page', 'Внутряк', ''); --- Добавлено --- Если у вас используются только числовые идентификаторы, можете идентифицировать главную, например, нулевым идентификатором и при наличии на входе адреса "/" искать в таблице по id=0 --- Добавлено --- P.S. parse_url – не надежная ф-ция для парсинга $_SERVER['REQUEST_URI']
я мало что понимаю. но представьте, что юзеров на сайте 10к. и каждый когда будет юзать страницы, то БД наверно скажет мне "ты дурак". где то читал статью что много запросов в БД тоже плохо
почитав эту статью про модели. мало что понял. Ладно буду пытаться --- Добавлено --- я с этой красной фасолью не могу привязать таблицы друг у другу
Что там понимать? Я вам пример таблицы показывал в теме: - при запросе по адресу / выбирается запись с id='' (пустая строка); - при запросе по адресу /page выбирается запись с id='page'; и т.п. Что касается поля bits (оно у меня скрыто, т.е. имеет какое-то дефотное значение для показанных записей), оно нужно для более сложных адресов, например /page/1. Можете пока забить. Но все-таки уточню: каждый адрес ассоциируется с двумя осн. элементами, категорией и объектом, например: / – категория с id='', объект с id=''; /page – категория с id='page', объект с id=''; /page/1 – категория с id='page', объект с id='1'; и т.п., причем объекты не обязаны храниться в БД (это зависит от типа категории), например это могут быть обычные файлы или каталоги ФС. --- Добавлено --- Какие таблицЫ? Начните с одной таблицы, как я показывал.
Если вы не в состоянии понять даже начало моего пред. поста, вам еще рано заниматься программированием. Начните с кубиков, счетных палочек, конструктора Lego и т.п. Удачи на этом нелегком пути.
знаете не надо умничать! вы тоже много чего не понимаете, это не форум а зброд самовлюбленных напыщиных "програмистов" которые то и дело глумятся над теми кто спрашивает. Вы вот тоже за неделю стали хорошо в этом разбираться? Я вот тоже могу привести тебя на свою работу и сказать, это лебедка ЛГКМ Ты если спросишь для чего она? а я тебе скажу епать ты тупой! я же сказал это лебедка. Иходи думай что для чего
Я не умничаю. Просто шутка. Возможно, неудачная. Но очевидно, вы учитесь как-то не так. Может, вам лучше продолжать заниматься лебедками... --- Добавлено --- Обещаю не лезть к вам с вопросами про лебедку
Может вы и правы. Просто не у кого спросить, а если спрашиваешь либо не понял с первого раза, либо начинаются стебы что ничего не знаешь
Вы, кстати, не задавали вопросов вроде «для чего она?» Я увидел человека, который отвечает «из базы», юзает RB для работы с БД (@ в начале той команды, конечно, звоночек, но не настолько сильный, чтобы можно было подумать, что вы не можете сложить 2+2) и в то же время не понимает элементарных вещей. Так что Вы сильнее нам сносите крышу, чем мы Вам. Новички должны терпеть Начните с основ. Программированию долго учатся.
да я понимаю что этому быстро не научишься. Есть знакомые которые кодят 5 лет, но тоже еще много не умеют. Я вообще это делаю не ради того что бы зарабатывать, а что бы было хобби. Да я такой мазахист раз выбрал такую тему, просто нравиться. PHP: $pages = R::findAll('categories'); foreach ($pages as $page); if ($_SERVER['REQUEST_URI'] == '/') { echo '<title>' . $page['title'] . '</title>'; echo $page['meta']; } ты это имел ввиду?
Хобби тоже нужно заниматься основательно. Тем более если это Web-программирование. Что-нить криво напишете для сайта, который юзает больше двух «калек», он упадет, его поломают и т.п. Нет. Зачем выбирать список из нескольких записей? Мне казалось, вы хотели сделать роутинг для выборки и вывода отдельной записи для каждой страницы. Хотя вы можете сначала, в процессе роутинга, выбрать одну запись. А потом, если это главная, в ее контроллере выбрать и вывести какой-то список, например список «внутренних» страниц (для этого можно использовать условие WHERE `id`!=''). Но лучше начните с простого, т.е. с вывода нескольких однотипных страниц, например по адресам / и /page. P.S. R::load, наверное, не поддерживает символьные идентификаторы. Поищите др. метод. Или используйте ф-ции самого PHP. --- Добавлено --- Да: Попробуйте R::findOne. Поле со слагами можно назвать slug --- Добавлено --- Это поле нужно объявить уникальным ключом: Код (Text): PRIMARY KEY (`id`), UNIQUE KEY `slug` (`slug`),
И вот я думал что начал понимать и тут бац... я опять не понимаю. Я понимаю то что я писал, можно всё стереть и начать заново. вот если не сложно и когда будет время, можете написать пример --- Добавлено --- я не могу связать таблицы в БД. пишет ошибку. Может это из за R::frozen()
Чтобы отобразить заголовок страницы, сначала нужно откуда-нибудь, получить её идентификатор. Потом этот идентификатор нужно сопоставить с имеющимся списком заголовков. И вывести необходимый. В вашем коде этого нет. Читая дальнейшее обсуждение вашей проблемы пришел в недоумение - как, не усвоив элементарного, можно залезать в какие-то дебри. Чисто разговор умалишенных
Ну 10к и для таких простых запросов - не скажет. Переменные, определённые перед require доступны в скриптах, которые включены (ну поскольку механизм include/require буквально вставляет файл вызванный как есть).