Консультация № 157188
10.01.2009, 11:21
0.00 руб.
0 9 2
Здраствуйте... Думаю вопрос задавался не однократно...
Хост настройки: register_globals Off.
Пробывал включить через : ini_set('register_globals','on');
неполучилось.... может кто-то что-то подскажет ??? Как решит ету задачу не переписывая весь скрипт.
просто он большой.... а переменные описаные в Гетах ($_GET[var])... потом исползуются просто как переменая... $var.
Наперед огромное спасибо.

Обсуждение

Неизвестный
10.01.2009, 11:27
общий
Вам что нужно то? Включить Register Globals?
В .htaccess:
php_flag register_globals on
Неизвестный
10.01.2009, 11:44
общий
Если скрипт один, то ведь можно просто в начале скрипта сделать $var = $_GET['var'];
Вообще лучше переписать скрипт, чем оставлять потенциальную дыру в приложении.
Неизвестный
10.01.2009, 11:50
общий
это ответ
Здравствуйте, Tmishka!
в начале скрипта допишите
foreach($_GET as $vname => $vval)$$vname=$vval;

$$vname - переменная, имя которой содержится в переменной $vname, тоесть всем ключам массива $_GET создадутся соответствующие переменные
Неизвестный
10.01.2009, 11:58
общий
это ответ
Здравствуйте, Tmishka!
Включать register_globals лучше, прописав в файле .htaccess такой текст:

php_value register_globals On

Но включать register_globals не надо. Вы программист не слишком опытный, наделаете дыр в коде. Лучше всего выдергивать переменные через массив $_GET. Неудобство это небольшое, особенно, учитывая более высокий уровень безопасности.

Делать динамические переменные ($$vname) никогда не надо. Это очень сомнительный путь. Таким путем можно легко обрушить свое приложение.

С уважением, Товарищ Бородин
Неизвестный
10.01.2009, 11:59
общий
Да лучше скрипт переписать, я специально в файле .htaccess отключаю их:
php_flag register_globals off
Неизвестный
10.01.2009, 12:10
общий
В начале скрипта пропишите:

extract($_REQUEST);
Неизвестный
10.01.2009, 12:10
общий
включил в .htaccess такой текст:
php_value register_globals On

Результат:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@naruto-battle.ru and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Неизвестный
10.01.2009, 12:13
общий
foreach($_GET as $vname => $vval)$$vname=$vval;
СРАБОТАЛО на 5+
Неизвестный
10.01.2009, 13:04
общий
Видимо, из-за неправильно заданного значения не сработало. Надо было не On подставить, а 1. А динамические переменные - все равно шаг рискованный. Можно задать в строке запроса такое имя, которым переменную назвать нельзя. Скрипт рухнет, может обнажить какие-нибудь дырки.

Факт в том, что register_globals дает хакерам некоторое поле для манипуляций скриптами. Тем оно и опасно.
Форма ответа