Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 20.09.2020
Сообщений: 7

Как сделать многостраничным сайт

24.09.2020, 23:22. Показов 5910. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я банально это правильно назвать не могу, но в кратце, хочу разобраться в создании многостраничных сайтов в одном документе php используя общее тело страницы и меняя её содержание, для наглядности покажу пример как в dle это выглядит .
Для того чтоб писать какие либо страницы я всегда создавал новый php файл, что по мне кажется примитивным, поэтому хочу подразобраться в этой теме, подскажите как это правильно называется и какую либо статью на эту тему почитать
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.09.2020, 23:22
Ответы с готовыми решениями:

Что сделать, что бы поисковики видели сайт и как вставить счетчик на сайт
1. Добавила свой сайт http://www.vystyplenie.ru в каталог поисковика mail.ru, после этого он сгенерил код счетчика. Если я создавала свою...

Как сделать сайт?
Как мне сделать свой сайт если хто может сделайте!

Как сделать анимацию на сайт?
Помогите, люди добрые... Фотографирую, делаю сайт, очень увлёкся. Видел на других сайтах анимацию со звуком (в формате .swf, каких то...

14
Невнимательный
 Аватар для ft4l
2837 / 1263 / 358
Регистрация: 08.02.2013
Сообщений: 7,353
Записей в блоге: 2
24.09.2020, 23:58
Цитата Сообщение от Apocryph0n Посмотреть сообщение
многостраничных сайтов в одном документе
Документ это скорее одна страница чем сайт предоставляющий доступ к данным.
Плюс к одной странице часто прилагается куча дополнительно получаемых из сети файлов.

Если например это один php-файл и работает с базой данных, где на самом деле и лежат все данные,
то всё равно это ограничение, например для наращивания новых возможностей...
Каждый раз надо будет снова и снова праить этот файл, который и содержит весь код для работы с данными.

Можно это наверное назвавть модульность...
Модульность — принцип построения технических систем, согласно которому функционально связанные части группируются в законченные узлы — модули.
Типа один скрипт использует другие чтобы на разные запросы формировать разные виды документов/страниц.
... и CMS по идее это не управление контентом, а управление модулями предоставления доступа к данным
0
 Аватар для HotReboot
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
25.09.2020, 00:33
Apocryph0n, На вашим скрине так называемые вкладки (табы от слова tabs). Например вот. Но лично я, когда создаю страницу с вкладкамим, для каждой вкладки использую inсlude потому что потом, при редактирование, листать файл в over 9000 строк геморройно. Ну а если не табы, а реально пихать всё в один файл и использовать например $_GET для отображение части файла - сиё создаёт нагрузку на сервер ибо код парсится сервером весь.
1
0 / 0 / 0
Регистрация: 20.09.2020
Сообщений: 7
25.09.2020, 08:14  [ТС]
HotReboot, он будет не особо массивным, просто логичнее через табы делать, вечером отпишу как получилось
0
1300 / 993 / 231
Регистрация: 01.10.2018
Сообщений: 3,866
25.09.2020, 11:41
Лучший ответ Сообщение было отмечено Apocryph0n как решение

Решение

Фронт-контроллер (единая точка входа) с маршрутизатором, общий шаблон с возможностью вставлять в него результаты выполнения частных и, конечно, хранение данных в базе данных. Для однотипных страниц, сколько бы их ни было, достаточно предварительно создать сравнительно небольшой набор программных файлов. Пример того, как можно обойтись даже без контроллера: Как страницы заполнять из бд без создания файла .php

Цитата Сообщение от Apocryph0n Посмотреть сообщение
для наглядности покажу пример как в dle это выглядит
На скриншоте явно какой-то технический адрес. Возможно, в админке DLE других не бывает. Я в админке использую тот же принцип REST, что и в "головной" части сайта, например для страниц, показанных в сообщении по ссылке выше, в админке адреса будут приблизительно такие: /order/1, /news/1 и /pages/page, т.е. они могут быть такими же, как и в "головной" части за исключением простых адресов наподобие /page, к которым добавляется идентификатор соответствующей коллекции.
1
 Аватар для Shoshona
30 / 30 / 37
Регистрация: 03.06.2014
Сообщений: 1,055
25.09.2020, 11:43
Можете попробовать писать языковые фалйы.
Весь текст на сайте помещает в констатны например

HTML5
1
<p><?php echo TEXT; ?></p>
Создаете файл ru.php и в нем задаете

PHP
1
define(TEXT 'текст 1');
также создаете файл en.php

PHP
1
define(TEXT 'text 1');
и теперь на странице перед первым выводом информации подключаете файл в зависимости от выбранного языка (например GET параметром)

PHP
1
2
$lang = $_GET["lang"];
 include_once $lang . '.php';
Добавлено через 33 секунды
Этот вариант хорош если у вас сайт на одну-две страницы
1
1300 / 993 / 231
Регистрация: 01.10.2018
Сообщений: 3,866
25.09.2020, 11:57
Shoshona, а если этого GET-параметра не будет, в нем передадут идентификатор языка, для которого отсутствует файл, или и того хуже "идентификатор", ссылающийся на неязыковой файл?

Добавлено через 3 минуты
Посмотрите мои примеры. Прежде чем фронт-контроллер начнет использовать шаблон order.php или news.php, он проверит существование идентификатора order или news в базе данных.

Вам нужно хотя бы в коде подготовить таблицу с допустимыми идентификаторами языков.
0
365 / 124 / 22
Регистрация: 08.01.2015
Сообщений: 1,418
Записей в блоге: 2
26.09.2020, 16:58
Цитата Сообщение от Apocryph0n Посмотреть сообщение
я всегда создавал новый php файл
И правильно делали. Так гораздо меньше путаницы и, как следствие, меньше возникновения уязвимостей, чем
Цитата Сообщение от Apocryph0n Посмотреть сообщение
в одном документе php используя общее тело страницы и меняя её содержание
Но, если все-таки невтерпеж именно в ОДНОМ файле рнр чтобы было несколько страниц, то можно делать нечто вроде
PHP
1
2
3
4
5
6
7
$x = $_REQUEST['parameter'];
if($x == "page1"){
    $content = file_get_contents('page1.html');
}
if($x == "page2"){
    include 'page2.php';
}
При этом все равно файлы page1.html, page2.php должны быть у Вас. Ну, или через запросы к базам данных (но я ими вообще не пользуюсь, поэтому показываю через файлы).
Т.е. в зависимости от того, какой параметр parameter пришлет браузер, у Вас подгрузится та или иная страница. Ну, или например, менее удобный вариант:
PHP
1
2
3
4
5
6
7
$x = $_REQUEST['parameter'];
if($x == "page1"){
 
}
if($x == "page2"){
// Здесь приводится контент страницы page2.html
}
Я бы НЕ рекомендовал хранить всё в одной или нескольких базах данных - лучше хранить распределенно, так безопаснее.

Добавлено через 1 минуту
Тем более, что еще и
Цитата Сообщение от HotReboot Посмотреть сообщение
сиё создаёт нагрузку на сервер ибо код парсится сервером весь.
0
1300 / 993 / 231
Регистрация: 01.10.2018
Сообщений: 3,866
26.09.2020, 19:07
Цитата Сообщение от Htext Посмотреть сообщение
И правильно делали.
Посоветуйте еще автору сделать статические страницы. Вам же "нравится именно такой подход".

Цитата Сообщение от Htext Посмотреть сообщение
$content = file_get_contents('page1.html');
Для чего это? Вывода нет.

Цитата Сообщение от Htext Посмотреть сообщение
Я бы НЕ рекомендовал хранить всё в одной или нескольких базах данных - лучше хранить распределенно, так безопаснее.
Объясняйте. А то я буду сильно веселиться, вспоминая эту вашу фразу.
0
365 / 124 / 22
Регистрация: 08.01.2015
Сообщений: 1,418
Записей в блоге: 2
26.09.2020, 20:24
Цитата Сообщение от estic Посмотреть сообщение
Вывода нет.
Для понимания технологии. ТСпросил разобраться. Тем нет не только вывода, если что. ))
А целиком за него я писать не буду.
Цитата Сообщение от estic Посмотреть сообщение
Объясняйте.
В смысле?... Если у Вас повредится 1 (или 2...3) баз данных, то сайту придет... - Вы поняли. Или не поняли?...
А ежели повредится 1 файл из 100000... файлов - это ерунда. На большинстве пользователей, да и скорее всего, на работе всего сайта это не скажется.
Даже не думал, что это объяснять придется. Неужели до сих пор находятся люди, не понимающие пользы от распределенности данных?
Цитата Сообщение от estic Посмотреть сообщение
статические страницы
Не статические, а статико-динамические. Я Вам, припоминаю, уже говорил о пользе их с точки зрения Яндекса. Убеждать более не буду.
Еще раз (не для Вас, ибо вам, похоже, что в той пословице): динамические страницы приемлемы там и только там, где требуется именно динамичность. Если же страница более-менее "константна" (т.е. не меняется существенно), целесообразно, на мой (субъективный) взгляд делать ее статико-динамической и дополнять контентом уже по мере необходимости (дополнительными запросами на сервер).
Таких "константных" страниц в интернете, вроде бы, не менее 70...80%.

