[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите понять суть авто-создания новых страниц
php_starter
Вот с такой проблемой столкнулся ребят, читал самостоятельно изучаю PHP, параллельно практикуясь, и дошел до того момента, где описывается процесс выведения на странице информации из базы данных.
например: создал форму добавления статьи в базу данных(текст, название и т.д.) - есть главная страница => на странице выводятся множество ссылок на статьи => ссылки имеют такой вид "http://blablabla.ru/statya.php?id="(id из таблицы stat из базы данных)" - то есть с помощью цикла, я вывожу все статьи из таблицы, которые в ней есть и каждая ссылка имеет свой id , название и описание... => далее на странице statya.php вывожу информацию по данной статье(текст, описание и т.д.), которая выводится опять же по значению id которое соответствует значению id из вышеописанной ссылки => и получается, что по сути мы имеем две страницы, одна из которых заполняется(создается) каждый раз заново, как только кто то переходит по ссылке.
Допустим, накапливается пару тысяч статей, и всего имеется две страницы для их вывода.

Вопрос: как добиться того, чтобы информация по статье не выводилась каждый раз заново на страницу "http://blablabla.ru/statya.php?id=" , а каждая статья имела свою html страницу, и уникальный адрес, например в таком формате "http://blablabla.ru/statya/otvet-na-moy-vopros(название статьи в транслите).html"

Поиски по гуглу не завершились удачно.
Сам предполагаю что должна существовать формаN1 куда отправляется инфа из формы добавления статьи, и эта формаN2 подставляет переменные в с инфой в нужные места в шаблоне страницы и в итоге сохраняет эту страницу в html формате и автоматически выводит на нее ссылку...


Могу ошибаться или быть близок к истине, но тем не менее жду помощи

Честно говоря изза этого вопроса, процесс изучения языка приостановился



Спустя 18 минут, 13 секунд (4.06.2012 - 23:12) johniek_comp написал(а):
Ух. Это сделать тяжело (не мне, а вам как новичку), только по описании я понял что у вас 2 дыры, 1-е это sql инъекция у вас скорее всего т.к. только новичок(советую прочитать что это такое) и запросы к базе данных в цикле (это вообще костыль который тормозит страницу).

По вопросу.
Нужно писать правило RewriteRule для роутинга страницы, и разбивать адрес на слешу
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]


допустим такое правило
получить адрес можно так

 $route = empty($_GET['route']) ? '' : $_GET['route'];
$exp = explode('/', $route);


в вашем случае например
http://blablabla.ru/statya/otvet-na-moy-vopros

$exp[0] = "statya";
$exp[1] = "otvet-na-moy-vopros";


если добавить .html в конец адреса ничего не будет, оно не повлияет, можно хоть .aspx написать :)

select * from
`blog`
where `url` = 'otvet-na-moy-vopros'


и вот так вытаскиваем с базы :)

Спустя 1 день, 15 часов, 40 минут, 5 секунд (6.06.2012 - 14:52) php_starter написал(а):
ну да, понять ВСЕ это слету мне не под силу..
rewriterule - нужно в прописать в .htaccess ?
а можно какую нибудь лит-ру по сабжу подсказать? чтобы я не просто подставлял непонятные мне вещи ..

и все равно спасибо, буду осмысливать полученную инфу

Спустя 22 минуты, 6 секунд (6.06.2012 - 15:14) Ramzil_Nixon написал(а):
Цитата (php_starter @ 4.06.2012 - 19:53)
Вопрос: как добиться того, чтобы информация по статье не выводилась каждый раз заново на страницу "http://blablabla.ru/statya.php?id=" , а каждая статья имела свою html страницу, и уникальный адрес, например в таком формате "http://blablabla.ru/statya/otvet-na-moy-vopros(название статьи в транслите).html"


.htacccess тебе в помощь

Спустя 1 час, 28 минут, 37 секунд (6.06.2012 - 16:42) php_starter написал(а):
например это я понял, что он мне в помощь, теперь в поисках подробностей, хотя бы разбора по составу вышеупомянутого кода "rewriterule"

Спустя 39 минут, 22 секунды (6.06.2012 - 17:22) in9emix написал(а):
http://beget.ru/art_htaccess

Тут очень подробно о волшебном файле htacces говориться, очень советую

Спустя 6 часов, 48 минут, 48 секунд (7.06.2012 - 00:10) php_starter написал(а):
Цитата (johniek_comp @ 4.06.2012 - 20:12)
запросы к базе данных в цикле (это вообще костыль который тормозит страницу).


Вот по этому утверждению тоже бы хотелось аргументов.
И какие есть альтернативы?

Спустя 6 минут, 54 секунды (7.06.2012 - 00:17) php_starter написал(а):
Цитата (in9emix @ 6.06.2012 - 14:22)
http://beget.ru/art_htaccess

Тут очень подробно о волшебном файле htacces говориться, очень советую

Попробовал, параллельно с Википедией.. на Википедии как то понятнее написано

Спустя 8 минут, 33 секунды (7.06.2012 - 00:26) walerus написал(а):
johniek_comp, Ramzil_Nixon - ТС спросил как сделать статическую страницу, - вы его про ЧПУ прогрузили cool.gif

php_starter - ты уж определись что тебе нужно, статика? либо ЧПУ? ...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.