2010-07-03 5 views
-1

для тестирования Включил регистр глобального,доступ к глобальным переменным, когда register_global на

<form> 
<input type="text" name="txt_name"> 
<input type="submit" value="Submit"> 
</form> 

 
    print_r($+txt_name); 
    //Parse error: parse error, expecting T_VARIABLE' or'$'' in F:\wamp\www\sample1 \register_globals.php on line 7 

Если зарегистрировать глобальным есть о, то я знаю, с помощью print_r ($ _ POST [ 'txt_name']),

Но теперь зарегистрировать глобальный Вкл (1),

Как получить значение текстового поля,

Посоветуй

+0

Обратите внимание, что разработчики PHP заявили, что они * удаляют * 'register_globals' в будущей версии. Не полагайтесь на него и ** не используйте его в новом коде **. – Charles

+0

yes chales ,, но только я хочу знать историю позади в этом ,,, спасибо – Bharanikumar

ответ

1

Почему в переменной есть символ +? Это должно быть только print_r($txt_name);.

+0

спасибо, genrally люди говорят, что в плане безопасности глобальный on опасен, может ли сказать мне, почему опасно, Как хакер вставляет вредоносные значения , – Bharanikumar

+0

Это потому, что кто-то может передать значения вашему скрипту следующим образом: 'index.php? Name = something'. Если вы действительно используете '$ name' в качестве переменной в своей программе, и вы забудете ее инициализировать, вы получите все значение, которое передал пользователь. – casablanca

+0

да, но вы увидите, что эта проблема будет возникать в методе GET, а не в почтовый метод правильный? – Bharanikumar

0
Если зарегистрировать глобальный есть о, то я знаю, с помощью print_r ($ _ POST [ 'txt_name']),

Но теперь зарегистрировать глобальный Вкл (1),

Как получить текстовое поле значение,

Чтобы ответить на поставленный вопрос: Все register_globals делает это копия каждого значения GPC, представленного как глобальное. $_POST, $_GET, $_REQUEST и $_COOKIE массивы не уходят.