например: создал форму добавления статьи в базу данных(текст, название и т.д.) - есть главная страница => на странице выводятся множество ссылок на статьи => ссылки имеют такой вид "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 для роутинга страницы, и разбивать адрес на слешу
допустим такое правило
получить адрес можно так
в вашем случае например
http://blablabla.ru/statya/otvet-na-moy-vopros
если добавить .html в конец адреса ничего не будет, оно не повлияет, можно хоть .aspx написать :)
и вот так вытаскиваем с базы :)
По вопросу.
Нужно писать правило 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 ?
а можно какую нибудь лит-ру по сабжу подсказать? чтобы я не просто подставлял непонятные мне вещи ..
и все равно спасибо, буду осмысливать полученную инфу
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 написал(а):
Спустя 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 - ТС спросил как сделать статическую страницу, - вы его про ЧПУ прогрузили
php_starter - ты уж определись что тебе нужно, статика? либо ЧПУ? ...
![cool.gif](http://phpforum.su/html/emoticons/cool.gif)
php_starter - ты уж определись что тебе нужно, статика? либо ЧПУ? ...