|
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
|
|||||||||||||||||||||||||||||||
Как создать динамические страницы в РНР09.05.2024, 13:32. Показов 12242. Ответов 164
Я пишу свой сайт с форумом. Мне нужно, чтобы 2 файла profile.php и vopros.php изменяли своё содержимое в зависимости от id юзера и id вопроса соответственно. И чтобы остальные файлы рнр и с другими расширениями не перенаправлялись на точку входа.
Т.е. мне нужно создать движок на базе данных, если я правильно поняла. Для этого я создала файл .htaccess и файл точки входа vhod.php. Я честно пыталась разобраться в теории и синтаксисе .htaccess, но мне это не очень удалось. Я написала файл .htaccess:
И вообще сайт не открывается. Пробовала записать правило только для динамической страницы. Так:
Видимо, я неправильно понимаю, как это работает. Что у меня не так с .htaccess и можно ли указать правило только для двух файлов и как это сделать правильно? И ещё один вопрос: как (в каком формате) указывать название этих двух файлов? vopros.php?, vopros.php, или vopros.php?id=$1 И их название в файле mytytles.php:
0
|
|||||||||||||||||||||||||||||||
| 09.05.2024, 13:32 | |
|
Ответы с готовыми решениями:
164
Можно ли на РНР создавать динамические страницы? Как передать РНР скрипту имя страницы, вызвавшей процесс? Как в текущий файл на рнр подрузить массив из другого файла на рнр? |
|
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
|
|||
| 14.05.2024, 21:24 | |||
0
|
|||
|
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
|
|
| 14.05.2024, 21:41 [ТС] | |
|
Phantom-84, только у меня другой адрес. Кажется такой: C:Server/www/host2.localhost/
Может быть, я адрес неправильно указала...
0
|
|
|
Невнимательный
|
|||||||||||||
| 15.05.2024, 00:35 | |||||||||||||
слеша не хватает C:/....Но если совсем нигде не было бы директив для директории C:/Server/www/host2.localhost/ или C:/Server/www/ и т.д. Просто не было бы доступа совсем... Всё последовательно по умолчанию там устанавливается запрет доступа ко всему
Но и здесь у Вас имена непонятные для каталогов www можно сделать например для нескольких хостов, но обычно наоборот например задаётся путь для размещения там нескольких хостов например C:/Server/home по этому пути размещаются каталоги , для разных хостов , например host2.localhost , host1.ru ... ... и только в них которые станут DocumentRoot вот им и дают такие имена www , htdocs , public_html ... Ибо каждый сайт может иметь только ему нужные файлы/директории закрытыми для доступа ... хотя можно и открыть например C:/Server/www C:/Server/www2 C:/Server/www3 и сделать C:/Server таким общим хранилищем Но это возможные конфликты. Если www у Вас открыт и является DocumentRoot другого хоста/сайта, то host2.localhost как другому DocumentRoot там делать нечего ![]() и должно быть например так
или вообще для C:/home/*/www Добавлено через 20 минут /home/имяДомена - закрыта /home/имяДомена/*/ - DocumentRoot поддоменов) /home/имяДомена/www или htdocs или public_html - DocumentRoot основного домена домены более-уровневые можно добалять использованием точек в именах поддоменов
0
|
|||||||||||||
|
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
|
|
| 15.05.2024, 11:31 [ТС] | |
|
ft4l, на самом деле слэш там есть, просто я адрес по памяти писала. Я же не в компьютере была, а в планшете
![]() Я имела в виду не это. Адрес я списала из DocumentRoot, так что он сам по себе правильный, но возможно, его нужно писать не весь, а только какую-то часть? У меня в www три виртуальных хоста. Потому что, когда я их устанавливала, я вообще не понимала смысла того, что я делаю, и просто повторяла действия из статьи в интернете. А потом менять папки стало уже поздно, потому что это же придётся менять адреса в конфигурационных файлах. Если бы мне было не лень это делать, я бы для начала перенесла всё на диск D. ![]() На пока я не готова этим заниматься. Если у меня написан адрес: C:/Server/www/host2.localhost/, это правильно? Добавлено через 20 минут ft4l,вот теперь я в компьютере ![]() У меня написано в DocumentRoot "C:/Server/www/" . Я добавила название папки, в которой у меня этот сайт и получилось: C:\Server\www\host2.localhost Может, нужно убрать host2.localhost и написать как в DocumentRoot "C:/Server/www/"? Добавлено через 31 минуту ft4l, Я попробовала: <Directory C:/Server/www> <Directory C:/Server/www/> <Directory /> <Directory C:/Server/www/host2.localhost> Во всех случаях при попытке входа на сайт ошибка 500 Поэтому я вернула пока значение по умолчанию. Добавлено через 1 час 36 минут Я решила делать код без точки входа. В файлах vopross.php и zadavator.php я вставила ссылку: <a href="vopros.php?id_vopr=' . $row['id_vopr'] . '">' . $row["contentV"] .'</a> и echo '<a href="vopros.php?id_vopr=' . $row1['id_vopr'] . '">Перейти на страницу вопроса</a>'; Соответственно. А в файле vopros.php я вставила в начало: //Проверим, есть ли id_vopr в $_GET if (isset($_GET["id_vopr"])){ //Если есть выводим из $_GET $id_vopr = intval($_GET['id_vopr']); $url = "vopros.php?id_vopr=$id_vopr"; parse_url($url); И вообще убрала из сессии id_vopr. Теперь у меня всё работает. Виртуальные файлы открываются. И точка входа не нужна. И если бы мне кто-то предложил такой вариант в начале обсуждения, я бы сэкономила кучу времени.
0
|
|
|
Невнимательный
|
||||||||||||||||||||||||||||||||
| 15.05.2024, 12:29 | ||||||||||||||||||||||||||||||||
|
В основном конфиге как-минимум должно присутствовать раскомментированным
что-то типа
и далее обычно уже есть что-то типа
DocumentRoot можно в httpd.conf не указыватьНикакие Include например не нужно раскомментировать а добавляется свой
например такой
... первый будет открываться на все запросы заголовок запроса Host: не совпал ни с одним ServerName/ServerAlais
![]() корни которых были-бы C:/Server/www/pl.zz/www, C:/Server/www/zz.zz/www, C:/Server/www/php.zz/www, C:/Server/www/www ... без поддоменов, для которых как-раз можно было-бы создавать их по именам рядом с вложенными www и например задавать блоки <Directory> с ${MYHOME}/*/* и обязательно <VirtualHost *:80> с их собственными ServerName и соответственно в файле c:\Windows\SYSTEM32\DRIVERS\ETC\hosts было-бы что-то типа 127.0.0.1 zz.zzА у Вас свои .) и только Вам решать как что и для чего держать и насколько им нужны одинаковые или разные настройки. Добавлено через 5 минут поправил
0
|
||||||||||||||||||||||||||||||||
|
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
|
|
| 15.05.2024, 13:57 [ТС] | |
|
ft4l, спасибо, но я уже отказалась от этой мысли и пошла самым простым путём. Разбираться с конфигурационным файлом я не готова. Тем более, что теперь мне это и не нужно.
0
|
|
|
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
|
||||||||||||||
| 15.05.2024, 20:30 | ||||||||||||||
![]() Добавлено через 5 минут Directory обычно внутри VirtualHost прописывается:
0
|
||||||||||||||
|
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
|
|
| 15.05.2024, 20:53 [ТС] | |
|
Phantom-84, юморист
Может, тот, кто пишет реальный сайт, лучше знает, что проще, а что сложнее? ![]() Память у меня очень хорошая. Я прекрасно помню, что ни одного конкретного и полезного предложения от Вас не увидела. Успехов. Постарайтесь не морочить голову людям, которые нуждаются в помощи.
0
|
|
|
Невнимательный
|
|||
| 15.05.2024, 22:18 | |||
![]() 1. без mod_rewrite единая точка входа с запросами типа /?vopros=999 /?zadavator , /?user , /?vopros=999&page=2, /?pg=1 , ... 1.1. пакетировать числа/строки по своему ... и либо /?pack либо /?q=pack ? 2. без единой точки /?pg=1 , /vopros.php?id=999 , .... ещё одна дилема, ![]() то что могут быть ajax-запросы GET/POST с примерно такими-же параметрами... отдача совсем без html,body,... иногда бывает можно что-то в iframe отдавать... как-бы просто с другим header.php Например вместо(/или как опция) постраниичной навигации можно реализовать динамическую подгрузку кусками. Вот для этого я пробовал 3 точки входа ![]() 1 /, 2 ajax.php, 3 ifr.php + в скриптах кой-какие ограничения... типа only то, only сё ) без точек в принципе тоже в чём-то проще ... просто ещё парметр, типа ?mode=ajax Но к точкам привыкаешь ... самое удобное что во включаемых файлах, которые по сути и есть основной код страниц, можно в любой момент вызвать return; и вернуть выполнение в их включившее.тогда как в самом верхнем или только какие-то ветвления или exit; Но каждый сам сам знает как ему удобнее .) во всём свои плюсы и минусы, в том или ином... сразу всё во всём не бывает )) Добавлено через 10 минут
0
|
|||
|
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
|
|
| 16.05.2024, 08:26 [ТС] | |
|
ft4l, если бы я ещё поняла, что Вы написали...
Я ajax не изучала, может быть, поэтому не понимаю. Единственное, что я поняла, это что Вы попытались мне объяснить, чем с точками входа лучше, чем без них. Видимо, когда все файлы от одной точки входа - это почему-то удобнее. Но у меня только два виртуальных файла и ради них такие мучения? Есть хороший принцип :"Необходимо и достаточно", которому я следую в любой работе и поэтому достигаю любой поставленной цели в сжатые сроки. И сроки для меня важны, потому что у меня осталось не так много времени. Поэтому тратить время на изучение чего-то ненужного мне в данный момент я не готова.Конкретно по моему вопросу это значит, что для работы двух виртуальных файлов НЕОБХОДИМО, чтобы в их адресе читалось значение параметра и чтобы в зависимости от этого параметра изменялось содержимое виртуального файла. И если для этого ДОСТАТОЧНО написать 10 строчек в 4 файлах, то меня это устраивает гораздо больше, чем эти же 10 строчек и плюс написание двух дополнительных файлов, с их предварительным изучением, и игрища с конфигурационным файлом, на которые могут уйти недели. Тут выбор совершенно однозначен. ![]() Спасибо, что помогли мне это понять.
0
|
|
|
Невнимательный
|
|||||||
| 16.05.2024, 09:18 | |||||||
![]() ... просто тот момент с именами и размещениями хостов может помочь например автоматизировать чего-нибудь или не запутываться когда будет много разных сайтов... не спроста же одного стало мало и поддомен придумали) Не по теме:
0
|
|||||||
|
76 / 62 / 16
Регистрация: 13.07.2020
Сообщений: 262
|
||
| 17.05.2024, 09:25 | ||
|
Фантом-84 задает Вам правильные вопросы, чтобы Вы сами поняли, в какую сторону нужно копать. Вам же нужно уже готовое решение. Вот и вся причина этого локального конфликта взглядов. Сделайте, пожалуйста, следующее:
0
|
||
|
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
|
|
| 17.05.2024, 13:35 [ТС] | |
|
DmitriyLutsenko, если бы Вы прочитали обсуждение, то увидели бы, что я уже сама нашла решение. Повезло, нашла хорошую статью про GET параметры
![]() Вот моя цитата: "Я решила делать код без точки входа. В файлах vopross.php и zadavator.php я вставила ссылку: <a href="vopros.php?id_vopr=' . $row['id_vopr'] . '">' . $row["contentV"] .'</a> и echo '<a href="vopros.php?id_vopr=' . $row1['id_vopr'] . '">Перейти на страницу вопроса</a>'; Соответственно. А в файле vopros.php я вставила в начало: //Проверим, есть ли id_vopr в $_GET if (isset($_GET["id_vopr"])){ //Если есть выводим из $_GET $id_vopr = intval($_GET['id_vopr']); $url = "vopros.php?id_vopr=$id_vopr"; parse_url($url); И вообще убрала из сессии id_vopr. Теперь у меня всё работает. Виртуальные файлы открываются. И точка входа не нужна. И если бы мне кто-то предложил такой вариант в начале обсуждения, я бы сэкономила кучу времени." Так что помощь по данному вопросу мне уже не нужна. Благодарю. Готовое решение мне не нужно, но хотелось бы, чтобы советы давали дельные и конкретные.
1
|
|
|
76 / 62 / 16
Регистрация: 13.07.2020
Сообщений: 262
|
||||
| 17.05.2024, 13:47 | ||||
|
Есть те, кто считает, что нужно человека научить думать самому. Поэтому наводящими вопросами подвигают разобраться в своем вопросе самостоятельно. Есть и те, кто понимает безысходность человека, столкнувшегося с непреодолимой проблемой. Поэтому решение и скидывается готовое. Просто это большая удача, что кто-то тебе что-то пишет по твоему вопросу, не игнорируя сутками/неделями.
0
|
||||
|
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
|
|
| 17.05.2024, 13:56 [ТС] | |
|
DmitriyLutsenko, я в курсе, что не всегда отвечают и что иногда пишут чистый бред, но мне здесь неоднократно очень помогали и я за это благодарна. Но я считаю, что советы нужно давать, когда ты сам в теме. Тем более, если человек написал, что сам пишет сайт, то что именно может навести на мысль, что вопрос написан ради домашнего задания или курсовой?
Лично я все курсовые писала сама и про Метаморфозы Овидия, и по термеху и сопромату.
1
|
|
|
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
|
|||
| 17.05.2024, 19:11 | |||
|
Если бы вы понимали, что в стартовом посте сами написали про два разных подхода, то, возможно, и поняли бы, что вам отвечают про разное. Хотя вряд ли, т.к. я вам указывал на это раздвоение, но бестолку. DmitriyLutsenko, Вам спасибо, конечно. Но отношение ТС мне стало понятно с его первого обращения ко мне. Тему читают и те, кто понимает, как работает форум, и кому может быть полезно написанное мной. А тот пост я заминусовал (точнее хотел заминусовать его, но промахнулся; наверное, сказался шок от наглости ТСа ).
1
|
|||
|
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
|
|
| 17.05.2024, 19:47 [ТС] | |
|
Phantom-84, Вы написали, что можно и без единой точки входа. Но я это и без Вас знала. Я не знала - как. И мои настойчивые уговоры так и не заставили Вас ответить на этот простой вопрос. Вы у меня украли неделю времени. Если Вы не способны ни понять смысл вопроса, ни ответить на него, то, может, это не Ваше?
![]() Адекватный и знающий человек на мой вопрос ответил бы просто: "Зачем Вам единая точка входа для двух файлов? Лучше используйте GET параметры в этих файлах: //Проверим, есть ли id_vopr в $_GET if (isset($_GET["id_vopr"])){ //Если есть выводим из $_GET $id_vopr = intval($_GET['id_vopr']); И ссылки на эти файлы в тех файлах, где они нужны: <a href="vopros.php?id_vopr=' . $row['id_vopr'] . '">' . $row["contentV"] .'</a> " Если бы Вы так написали, я бы сэкономила неделю, а Вы получили бы баллы за лучший ответ. ![]() Ну, или просто могли ссылку дать на ту статью, которую я нашла про GET параметры... Но нет, Вы старательно писали ни о чём. Самое ужасное, что Вы же и другим так же морочите голову и совесть Вас не мучает...
0
|
|
|
76 / 62 / 16
Регистрация: 13.07.2020
Сообщений: 262
|
||
| 17.05.2024, 21:26 | ||
|
Вы решили переложить ответственность за полученный ответ спустя неделю после публикации Вашего топика на конкретного участника форума. Но...Что именно он сделал? Удалял комменты с готовым ответом? Может, смог пролезть в Ваш ПК и всячески саботировал работу Вашего проекта? Да ну вряд ли. Просто задавал вопросы, как и все. Предлагал свои способы, как и все. Просто Вы решили переложить поиск решения на свой вопрос на плечи форума, встряли с участником во взаимный обмен "любезностями" вместо самостоятельного поиска способов решения. То, что Вам спустя неделю дали правильный готовый ответ - просто подарок. Некоторые мои топики на разных форумах оставались без ответа в течение 2-4-5 недель, пока я сам не находил решение.
0
|
||
|
2605 / 1509 / 689
Регистрация: 23.08.2015
Сообщений: 3,841
|
|
| 17.05.2024, 21:49 | |
|
1
|
|
|
Невнимательный
|
||||||||
| 17.05.2024, 22:44 | ||||||||
![]() otvet.phpне считая header.php )) /// vhod.php вроде отпало Добавлено через 14 минут Sollita, ещё усложнение будет если захочется создать подразделы/подфорумы ... так-то +один параметр всего , но для 3-х как минимум файлов, можно для всех Добавлено через 18 минут ![]()
1
|
||||||||
| 17.05.2024, 22:44 | |
|
Генерация HTML страницы в UTF-8 средствами РНР Выполнение РНР-файла по запросу определенной html-страницы Вытащить значение из одной страницы и вставить в другую без РНР Подскажите как создать динамические чекбоксы? Почему не работает РНР, не могу запустить ни один скрипт на РНР Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|