Извлечение PHP без извлечения ()

У меня есть что-то вроде:

    if(isset($_POST['submit']))
    {
    $linktitle=strtolower(str_replace(" ","-",$title));

и т.п.

$linktitle и $title на самом деле являются переменными из $_POST, т.е. $_POST['linktitle'] и $_POST['title']. Каким-то образом, хотя (насколько я вижу!) я не извлекал() из $_POST на этом этапе кода, он все еще работает — PHP понимает, что $title относится к $_POST['title']. Может ли кто-нибудь объяснить, почему это может быть?

Спасибо!

пс. Извините, но я действительно не могу заставить работать это встроенное форматирование кавычек кода...!


person user1039769    schedule 24.01.2012    source источник


Ответы (3)


В вашем экземпляре PHP включен register_globals. Подробнее см. здесь.

Это поведение, на которое следует полагаться, поскольку его использование теперь устарело. Вы обнаружите, что можете использовать $_POST['keyname'] так же, как и $keyname, и это то, на что вы должны ссылаться в своем коде.

person DaveRandom    schedule 24.01.2012

В вашем файле php.ini должен быть включен параметр register_globals, чтобы переменные GPC добавлялись в таблицу символов. Вот почему вы видите такое поведение. См. риски безопасности такой функции здесь

person Niet the Dark Absol    schedule 24.01.2012

На вашем веб-сервере активированы register globals ( php.ini), поэтому PHP заменяет переменные unknoe на соответствующие значения GET или POST. Эта опция устарела и опасна! Отключите его, если можете!

person ocirocir    schedule 24.01.2012