За последние 24 часа нас посетили 27195 программистов и 1791 робот. Сейчас ищут 885 программистов ...

формирование URl

Тема в разделе "PHP для новичков", создана пользователем gix, 17 дек 2014.

  1. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    Добрый день, проблема у меня в следующем: пишу небольшой сайт на CI и решил сделать доступ к функциям через роутинг с формированием статического uri.То есть на сайте есть ссыки в виде href='push'(к примеру) и соответствующее условие в роуте мол если в первом сегменте push то запускаю такой то метод. Вот, и проблема в следующем что когда индексная страница запущена и ты нажимаешь на разные ссылки то все работает нормально, к примеру нажал push-получил http://localhost/sample/index.php/push, нажал stop-получил http://localhost/sample/index.php/stop. Но если я зашел в меню push а в нем нажал еще на какую-нибудь ссылку то uri складывается в вид http://localhost/sample/index.php/push/какая то ссылка/ и при нажатии к примеру уже на ссылку stop я получаю строку http://localhost/sample/index.php/push/какая то ссылка/stop вместо ожидаемой http://localhost/sample/index.php/stop. Естественно уже никакой роутинг не работает ибо нарушаются условия расположения сегментоы и выходит корч(( Надеюсь понятно объяснил, и хотел бы спросить как тут быть?
    P.S. гуглил и нашел что то про модуль mod_rewrite,прочитал но решения для себя не увидел т.к. мне не надо переписывать динамические ссылки в статические(они у меня уже все изначально статич.)
     
  2. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    А если про html прочитать? Ссылочку надо начинать с /, тогда она от самого сайта пойдёт. И в случае, если у вас есть index.php в ЧПУ, скорее всего надо его тоже надо каждый раз указывать. Я обычно фрейворки настраиваю, чтоб у меня не было никакого index.php, это элементарно делается. Как в CI - не знаю, никогда не использовал.
     
  3. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    ппц!!!!!!!!!!!!!! спасибо ВАМ ОГРОМНЕЙШЕЕ!!!!!!!!!Я полдня над этим ломал голову, что я только не пробовал и руты менял и ссылки и всякие извращения.
    P.S. про чтение-на самом деле читаю много и днями напролет за компом сижу, всё к сожалению не запомнить, зато вдалбливается в память когда про..рахаешься с чем-нибудь вот так, на практике. Еще раз спс!!!!!!!

    Добавлено спустя 26 минут 42 секунды:
    еще добавлю-раньше, я все делал через if(isset($_GET['link'])){запусти такой то скрипт} и при этом вид ссылки был такой href='?link'(так видел в примерах делали). И оно все работало, если не было статических ссылок (либо если был post то я прописывал заголовок header). Я так понимаю что если я хочу указать переменную $_GET[], то мне надо прописывать ссылку href='?link' а не писать полный путь в ссылке?
     
  4. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    В $_GET попадает то, что в URL идёт после знака ?. Если остальную часть текущего URL менять не требуется, её можно опустить и начать сразу с ?
     
  5. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    понял. Спасибо Вам Михаил!!!