|
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
|
|||||||||||||||||||||||||||||||
Как создать динамические страницы в РНР09.05.2024, 13:32. Показов 12087. Ответов 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-страницы Вытащить значение из одной страницы и вставить в другую без РНР Подскажите как создать динамические чекбоксы? Почему не работает РНР, не могу запустить ни один скрипт на РНР Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет дублирования строк в табличной части
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: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|