Strict Standards: Resource ID#35 used as offset, casting to integer (35) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#37 used as offset, casting to integer (37) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#38 used as offset, casting to integer (38) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: get
ТвойWeb » WebMaster класс » PHP/Perl » get

Страниц (2): [1] 2 »
 

1. djX - 31 Августа, 2005 - 15:30:04 - перейти к сообщению
у меня небольшой вопрос, но уж очень давно меня интересовавший:

допустим, если ссылка выглядит примерно так : index.php?r=gb
то в php коде пишем примерно так:
CODE:
$razdel=$_GET['r'];

и в этом случае значение $razdel будет равно gb.

а что писать в коде если хочешь чтобы ссылка выглядела так: index.php?gb

//поиск не помог..или неправильно искал
2. CaptainFlint - 31 Августа, 2005 - 15:56:01 - перейти к сообщению
djX пишет:
а что писать в коде если хочешь чтобы ссылка выглядела так: index.php?gb

Например, так:
PHP:
$razdel = isset($_GET['gb']);

Переменная $razdel будет содержать true, если в ссылке указано gb, и false, если не указано.
3. djX - 01 Сентября, 2005 - 04:45:16 - перейти к сообщению
CODE:
$razdel = isset($_GET['gb']);


$razdel-переменная! она может быть равна не только gb! в последующем будет идти проверка на существование такой страницы
4. TvoyWeb - 01 Сентября, 2005 - 04:57:10 - перейти к сообщению
CaptainFlint
Вообще то правильнее так:
CODE:
$razdel = isset($_GET['gb'])?TRUE:FALSE;

Теперь в $razdel будет булево значение.
djX
Как правило когда в запросе параметр идет без значения то это параметр флаг.
Потом в скрипте можешь писать так:
CODE:
if ($razdel === TRUE)//что означает что в запросе был параметр gb
{
делаем то-то
}
else//в запросе нет парметра gb
{
ничего не делаем
}
5. CaptainFlint - 01 Сентября, 2005 - 05:33:28 - перейти к сообщению
TvoyWeb пишет:
Вообще то правильнее так

А чем? Вроде, в описании сказано, что функция возвращает bool...

По поводу раздела, как мне кажется, djX хотел следующее: ввёл в адресной строке index.php?gb - получает переменную $razdel='gb', ввёл index.php?xy - получил $razdel='xy', ну и т.д. Если так, то, наверное, придётся просто прочёсывать весь массив $_GET по списку ключей/значений и смотреть, что вообще было передано в адресной строке, присваивая нужное значение переменной $razdel.
6. ETC - 01 Сентября, 2005 - 06:43:32 - перейти к сообщению
Да, но нужно вообще всё от и до проверять, все параметры. Безопасность, понимаешь...
7. TvoyWeb - 01 Сентября, 2005 - 07:04:36 - перейти к сообщению
CaptainFlint пишет:
Вроде, в описании сказано, что функция возвращает bool...

Согласен. Улыбка Просто я сам лично привык так писать.
CaptainFlint пишет:
придётся просто прочёсывать весь массив $_GET

ИМХо так не делается Улыбка Не верный подход ИМХО.
8. djX - 01 Сентября, 2005 - 07:37:34 - перейти к сообщению
Цитата:
ввёл в адресной строке index.php?gb - получает переменную $razdel='gb', ввёл index.php?xy - получил $razdel='xy', ну и т.д.


вот имеено это мне и нужно сделать!!! не до проверки еще, ее потом делать буду)
9. ETC - 01 Сентября, 2005 - 07:41:10 - перейти к сообщению
TvoyWeb пишет:
Не верный подход ИМХО.

Ты не прав. Совершенно верный. Нужно не как можно короче писать, а как можно безопаснее. В частности проверять все параметры $_GET, равно как и $_POST. Т.е. хранить жёстко заданный список существующих параметров и проверять наличие. Если ничего нет, то выдавать ошибку.
10. djX - 01 Сентября, 2005 - 13:32:08 - перейти к сообщению
именно это я в последующем и буду делать...

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0395]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33