Forum Webscript.Ru

Программирование => PHP => Тема начата: Andreyshka от 01 Августа 2003, 13:27:03

Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Andreyshka от 01 Августа 2003, 13:27:03
приветы.У меня есть скрипт, который работает толко при register_globals = On.Можно ли что-то сделать, чтобы не переписывать код, а скрипт работал при register_globals = Off
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Дмитрий Попов от 01 Августа 2003, 13:42:11
http://www.livejournal.com/community/ru_php/63167.html
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: ThE0ReTiC от 01 Августа 2003, 13:46:14
в .htaccess ставится:
php_flag register_globals on
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Wyclef от 01 Августа 2003, 13:46:37
да, ИМХО, если только только вначале скрипта дописать присвоение нужных глобальных переменных тем, которые используются...
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: MrGreeN от 01 Августа 2003, 14:29:40
ThE0ReTiC
А если под винды?
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Дмитрий Попов от 01 Августа 2003, 14:30:18
Wyclef
Вы бы по ссылочке сходили-то, да...
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Wyclef от 01 Августа 2003, 14:35:25
[off]молчу, молчу ))) успокойтесь... [/off]
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: ThE0ReTiC от 01 Августа 2003, 14:36:52
MrGreeN
а в чем разница-то?
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: MrGreeN от 01 Августа 2003, 16:35:30
Мда...действительно никакой
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Neter от 01 Августа 2003, 18:59:48
Можно попробовать заинклюдить в начале каждого скрипта:

register_globals.php:

@extract($HTTP_SERVER_VARS, EXTR_SKIP);
@extract($HTTP_COOKIE_VARS, EXTR_SKIP);
@extract($HTTP_POST_FILES, EXTR_SKIP);
@extract($HTTP_POST_VARS, EXTR_SKIP);
@extract($HTTP_GET_VARS, EXTR_SKIP);
@extract($HTTP_ENV_VARS, EXTR_SKIP);
?>
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Меняздесьдавнонет от 01 Августа 2003, 19:31:52
как же ты сервер-то не пожалел.
а если я напишу
script.php?REMOTE_ADDR=1.1.1.1
?
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Neter от 01 Августа 2003, 22:47:18
RomikChef А register_globals=off ;)

А вобще да, лучше так:


if (!ini_get(\'register_globals\')){
@extract($HTTP_SERVER_VARS, EXTR_SKIP);
@extract($HTTP_COOKIE_VARS, EXTR_SKIP);
@extract($HTTP_POST_FILES, EXTR_SKIP);
@extract($HTTP_POST_VARS, EXTR_SKIP);
@extract($HTTP_GET_VARS, EXTR_SKIP);
@extract($HTTP_ENV_VARS, EXTR_SKIP);
}
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Меняздесьдавнонет от 02 Августа 2003, 00:40:14
а если я напишу
script.php?REMOTE_ADDR=1.1.1.1
?
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Neter от 02 Августа 2003, 14:57:25
RomikChef Что-то ты глючишь..
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Ardzhan от 03 Августа 2003, 12:22:13
Выдрал из PHP My Admin:


/* $Id: grab_globals.lib.php,v 1.12 2002/12/02 06:14:30 rabus Exp $ */
// vim: expandtab sw=4 ts=4 sts=4:


/**
 * This library grabs the names and values of the variables sent or posted to a
 * script in the \'$HTTP_*_VARS\' arrays and sets simple globals variables from
 * them. It does the same work for the $PHP_SELF variable.
 *
 * loic1 - 2001/25/11: use the new globals arrays defined with php 4.1+
 */
if (!defined(\'PMA_GRAB_GLOBALS_INCLUDED\')) {
    define(\'PMA_GRAB_GLOBALS_INCLUDED\', 1);

    if (!empty($_GET)) {
        extract($_GET, EXTR_OVERWRITE);
    } else if (!empty($HTTP_GET_VARS)) {
        extract($HTTP_GET_VARS, EXTR_OVERWRITE);
    } // end if

    if (!empty($_POST)) {
        extract($_POST, EXTR_OVERWRITE);
    } else if (!empty($HTTP_POST_VARS)) {
        extract($HTTP_POST_VARS, EXTR_OVERWRITE);
    } // end if

    if (!empty($_FILES)) {
        while (list($name, $value) = each($_FILES)) {
            $$name = $value[\'tmp_name\'];
        }
    } else if (!empty($HTTP_POST_FILES)) {
        while (list($name, $value) = each($HTTP_POST_FILES)) {
            $$name = $value[\'tmp_name\'];
        }
    } // end if

    if (!empty($_SERVER) && isset($_SERVER[\'PHP_SELF\'])) {
        $PHP_SELF = $_SERVER[\'PHP_SELF\'];
    } else if (!empty($HTTP_SERVER_VARS) && isset($HTTP_SERVER_VARS[\'PHP_SELF\'])) {
        $PHP_SELF = $HTTP_SERVER_VARS[\'PHP_SELF\'];
    } // end if

    // Securety fix: disallow accessing serious server files via "?goto="
    if (isset($goto) && strpos(\' \' . $goto, \'/\') > 0 && substr($goto, 0, 2) != \'./\') {
        unset($goto);
    } // end if

    // Strip slahes from $db / $table values
    if (get_magic_quotes_gpc()) {
        if (isset($db)) {
            $db = stripslashes($db);
        }
        if (isset($table)) {
            $table = stripslashes($table);
        }
    }

} // $__PMA_GRAB_GLOBALS_LIB__
?>

Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Меняздесьдавнонет от 03 Августа 2003, 12:43:26
Нетер, я не глючу.
просто ты бы попробовал бы, а свой скрипт вызвать, как я тебе написал.
Если уж теоретически, при просмотре кода не видишь ошибки.

Макс, это, конечно, все хитро, но не совсем правильно.
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Макс от 03 Августа 2003, 15:23:26
RomikChef
Цитировать
Макс, это, конечно, все хитро, но не совсем правильно.
эээ .... Это ты мне ? (Я вроде в этой теме вообще не выступал)
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Меняздесьдавнонет от 03 Августа 2003, 16:09:44
Меня глючит.
Это арджану было
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Neter от 03 Августа 2003, 18:02:31
RomikChef Так всё-таки глючит :))
Посмотри ещё раз.. код будет работать правильно, почитай ман по extract\'у, посмотри что обозначают константы, запусти код наконец..

Самый умный, блин..

Да, кстати, когда поймёшь что ступил, проголосуй за меня, мне будет приятно :)
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Yukko от 03 Августа 2003, 19:05:40
Neter
EXTR_SKIP :)
Или я что-то не правильно понял???
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Дмитрий Попов от 04 Августа 2003, 11:05:20
Neter
Нет... Тупите как раз таки Вы, причем очень сильно. А Ромик прав.
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Andreyshka от 04 Августа 2003, 11:21:42
чесно говоря, че делать я так и не понял?
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: Меняздесьдавнонет от 04 Августа 2003, 11:42:09
в общем, со скипом оно работать будет.
Но все равно, когда я вижу сервер ДО гета - меня выворачивает.

Андреюшка, прочти вот это
http://faq.phpclub.net/register_globals
авось, поймешь
Название: Как перейти с register_globals = On на register_globals = Off ...
Отправлено: ThE0ReTiC от 04 Августа 2003, 15:11:46
All
в общем так
так как все скатывается к банальному измерению своих органов - тема закрыта.
Neter
Ты чего-то до флейма слишком часто стал скатываться...
Плохо закончится. :mad: