База вопросов и ответов по Интернет-магазинам, интернет-коммерции, системам управления контентом (CMS), блогам, SEO, контенту и движкам



Эмуляция выключения глобальных переменных в скриптах на PHP

Если на хостинге опция register_globals установлена в состояние "включено", а вам по каким-либо причинам необходимо установиить ее значение в off, то при отсутствии доступа к общим настройкам PHP на сервере через редактирование файла php.ini, эмуляцию выключения переменной register_globals (register_globals off) можно осуществить как на уровне отдельного сервера через файл htaccess (см. эту статью в базе знаний по Веб-серверам на сайте Шопмастера www.eShopMaster.ru), так и на уровне отдельных скриптов, вставив в них код эмулятора следующего вида:

<?php
// Emulate register_globals off
function unregister_GLOBALS()
{
if (!ini_get('register_globals')) {
return;
}

// Might want to change this perhaps to a nicer error
if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) {
die('GLOBALS overwrite attempt detected');
}

// Variables that shouldn't be unset
$noUnset = array('GLOBALS', '_GET',
'_POST', '_COOKIE',
'_REQUEST', '_SERVER',
'_ENV', '_FILES');

$input = array_merge($_GET, $_POST,
$_COOKIE, $_SERVER,
$_ENV, $_FILES,
isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array());

foreach ($input as $k => $v) {
if (!in_array($k, $noUnset) && isset($GLOBALS[$k])) {
unset($GLOBALS[$k]);
}
}
}

unregister_GLOBALS();

?>



Связанные статьи

Связанных статей не найдено.

Приложения

Комментарии

Коментариев пока нет. Прокомментировать

Прокомментиировать "Эмуляция выключения глобальных переменных в скриптах на PHP"

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

   Имя:
   Email:
* Комментарии:
* Код защиты от спама:

 

Информация о статье

Обновлялась
10th of November, 2010

Хотите...

распечатать страницу  распечатать страницу

Отправить старницу на Email  Отправить старницу на Email

Прокомментировать  Прокомментировать

 Подпишите меня

Подпишите меня  Добавить в закладки

Убрать выделение Убрать выделение

Редактировать эту статью

Быстрое редактирование

Выгнать в PDF


Мнения

Пока не оценено.

Как Вы оцениваете этот материал?




Thank you for rating this answer.

Продолжить