|
|
|
| Добрый день! Уже довольно давно повелось! что register_globals на хостинг серверах включены. Но недавно столкнулся с проблеммой! что их хостинг-провайдеры включать не хотят. Прочитал статью! На вашем сервере об этом!
И меня вот теперь стал мучать вопрос!
Как можно автоматически создать таковые переменные! возможно при помощи классов! Подскажите плиз! или какую-нить другую реализацию!
Оч. уж много переменных! которые надо проверять! | |
|
|
|
|
|
|
|
для: russjura
(23.11.2004 в 15:13)
| | ### register_globals = off ### +++
//HTTP_GET_VARS
while (list($key, $val) = @each($HTTP_GET_VARS)) {$GLOBALS[$key] = $val;}
//HTTP_POST_VARS
while (list($key, $val) = @each($HTTP_POST_VARS)) {$GLOBALS[$key] = $val;}
//HTTP_POST_FILES
while (list($key, $val) = @each($HTTP_POST_FILES)) {$GLOBALS[$key] = $val;}
//$HTTP_SESSION_VARS
while (list($key, $val) = @each($HTTP_SESSION_VARS)) {$GLOBALS[$key] = $val;}
### register_globals = off ### --- | |
|
|
|
|
|
|
|
для: russjura
(23.11.2004 в 15:13)
| | Хм... на самом деле можно достаточно просто всё перевести если в начале скрипта поместить код вроде:
<?php
$id = $_GET['id'];
$var = $_GET['var'];
$ttt = $_GET['ttt'];
?>
|
Если этого недостаточно, то можно написать код по переводу всех переменных из суперглобального массива в обычные переменные, например, для $_GET:
<?php
foreach($_GET as $key=>$var)
{
eval("\${$key} = '$var';");
}
?>
|
И так преобразовать все суперглобальные массивы. Но я бы рекомендовал это как временную меру, одновременно переводя весь код на суперглобальные массивы, так как это оставляет дыру в системе безопасности... | |
|
|
|
|
|
|
|
для: russjura
(23.11.2004 в 15:13)
| | Видел где то такое:
<?
if (!ini_get("register_globals")) {
import_request_variables('GPC');
}
?>
|
G - GET
P - POST
C - COOKIE | |
|
|
|