Forum Webscript.Ru
Программирование => PHP => Тема начата: Andreyshka от 01 Августа 2003, 13:27:03
-
приветы.У меня есть скрипт, который работает толко при register_globals = On.Можно ли что-то сделать, чтобы не переписывать код, а скрипт работал при register_globals = Off
-
http://www.livejournal.com/community/ru_php/63167.html
-
в .htaccess ставится:
php_flag register_globals on
-
да, ИМХО, если только только вначале скрипта дописать присвоение нужных глобальных переменных тем, которые используются...
-
ThE0ReTiC
А если под винды?
-
Wyclef
Вы бы по ссылочке сходили-то, да...
-
[off]молчу, молчу ))) успокойтесь... [/off]
-
MrGreeN
а в чем разница-то?
-
Мда...действительно никакой
-
Можно попробовать заинклюдить в начале каждого скрипта:
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);
?>
-
как же ты сервер-то не пожалел.
а если я напишу
script.php?REMOTE_ADDR=1.1.1.1
?
-
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);
}
-
а если я напишу
script.php?REMOTE_ADDR=1.1.1.1
?
-
RomikChef Что-то ты глючишь..
-
Выдрал из 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__
?>
-
Нетер, я не глючу.
просто ты бы попробовал бы, а свой скрипт вызвать, как я тебе написал.
Если уж теоретически, при просмотре кода не видишь ошибки.
Макс, это, конечно, все хитро, но не совсем правильно.
-
RomikChef
Макс, это, конечно, все хитро, но не совсем правильно.
эээ .... Это ты мне ? (Я вроде в этой теме вообще не выступал)
-
Меня глючит.
Это арджану было
-
RomikChef Так всё-таки глючит :))
Посмотри ещё раз.. код будет работать правильно, почитай ман по extract\'у, посмотри что обозначают константы, запусти код наконец..
Самый умный, блин..
Да, кстати, когда поймёшь что ступил, проголосуй за меня, мне будет приятно :)
-
Neter
EXTR_SKIP :)
Или я что-то не правильно понял???
-
Neter
Нет... Тупите как раз таки Вы, причем очень сильно. А Ромик прав.
-
чесно говоря, че делать я так и не понял?
-
в общем, со скипом оно работать будет.
Но все равно, когда я вижу сервер ДО гета - меня выворачивает.
Андреюшка, прочти вот это
http://faq.phpclub.net/register_globals
авось, поймешь
-
All
в общем так
так как все скатывается к банальному измерению своих органов - тема закрыта.
Neter
Ты чего-то до флейма слишком часто стал скатываться...
Плохо закончится. :mad: