1 2013-06-24 14:14:05 (2013-06-24 20:53:00 отредактировано black007)

Тема: Get-запрос вида ?date=27/06/2013 в адресной строке

подскажите, пожалуйста, форма делает GET-запрос скрипту в адресной строке.
запрос вида:  http:site.ru/result?date=27/06/2013

соответственно, вместо страницы http:site.ru/result, получаю страницу 404.  Если убрать слэши в дате, т.е. привести к виду http:site.ru/result?date=27.06.2013, то все ок. Но скрипт с другого сайта, поэтому переделать запрос не могу. Эта дата идет в конце. Может можно ограничить как-то длину ссылки, которую читает движок при открытии страницы

Как можно поправить данный глюк?

Поделиться

2 2013-06-25 07:53:16

Re: Get-запрос вида ?date=27/06/2013 в адресной строке

А Ваш вопрос точно связан хоть как то с системой Монстра?

Google: Я найду всё!
Wikipedia: Я знаю всё!
ВКонтакте: Я знаю всех!
Internet: Без меня вы ничто!
Электричество: Молчать, суки…

Сайт Hmelex

Поделиться

3 2013-06-25 08:33:20 (2013-06-25 08:34:48 отредактировано ravilr)

Re: Get-запрос вида ?date=27/06/2013 в адресной строке

а так не работает??

http:site.ru/result.php?date=27/06/2013

Поделиться

4 2013-06-25 20:05:10 (2013-06-25 20:07:27 отредактировано black007)

Re: Get-запрос вида ?date=27/06/2013 в адресной строке

А Ваш вопрос точно связан хоть как то с системой Монстра?

у меня на этой системе сайт и сделан.
если намекаете на апач, то возможно. Тогда вопрос, как скореектировать .htaccess
Но основной вопрос в том, что система монстра или апач почему-то воспринимают слэш в строке запроса, т.е. после "?"


ravilr пишет:

а так не работает??

http:site.ru/result.php?date=27/06/2013

Нет, так не работает. Когда я делаю Slug - result.php, то он сокращает его до resultphp, а когда я в адресной строке дописываю php, то опять получаю 404.

Поделиться

5 2013-06-25 20:12:44

Re: Get-запрос вида ?date=27/06/2013 в адресной строке

да походу Uri модуль считает /result?date=27/06/2013 все что разделено слешами - это страницы.
х.з. как обойти это сейчас в https://github.com/Awilum/monstra-cms/b … ne/Uri.php

Follow me: Twitter | GitHub | Facebook | Вконтакте

Стань спонсором проекта!

Сайт Awilum

Поделиться

6 2013-06-25 20:13:26 (2013-06-25 20:15:22 отредактировано ravilr)

Re: Get-запрос вида ?date=27/06/2013 в адресной строке

то говорите что скрипт с другого сайта то говорите slug прописываете.... совсем все непонятно.
Зачем вообще вам slug если у вас скрипт отдельно ??

Поделиться

7 2013-06-25 20:48:23 (2013-06-26 05:39:41 отредактировано black007)

Re: Get-запрос вида ?date=27/06/2013 в адресной строке

то говорите что скрипт с другого сайта то говорите slug прописываете.... совсем все непонятно.
Зачем вообще вам slug если у вас скрипт отдельно ??

На главной - скрипт-форма, параметры формы выводятся на отдельную страницу, завожу ее в админке, ей присваиваю slug - result, в тело вставляю второй скрипт, который получает результат от первой формы и заполняет параметры на странице результатов поиска. Формы разные. Ну, короче, если подробно, то делаю вывод поиска туров, на главной надо заполнить дату, отель, страну, а результаты выводятся на отдельной странице, в нее форма и передает данные, и выводит список туров. Все хорошо работает без слэша, но убрать его я не могу, так как срипт с другого сайта.


Awilum пишет:

да походу Uri модуль считает /result?date=27/06/2013 все что разделено слешами - это страницы.
х.з. как обойти это сейчас в https://github.com/Awilum/monstra-cms/b … ne/Uri.php

вот собственно да, в этом вопрос, как обойти.))
А нельзя укоротить ту часть, которая присваивается переменной $Url по длине? Так как часть с датой с датой практически в конце запроса.
Либо может быть все, что после "?" обрезать

Поделиться

8 2013-06-26 07:18:58 (2013-06-26 07:42:24 отредактировано ravilr)

Re: Get-запрос вида ?date=27/06/2013 в адресной строке

если второй скрипт, который находится на странице result принимает только  date=27/06/2013, то и дайте ему это. Можно передать get в формате 27-06-2013 например, а потом перед скриптом заменить значения '-' на '/' и назначить новое значение для $_GET ['data']

Поделиться

9 2013-06-26 09:30:32

Re: Get-запрос вида ?date=27/06/2013 в адресной строке

ravilr пишет:

если второй скрипт, который находится на странице result принимает только  date=27/06/2013, то и дайте ему это. Можно передать get в формате 27-06-2013 например, а потом перед скриптом заменить значения '-' на '/' и назначить новое значение для $_GET ['data']

А первый скрипт тоже с другого сайта. У меня просто окно получается

Поделиться

10 2013-06-26 10:38:05

Re: Get-запрос вида ?date=27/06/2013 в адресной строке

black007 пишет:

Либо может быть все, что после "?" обрезать

можно и обрезать заменив в классе Uri (ссылка на который выше)

public static function segments()
    {
        // Get request uri and current script path
        $request_uri = explode('/', $_SERVER['REQUEST_URI']);

на

public static function segments()
    {
        preg_match('/^[^?]+/', $_SERVER['REQUEST_URI'], $r);
        $REQUEST_URI = $r[0];
        // Get request uri and current script path
        $request_uri = explode('/', $REQUEST_URI);

Поделиться

11 2013-06-26 12:51:13 (2013-06-26 13:24:20 отредактировано black007)

Re: Get-запрос вида ?date=27/06/2013 в адресной строке

Prividenie пишет:
black007 пишет:

Либо может быть все, что после "?" обрезать

можно и обрезать заменив в классе Uri (ссылка на который выше)

public static function segments()
    {
        // Get request uri and current script path
        $request_uri = explode('/', $_SERVER['REQUEST_URI']);

на

public static function segments()
    {
        preg_match('/^[^?]+/', $_SERVER['REQUEST_URI'], $r);
        $REQUEST_URI = $r[0];
        // Get request uri and current script path
        $request_uri = explode('/', $REQUEST_URI);

Спасибо, сначала неправильно заменил код, но сейчас все работает. Правда стали сильно тормозить страницы при открытии.

А нельзя ли реализовать это с помощью функции strripos() ?

Поделиться

12

Re: Get-запрос вида ?date=27/06/2013 в адресной строке

используйте вместо этих 2 строк:

        preg_match('/^[^?]+/', $_SERVER['REQUEST_URI'], $r);
        $REQUEST_URI = $r[0];

эти 3:

        $REQUEST_URI = strstr($_SERVER['REQUEST_URI'], "?", true);
        if(!$REQUEST_URI)
            $REQUEST_URI = $_SERVER['REQUEST_URI'];

Поделиться

13

Re: Get-запрос вида ?date=27/06/2013 в адресной строке

Супер!! Спасибо! Все работает, гораздо быстрее! smile

Поделиться