Впрочем, похоже, это уже холивар начинается? Если я как-то затронул вопросы Вашей религиозной веры в нечто супер-динамическое - прошу прощения и замолкаю. Верьте и дальше (с Вашим богом).
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
26.09.2020, 20:27
Цитата Сообщение от Htext Посмотреть сообщение
Я бы НЕ рекомендовал хранить всё в одной или нескольких базах данных - лучше хранить распределенно, так безопаснее.
Цитата Сообщение от estic Посмотреть сообщение
Объясняйте.
да. объяснения явно нужны
0
365 / 124 / 22
Регистрация: 08.01.2015
Сообщений: 1,418
Записей в блоге: 2
26.09.2020, 20:33
Цитата Сообщение от fanatikus Посмотреть сообщение
объяснения явно нужны
Теперь понятно? Кстати, если вспомнить сеть интернет, как она зарождалась - так там одной из ключевых концепций была именно распределенность данных по разным точкам. Именно с целью повышения надежности и безотказности.

Добавлено через 3 минуты
Цитата Сообщение от Htext Посмотреть сообщение
1 файл из 100000... файлов
понятно, что если это именно один из критических файлов, без которых сайт вообще неспособен функционировать - тогда конечно. Но, ведь далеко не все эти 1000... файлов являются критическими. Поэтому в целом, вероятность отказа сайта в случае распределенного хранения будет гораздо ниже.
0
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
27.09.2020, 00:50
ели без движка, то можно сделать на query без перезагрузки. по запросу (ссылка) новый контент подгружается всесто старого.
0
1300 / 993 / 231
Регистрация: 01.10.2018
Сообщений: 3,866
27.09.2020, 11:19
Цитата Сообщение от Htext Посмотреть сообщение
Для понимания технологии. ТСпросил разобраться. Тем нет не только вывода, если что. ))
"Для понимания технологии" вывод бы не помешал

