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



Эмуляция register_globals on в PHP скриптах при установка в off в php.ini на сервере

Если на сервере в php.ini параметр register_globals установлен в off, что идет стандартно, начиная с PHP 4.2, а у вас обнаружился старый скирпт на PHP4, которому требуется, чтобы глобальные переменные были включены, можно обойти эти ограничения на уровне скриптов, не меняя настройки сервера.

Для этого в тех скриптах, где это нужно, можно использовать следующий код.

<?php
// Emulate register_globals on
if (!ini_get('register_globals')) {
$superglobals = array($_SERVER, $_ENV,
$_FILES, $_COOKIE, $_POST, $_GET);
if (isset($_SESSION)) {
array_unshift($superglobals, $_SESSION);
}
foreach ($superglobals as $superglobal) {
extract($superglobal, EXTR_SKIP);
}
}
?>

С регистрацией глобальных переменных связано большое количество споров и домыслов. На самом деле, включение регистрации глобальных переменных не несет в себе катастрофической угрозы безопасности, как это пытаются представить.

Тем не менее, реалии таковы, что во-первых, на большинстве серверов их закрывают, а во-вторых - проапгрейдив сервера до версии PHP 5 и выше, обычно оставляют дефолтное значение register_globals, то есть значение этой переменной обычно бывает off.

В таких случаях может пригодиться приведенная выше функция.



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

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

Приложения

Комментарии

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

Прокомментиировать "Эмуляция register_globals on в PHP скриптах при установка в off в php.ini на сервере"

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

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

 

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

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

Хотите...

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

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

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

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

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

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

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

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

Выгнать в PDF


Мнения

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

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




Thank you for rating this answer.

Продолжить