7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232

Как создать динамические страницы в РНР

09.05.2024, 13:32. Показов 12342. Ответов 164

Студворк — интернет-сервис помощи студентам
Я пишу свой сайт с форумом. Мне нужно, чтобы 2 файла profile.php и vopros.php изменяли своё содержимое в зависимости от id юзера и id вопроса соответственно. И чтобы остальные файлы рнр и с другими расширениями не перенаправлялись на точку входа.
Т.е. мне нужно создать движок на базе данных, если я правильно поняла. Для этого я создала файл .htaccess и файл точки входа vhod.php.
Я честно пыталась разобраться в теории и синтаксисе .htaccess, но мне это не очень удалось.
Я написала файл .htaccess:
Code
1
2
3
4
5
6
7
8
9
RewriteEngine on
RewriteBase /
# Запретить индексацию каталогов
Options – Indexes
# следующее за этими директивами будет касаться только #виртуальных URL для которых нет папки или файла на диске #сервера.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#Мы перенаправляем все запросы виртуальных url на наш файл точки входа vhod.php
RewriteRule ^.*$ vhod.php [NC,L]
А также файл vhod.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
$link = mysqli_connect("localhost", "airin", "root", "vv_bd");  
mysqli_set_charset($link, 'utf8mb4');
 
if($_SERVER['REQUEST_URI'] =='/'){
    //Имя страницы
    $Page = 'index'; 
    //Имя модуля
    $Module = 'index';
}else{
    //
$URL_Path = parse_url($_SERVER['REQUEST_URI'],PHP_URL_PATH);
//Определяем имя страницы
$URL_Parts = explode('/', trim($URL_Path,' /'));
//Имя страницы
$Page = array_shift($URL_Parts);
//Имя модуля
$Module = array_shift($URL_Parts);
//Разбор параметров id/2
if(!empty($Module)){
    $Param = array();
    for($i = 0; $i < count($URL_Parts); $i++){
    $Param [$URL_Parts[$i]] = $URL_Parts[++$i];
    }
}
}
 
//Пишем страницу входа
if($Page == 'index')include('page/vhod.php');
 
    //Пишем остальные динамические страницы
else if($Page == 'vopros') include('page/vopros.php');
else if($Page == 'profile') include('page/profile.php');
?>
Но выводится ошибка: 500 Internal Server Error.
И вообще сайт не открывается.

Пробовала записать правило только для динамической страницы. Так:
Code
1
2
RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?id=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?id=$1
Так:
Code
1
RewriteRule ^(.*)$ profile.php? id=$1  [NC,L]
И так:
Code
1
RewriteRule ^(.*)$ profile.php?/$1  [NC,L]
Но ошибка вылазит та же.
Видимо, я неправильно понимаю, как это работает.
Что у меня не так с .htaccess и можно ли указать правило только для двух файлов и как это сделать правильно?
И ещё один вопрос: как (в каком формате) указывать название этих двух файлов?
vopros.php?, vopros.php, или vopros.php?id=$1
И их название в файле mytytles.php:
Code
1
2
3
'/vv2/vopros.php?' => 'Вопрос',
'/vv2/vopros.php' => 'Вопрос',
'/vv2/vopros.php?id=$1' => 'Вопрос',
Или как-то ещё?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.05.2024, 13:32
Ответы с готовыми решениями:

Можно ли на РНР создавать динамические страницы?
Умею создавать статические HTML- страницы, но это не устраивает. Хочу сделать динамическую страничку в сайте, чтобы изображение менялось...

Как передать РНР скрипту имя страницы, вызвавшей процесс?
В начале страницы устанавливаем РНР код, позволяющий определить ее имя: $str = $_SERVER; Далее производим вывод через АЯКС: ...

Как в текущий файл на рнр подрузить массив из другого файла на рнр?
Мне нужно подгружать массив с данными из mysql одного файла на рнр в текущий файл рнр с выводом точек на график. Для отработки этого режима...

164
Невнимательный
 Аватар для ft4l
3143 / 1359 / 362
Регистрация: 08.02.2013
Сообщений: 7,979
Записей в блоге: 2
23.05.2024, 09:52
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Sollita Посмотреть сообщение
оценивать можно только ответы, а не вопросы
Интересный/неординарный вопрос иногда причина интересных мыслей ,ответов, решений,...
0
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
23.05.2024, 10:02  [ТС]
DmitriyLutsenko, это условный рефлекс любого педагога: не давать положительного подкрепления за неправильное поведение и дать такое отрицательное подкрепление, чтобы больше не хотелось
Умом я понимаю, что после 14 лет мальчика воспитывать поздно, но рефлекс сильнее.
Извините, я больше не буду, но придержите своих "опытных форумчан", чтобы не провоцировали
1
 Аватар для DmitriyLutsenko
76 / 62 / 16
Регистрация: 13.07.2020
Сообщений: 262
23.05.2024, 10:30
Цитата Сообщение от Sollita Посмотреть сообщение
Извините, я больше не буду, но придержите своих "опытных форумчан", чтобы не провоцировали
Не поддавайтесь на провокации сами

Don't worry, be happy
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
23.05.2024, 18:08
Цитата Сообщение от Sollita Посмотреть сообщение
Вам не кажется, что только токсичный опытный форумчанин может влепить -22 за вопрос?
Это вам за "морочить голову" и т.п. Только я промахнулся с постом. Если хотите, могу продублировать

За своей токсичностью следите. Нужно было сильно постараться, чтобы сподвигнуть меня на минусование.
0
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
23.05.2024, 18:15  [ТС]
Phantom-84, я пообещала остановиться, так что успехов
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.05.2024, 18:15

Генерация HTML страницы в UTF-8 средствами РНР
Имеется страница: &lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;...

Выполнение РНР-файла по запросу определенной html-страницы
При запросе пользователями определенных html-страничек нужно выполнять php-скрипт. Можно, конечно, поменять расширение html-ки на php и...

Вытащить значение из одной страницы и вставить в другую без РНР
Ребята, задача не совсем стандартная, нужно без использования РНР вытащить значение. Суть. есть страница- http://сайт.ru/counter.php...

Подскажите как создать динамические чекбоксы?
Хотел сделать с десяток чекбоксов с лабелами. Для этого нагуглил примерный код: function myCheckboxes(){ var checkboxParent =...

Почему не работает РНР, не могу запустить ни один скрипт на РНР
Помогите начинающему. Установил Apache и РНР. Апач работает нормально. Проблем нет. А вот с РНР проблемы. Не могу запустить ни...


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

Или воспользуйтесь поиском по форуму:
165
Ответ Создать тему
Опции темы

Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
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) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru