За последние 24 часа нас посетили 18956 программистов и 1616 роботов. Сейчас ищут 1066 программистов ...

Изменить ссылку

Тема в разделе "PHP для новичков", создана пользователем keaks88, 4 окт 2016.

  1. keaks88

    keaks88 Новичок

    С нами с:
    13 июн 2015
    Сообщения:
    37
    Симпатии:
    0
    Доброго времени суток, подскажите пожалуйста как изменить ссылку?

    Есть бд в ней хранится и id и альтернативное имя.
    Сейчас ссылка имеет такой вид, site.ru/cat/1 хочу сделать что бы ссылка была такого вида, site.ru/cat/namecat

    На данный момент добился только такого, что ссылка имеет вид site.ru/cat/namecat , но при переходе на нее ничего не происходит остаешься так же на главной странице. ЧПУ настроен.

    Видимо моих знаний не хватает что бы при переходи по имени определялся и id но не выводился в ссылке
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    скрипт понимает что с этим делать?
    Как?

    в базе хранится namecat?
     
  3. keaks88

    keaks88 Новичок

    С нами с:
    13 июн 2015
    Сообщения:
    37
    Симпатии:
    0
    Чпу настроен так,
    Код (Text):
    1. RewriteRule ^test/(cat)/([^.]+)/?$ index.php?do=test&op=cat&id=$2 [L]
    в базе хранится namecat?
    Да, в базе namecat хранится

    скрипт понимает что с этим делать?
    Понимает что делать если site.ru/test/cat/1

    я не могу заставить его понимать что делать если ссылка такая, site.ru/test/cat/namecat
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Где код PHP который отвечает за это и запрос в базу? По идее нужно это менять.

    Через .htaccess? Выкладывай если да
     
  5. keaks88

    keaks88 Новичок

    С нами с:
    13 июн 2015
    Сообщения:
    37
    Симпатии:
    0
    Вот запрос,
    Код (Text):
    1. SELECT * FROM my_cat ORDER BY id ASC
    Вот .htacces,
    Код (Text):
    1. RewriteRule ^test/(cat)/([^.]+)/?$ index.php?do=test&op=cat&id=$2 [L]
    Заранее благодарю.
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    там нет условия по id, там не используется $_GET['id'] ?
     
  7. keaks88

    keaks88 Новичок

    С нами с:
    13 июн 2015
    Сообщения:
    37
    Симпатии:
    0
    У меня так,
    PHP:
    1. if ( !isset($_GET['id']) ) {
    2.     $id = 0;
    3.     } else {
    4.         $id = intval($_GET['id']);
    5.     }
    [/QUOTE]
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    так там нет механизма, чтобы по id брать данные из базы? Его нужно дописать?
     
  9. keaks88

    keaks88 Новичок

    С нами с:
    13 июн 2015
    Сообщения:
    37
    Симпатии:
    0
    По id выводит все отлично, не выводит только если поменять ссылку на именную.
     
  10. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    И чего вы тогда хотите, волшебства что ли?
     
  11. keaks88

    keaks88 Новичок

    С нами с:
    13 июн 2015
    Сообщения:
    37
    Симпатии:
    0
    Нету, я изначально же так и объяснял. В первом моем вопросе.

    То что по id заходит а по name нет. Помогите пожалуйста как это реализовать
     
  12. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Поддержка ЧПУ – это глубоко интегрированный механизм. Если поверхностно, то снимите ограничение на выуживание исключительно числа из GET-параметра в представленном выше коде, заменив его каким-нибудь вменяемым фильтром, препятствующим SQL-инъекциям, и делайте по этому уже символьному значению запрос к таблице, где присутствует соответствующее поле со слагами (символьными идентификаторами).
     
  13. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @keaks88 тут легко запутаться, но где-то есть SQL запрос который по id категории получает её данные? Или нужно все категории выбрать из базы и отобразить их список? Задача просто не вся видимо описана.
     
  14. keaks88

    keaks88 Новичок

    С нами с:
    13 июн 2015
    Сообщения:
    37
    Симпатии:
    0
    Работает через глобальную переменную, Запрос один, тот что давал выше.На странице у меня выводятся все категории. Через, foreach
     
  15. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    и что нужно сделать?
    значит это не работает или просто выводит весь список?
     
  16. keaks88

    keaks88 Новичок

    С нами с:
    13 июн 2015
    Сообщения:
    37
    Симпатии:
    0
    выше читайте я все описал что нужно сделать, при переходе по ссылке где используется имя что бы попадало на страницу так же как и при переходе по id
     
  17. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    вот я этого не вижу, SQL без выбора id, условия без выполнения запроса.
    Если всё работает с id то поменяй его на name и всё, в самом SQL запросе.