2011-01-12 2 views
1

Я пытаюсь проверить массив $ GET. Но у меня есть некоторые проблемы.Проблема с проверкой GET

URL: HTTP: // www.my.qqq/с = уроки

Код:

if (!empty($_GET['s'])) { 
echo '1'; 
} 
else { 
echo '0'; 
} 

Результат: 0

Но если я использую HTTP: // WWW. my.qqq/index.php? s = уроки

Но скрипт работает нормально, если я использую оба адреса, кроме GET.

Почему GET не работает с этим URL http: // www.my.qqq /? S = уроки и работает с http: // www.my.qqq/index.php? S = уроки?

PS. ОС: Windows

Моя проблема была RewriteRule^([а-г _] *)/$ index.php s = $ 1

Если кто-нибудь знает? Как сделать Http: // www.my. qqq /? s = уроки и http: // www.my.qqq/уроки/доступны за один раз?

Ответ:? [QSA] флаг в конце правила Rewrite^([а-г _] *)/$ index.php s = $ 1 [QSA]

Thanx все за помощь!

+1

Что произойдет, если вы выполните 'http: // www.my.qqq /? S = lessons'? У вас есть другой индексный файл в каталоге (например, index.htm)? –

+0

Каково значение '$ _SERVER ['REQUEST_URI']' в скрипте PHP этого контекста? Есть ли перенаправление, которое удаляет параметры GET из URI запроса? – scoffey

+0

когда я делаю http: // www.my.qqq /? S = уроки, то у меня есть тот же результат, что и на http: // www.my.qqq/index.php? S = уроки, кроме GET. – Mirgorod

ответ

1

Вы не указали, какой веб-сервер вы используете. Это похоже на проблему с правилами переписывания URL-адресов; для Apache убедитесь, что mod_rewrite сохраняет строку запроса (часть после ?).

Смежные вопросы