Помощник
|
убрать GET запрос с URL, Сделать ЧПУ ссылок |
WoWeb
|
Сообщение
#1
|
||
|
|
||
|
|||
IliaY |
28.10.2016, 6:36;
Ответить: IliaY
Сообщение
#2
|
|
WoWeb,
Цитата Это можно сделать в htaccess или я изначально не правильно создал структуру php файлов? Да, можно Правило будет примерно такое: Код <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^blog/([[a-zA-Z0-9]+)/? blog/article.php?id=$1 [L] </IfModule> IliaY, или как в DLE реализовано Код RewriteRule ^([^/]+).html$ index.php?do=static&page=$1 [L] page - это ваш id, как бы... |
|
|
WoWeb
|
Сообщение
#3
|
|
IliaY,
В этом случае - RewriteRule ^blog/([[a-zA-Z0-9]+)/? blog/article.php?id=$1 [L] Меня просто выбрасывает на blog/index.php А мне нужно что бы при клике на ссылку - id передавался в article.php где будет из базы данных выводится текст полной статьи. Сообщение отредактировал WoWeb - 28.10.2016, 10:43 -------------------- |
|
|
Kumidzeke |
28.10.2016, 12:26;
Ответить: Kumidzeke
Сообщение
#4
|
|
Погуглите за роутинг. Что-то типо этого, но в вашем случае вместо action использовать id.
upd: пример выше подразумевает использование MVC. Его используете? Если нет, то советую. Сообщение отредактировал Kumidzeke - 28.10.2016, 12:32 -------------------- Skype — Kumidzeke Vk — vk.com/za4me |
|
|
WoWeb
|
Сообщение
#5
|
|
Kumidzeke,
Вот мой index.php: Код <div id="content"> <?php if($_GET['link'] != true){ ?> <?php include "adm/connect.php"; $sql = mysql_query("SELECT * FROM `blog` LIMIT 5") or die(mysql_error()); $newsData = array(); while($result = mysql_fetch_array($sql, MYSQL_ASSOC)){ $newsData[] = $result; } foreach($newsData as $oneNews): ?> <article> <p><?=$oneNews['title'];?></p> <p><?=$oneNews['keywords'];?></p> <p><?=$oneNews['description'];?></p> <p><?=$oneNews['seo_link'];?></p> <br> <p><a href="index.php?link=<?=$oneNews['seo_link'];?>.html"><?=$oneNews['title_h1'];?></a></p> <p><?=$oneNews['text'];?></p> <p><?=$oneNews['date'];?></p> <p><?=$oneNews['autor'];?></p> <p><?=$oneNews['raiting'];?></p> <p>-------------------------</p> </article> <?php endforeach; ?> <input id="show_more" count_show="5" count_add="5" type="button" value="Показать еще" /> <?php } else{ include("adm/connect.php"); $result = mysql_query("SELECT * FROM blog WHERE seo_link = ".$_GET['link'].""); echo $_GET['link']; }?> </div> Сейчас ссылка генерируется следующим образом - <a href="index.php?link=<?=$oneNews['seo_link'];?>.html"><?=$oneNews['title_h1'];?></a> с помощью index.php?link= я передаю get переменную что бы далее используя ее получить текст полной статьи. Но в html ссылки выглядят так - /blog/index.php?link=link_my.html где link_my.html - это get переменная. Как мне сделать, что бы ссылка имела следующий вид /blog/link_my.html но передавала get параметр? Сообщение отредактировал WoWeb - 28.10.2016, 13:07 -------------------- |
|
|
Alexandr_js |
28.10.2016, 14:04;
Ответить: Alexandr_js
Сообщение
#6
|
|
Не изобретайте велосипед, возьмите фремворк. Для начала освойте mvc
Очень плохо $result = mysql_query("SELECT * FROM blog WHERE seo_link = ".$_GET['link'].""); Плохо include("adm/connect.php"); п.с. посмотрите как роутинг реализован в битриксе Сообщение отредактировал Alexandr_js - 28.10.2016, 14:08 -------------------- |
|
|
Kumidzeke |
28.10.2016, 14:16;
Ответить: Kumidzeke
Сообщение
#7
|
|
Не изобретайте велосипед, возьмите фремворк. Для начала освойте mvc +1 и oop Конец 2016 года, mysql для подключения к бд. Хотя в доке уже черти сколько написано о использовании mysqli или pdo. Сейчас ссылка генерируется следующим образом Так генерируйте ссылку правильно, как вам необходимо в виде example.com/blog/id А далее при переходе по этой url разберите ее, получите id и получите статью с этим id. Пример разбора url я уже вам привел выше (ссыль на github). изначально не правильно создал структуру php файлов? Да. -------------------- Skype — Kumidzeke Vk — vk.com/za4me |
|
|
Alexandr_js |
28.10.2016, 14:41;
Ответить: Alexandr_js
Сообщение
#8
|
|
Конец 2016 года, mysql для подключения к бд. Хотя в доке уже черти сколько написано о использовании mysqli или pdo. Конец 2016 года до сих пор ставят гет запросы без фильтрации прямо в запрос mysql -------------------- |
|
|
Kumidzeke |
28.10.2016, 14:48;
Ответить: Kumidzeke
Сообщение
#9
|
|
Конец 2016 года до сих пор ставят гет запросы без фильтрации прямо в запрос mysql + Вот что интересно, не надоело каждый раз писать "$_GET['link']"? Еще небольшая придирка: + для читабельности лучше использовать альтернативный синтаксис (имхо). Сообщение отредактировал Kumidzeke - 28.10.2016, 14:54 -------------------- Skype — Kumidzeke Vk — vk.com/za4me |
|
|
WoWeb
|
Сообщение
#10
|
|
Kumidzeke, Не бейте ногами =) Я только начал изучать php, вот для тренировки пишу простенький движок для блога (добавление, редактирование, вывод данных) из базы данных, ну и вот и ЧПУ занимаюсь.
-------------------- |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Запрос на бесплатные полезности | 7 | Tia2 | 1973 | 23.3.2024, 11:27 автор: Alexand3r |
|
Куплю "вечные URL" с ваших сайтов с тематикой - Пластиковые Окна! | 5 | regem | 8381 | 15.3.2020, 19:46 автор: Narsus797 |
|
Куплю сайты, внутри темы подробный запрос | 3 | PticaKate | 3652 | 12.11.2019, 16:22 автор: 0pium |
|
Get-Web.site - Качественная верстка сайтов | 0 | GetWeb | 1514 | 29.7.2019, 20:08 автор: GetWeb |
|
Куплю места для размещения TXT+URL Строительная тематика. | 7 | regem | 7642 | 28.3.2019, 18:31 автор: regem |
Текстовая версия | Сейчас: 23.4.2024, 19:56 |