Цитата Сообщение от Htext Посмотреть сообщение
Не статические, а статико-динамические.
Если вы про дополненное содержимое, полученное посредством AJAX, то такие страницы все равно принято называть статическими. Обратите внимание, речь про дополнение основного содержимого, а не заполнение основным содержимым.

Цитата Сообщение от Htext Посмотреть сообщение
Я Вам, припоминаю, уже говорил о пользе их с точки зрения Яндекса.
Я вам на это ответил. Связь со статическими страницами косвенная. Достаточно обеспечить приемлемый по времени ответ.

Цитата Сообщение от Htext Посмотреть сообщение
Если же страница более-менее "константна" (т.е. не меняется существенно), целесообразно, на мой (субъективный) взгляд делать ее статико-динамической и дополнять контентом уже по мере необходимости (дополнительными запросами на сервер).
Сделать "статико-динамической" - не проблема. Проблема - для начала просто сделать.

Цитата Сообщение от Htext Посмотреть сообщение
В смысле?... Если у Вас повредится 1 (или 2...3) баз данных, то сайту придет... - Вы поняли. Или не поняли?...
Теперь все окончательно понял

Цитата Сообщение от Htext Посмотреть сообщение
Если я как-то затронул вопросы Вашей религиозной веры в нечто супер-динамическое - прошу прощения и замолкаю. Верьте и дальше (с Вашим богом).
Сектант-фанатик, который никогда не работал с базами данных? Автор не знает, как простейший (но, надеюсь, современный) многостраничный сайт создать. А вы про репликацию или распределенное хранение заговорили.

Если рассуждать в вашем духе, то и файловая система может повредиться или просто управляющая программа запишет файлы не на свои места, запишет в них не те данные и т.д.

Кстати, упомянутая в личном сообщении SSI работает на тех же принципах, что и PHP include/readfile, только SSI - устаревшая технология, в ней нет и намека, чтобы работать с байт-кодом из кеша вместо исходного кода.
0
0 / 0 / 0
Регистрация: 20.09.2020
Сообщений: 7
28.09.2020, 01:12  [ТС]
Ясно, я +- понял как работает эта технологияXD из вашего спора вынес ещё несколько полезных моментов, всем спасибо за помощь)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.09.2020, 01:12
Помогаю со студенческими работами здесь

Как сделать сайт приватным?
Ребята в общем проблема такова, у меня на сайте есть форум punbb, я хочу что бы про него знала определенная группа людей и только они могли...

Как сделать поисковик сайт?
Всем привет! Я начинающий программист есть небольшой опыт по JEE. Хочу сделать сайт поисковик автозапчастей который ищет по интернет...

как сделать кроссбраузерный сайт
привет всем! сделал сайт, в хроме работает отлично, в експлорере и мозиле вроде тоже норм, а в опере вобще фигня, все перемешалось,...

Как в VB сделать ссылку на сайт?
Может кто это уже делал... Ну, надпись светится, рука появляется и грузится Explorer на нужной странице. Буду признателен за помощь.

Как сделать сайт на сервере?
Всем привет. &lt;i&gt;Год назад задался вопросом &quot;Как создать сайт?&quot; и через 1мес. я нашёл ответ на бесплатном хостинге ucoz (Смогу помочь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru