Я не уверен, было бы хорошо, чтобы это было отмечено как вики сообщества, но в любом случае:
Есть ли простой способ убить register_globals? Я работаю над PHP Framework и прямо сейчас, я просто установил скрипт для завершения, если register_globals включен. Хотя я предпочитаю заставлять людей отключать его, на есть серверы, на которых это все еще включено.
Я знаю, что в PHP 5.3.0 register_globals устарела, а в PHP 6 он будет полностью удален, но всегда полезно иметь дело с ним, пока он еще здесь.
Я видел несколько способов, и сейчас я думаю об использовании этого:
$temp = array_merge($_GET, $_POST, $_COOKIE);
foreach($temp as $k => $v) {
if(isset($$k)) unset($$k);
}
Здесь есть некоторые проблемы. Это ресурсный стимул, особенно когда много входных данных. Я не уверен, будет ли работать его отключение во время выполнения, например:
ini_set('register_globals', 'Off')
Есть ли лучший способ, о котором я не слышал, чтобы избавиться от register_globals? Спасибо.