Няколко въпроса за $_SERVER

kikity_94

Registered
Здравейте, колеги.
Имам няколко въпроса за тази глобална променлива $_SERVER .
Значи използвам я на няколко места - логин форма, взимане на ип адрес, хедър пренасочване
$_SERVER['PHP_SELF'];
$_SERVER['REMOTE_ADDR'];
$_SERVER['HTTP_REFERER'];

Погледнах в php (dot) net, но забелязах, че пише, че са непрепорачителни и тогава се замислих дали изобщо е удачно да използвам и с какво бих могъл да ги заменя

$_SERVER['PHP_SELF']; Това го ползвам по следният начин

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Също така и
<meta http-equiv="refresh" content="3; url=<?php $_SERVER['PHP_SELF']; ?>">

$_SERVER['REMOTE_ADDR']; Това го ползвам по следният начин
$user_ip = $_SERVER['REMOTE_ADDR'];

А това $_SERVER['HTTP_REFERER']; така
$referer = $_SERVER['HTTP_REFERER'];
header("Location: $referer");

Има ли по-добър вариант от използването на тези променливи
 
inferno16 каза:
Аз използвам това <form method="post" action=""> и върши същата работа като PHP_SELF

Да за това си прав, че е така, но другите как да избегна използването им, но пък да имам същите резултати
 
Нещо не си разбрал какво пише

Въвеждане на $_SERVER, за сметка на непрепоръчителната $HTTP_SERVER_VARS.

Сървъра третира $_SERVER и $HTTP_SERVER_VARS като различни променливи. И искат да кажат, че се препоръчва да се ползва свръхглобалната $_SERVER, вместо $HTTP_SERVER_VARS след версия 4.1.0 .
 
TryMe каза:
Нещо не си разбрал какво пише

Въвеждане на $_SERVER, за сметка на непрепоръчителната $HTTP_SERVER_VARS.

Сървъра третира $_SERVER и $HTTP_SERVER_VARS като различни променливи. И искат да кажат, че се препоръчва да се ползва свръхглобалната $_SERVER, вместо $HTTP_SERVER_VARS след версия 4.1.0 .

http://php.net/manual/bg/reserved.variables.server.php

Леле какво съм чел пак :D вярно, че срещу $HTTP_SERVER_VARS пише непрепоръчителна.
Добре имам друг въпрос използването на тези супер глобални по този начин има ли някаква опасност от XSS и какво и да е било то и ако има какъув е най-добрият метод да се защитя
 
Елементите в този масив се създават от уеб сървъра.

Има някои, които могат да приемат някои неща, като например $_SERVER['QUERY_STRING'], но много зависи къде ще го ползваш. Едва ли ще го извеждаш на екрана. Прочети хубаво документацията. За всичко си има описание какво взима, какво не взима и т.н.
За да си 100% сигурен, открий сам топлата вода. Правиш си тестове и така ще се разбере. Но бъди сигурен къде и как ще използваш данните от $_SERVER.
 
TryMe каза:
Елементите в този масив се създават от уеб сървъра.

Има някои, които могат да приемат някои неща, като например $_SERVER['QUERY_STRING'], но много зависи къде ще го ползваш. Едва ли ще го извеждаш на екрана. Прочети хубаво документацията. За всичко си има описание какво взима, какво не взима и т.н.
За да си 100% сигурен, открий сам топлата вода. Правиш си тестове и така ще се разбере. Но бъди сигурен къде и как ще използваш данните от $_SERVER.

В първия си пост съм описал как и къде ги ползвам, сега ще излизам, но довечера като се прибера ще видя какво мога да направя, ще попрочета малко за SERVER :)
 
PHP_SELF го заменяш, както ти показаха(с празен action), а останалите можеш само HTTP_REFERER да проверяваш дали получава стойност, за да не ти изведе грешка header().
 
Ползваи си ги пак така функцииките само при PHP_SELF слагаи защита да не те избабанат.
http://web-tourist.net/login/login/view.php?st=2599

Фунцииките са си хубави и си работят но филтрирай данните.
 

Горе