Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Как лучше: $_GET и $_POST или $_REQUEST?
Покинул форум
Сообщений всего: 48
Дата рег-ции: Март 2008
Помог: 0 раз(а)
Как предпочтительней пользоваться суперглобальными массивами: $_GET и $_POST или $_REQUEST?
E-Pro
Отправлено: 09 Ноября, 2008 - 12:58:52
Частый гость
Покинул форум
Сообщений всего: 164
Дата рег-ции: Окт. 2008 Откуда: Санкт-Петербург
Помог: 0 раз(а)
$_POST при передачи данных из формы
$_GET при передачи данных из адресной строки
при этом желательно register_globals off
Champion
Отправлено: 09 Ноября, 2008 - 13:14:43
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
E-Pro GET из формы тоже можно. rar, request - это и гет, и пост вместе. По-моему, пользуйтесь, чем хотите
Gal_Sergey
Отправлено: 09 Ноября, 2008 - 14:03:47
Новичок
Покинул форум
Сообщений всего: 35
Дата рег-ции: Март 2008
Помог: 0 раз(а)
А из моего куцего опыта мне кажется, что лучше $_POST, а когда нет возможности $_GET.
Тогда легче организовыать циклы по массиву $_POST. Ибо если пользоваться для организации массивов $_REQUEST, то он вернет что надо, и что не надо.
vitaliy_mad
Отправлено: 09 Ноября, 2008 - 14:33:52
Участник
Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008 Откуда: Украина, Мариуполь
Помог: 0 раз(а)
в целях безопасности лучше использовать $_POST при передаче только методом POST.. если испольуется метод GET тогда без разницы что использовать $_GET или $_REQUEST
Меня лично всегда удивляет разграничение GET и POST
На самом деле GET есть абсолютно всегда, и то что мы называем POST на самом деле GET+POST. т.е. на самоме деле method="GET" значит что POST выключен, а method="POST" значит что POST включен
P.S. Для тех кто в танке
GET /some.php?par=val HTTP/1.1\nHost: mysite.ru\nOther headers\n\n
POST /some.php?par=val HTTP/1.1\nHost: mysite.ru\nContent-Length: 900\nOther headers\n\nPOST DATA
vitaliy_mad
Отправлено: 09 Ноября, 2008 - 15:42:37
Участник
Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008 Откуда: Украина, Мариуполь
запрос $_POST['id'] даст пустую строку...
и если есть данные которые надо минимально ограничить подстановку простую таким методом, то лучше использовать массив $_POST...
Да, vitaliy_mad, конечно Вы тоже правы
Но ведь написать страинцу с формой <form action="http://www.dom.ru/pag.php" method="post" name="hack_form"><input type="hidden" name="id" value="0987654"></form> и потом сделать hack_form_submit() не представляет никакой сложности, и гоаорить о защите здесб безполезно, разве что для удобства самого программииста, чтобы не запутться откуда что пришло
vitaliy_mad
Отправлено: 10 Ноября, 2008 - 18:08:28
Участник
Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008 Откуда: Украина, Мариуполь
Помог: 0 раз(а)
JustUserR пишет:
не представляет никакой сложности
совершено верно... но это ччуть посложнее чем просто в адресной строке написать... зачем облегчать жизнь "хакерам"?
Покинул форум
Сообщений всего: 36
Дата рег-ции: Окт. 2008 Откуда: Россия, Саратов
Помог: 1 раз(а)
foreach($_REQUEST as $k=>$v)
{
${$k} = $v;
}
И пользуйтесь обычными переменными.
Соответствено, Вы сможете просто пользовать переменные вида $x вместо тяжелого и нудного забивания $_REQUEST[x], или $_POST[x], или $_GET[x]
Покинул форум
Сообщений всего: 615
Дата рег-ции: Июль 2006 Откуда: Оттуда !
Помог: 0 раз(а)
Начем с того что $_GET и $_POST используются для разных целей. и в зависимости от вашей цели берется либо один либо другой.
$_REQUEST же включает в себя и $_GET и $_POST и $_COOKIE и использовать её лучше когда вам нужны в одном месте кода 2 из 3-х переменных
TigerSml
Отправлено: 15 Октября, 2009 - 14:13:44
Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Авг. 2009
Помог: 0 раз(а)
Я вообще всегда использовал $_GET и $_POST
Почитал месаги, подумал. а кто нить подскажет в каких случаях могут понадобится данные переданные любым способом, гет пост или куки.
Подозреваю, что это может понадобится, для софта работающего с скриптом сайта, хотя вариант сомнительный, просто на практике я не сталкивался с таким случаем, когда мне все равно откуда приходят данные. Если это из урл, то гет, если из формы на сайте то пост обычно (гетом из формы почти никогда не отправляю). Лично я $_REQUEST использую в самом начале скрипта на проверку спец символов, что бы охватить все 3 массива и в случае чего остановить скрипт.
Так где же использует кто $_REQUEST в передачи данных? какие обстоятельства заставляют программиста ждать данные с разных методов, или все же дело вкуса.
----- Да пребудет с Вами Коннект!
EuGen
Отправлено: 15 Октября, 2009 - 15:28:15
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Уважаемый, проверяйте, пожалуйста, актуальность тем Предупреждение за поднятие кучи старых тем
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
TigerSml
Отправлено: 15 Октября, 2009 - 16:28:24
Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Авг. 2009
Помог: 0 раз(а)
Сори конечно! Но лучше флудить новыми темами? Я ж по теме написал, причем именно в точности до единного символа что я искал, то есть ради лажового вопроса мне надо было создать новую тему-дубликат? И вы бы мне конечно сказали пользуйся, друг, поиском.
И я не отвечал на какой, то вопрос, который задали пару лет назад. Добавил свое мнение о использовании массивов и задал новый вопрос. Закрывайте темы, если не желаете, что бы в них продолжали писать.
tools.php?action=rules
Правила участия в конференции.
...
хм, не нашел.
Приношу, конечно же извинения, за такое беспокойство, но я задавал вопрос по использованию массивов $_GET $_POST и $_REQUEST, а не отвечал на сообщение 2008 года. Добавьте в правила пунктик на счет этого или закрывайте старые темы, в чем проблема то.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.