Go Back   Armenian Knowledge Base > Technical sections > Webmaster Zone > Web Development

Reply
 
Thread Tools

PHP help :: register globals
Old 24.02.2007, 14:50   #1
Moderator
 
Mono's Avatar
 
Join Date: 10 2001
Location: Yerevan
Posts: 5,466
Blog Entries: 1
Rep Power: 6
Default PHP help :: register globals

Дорогие программисты

Как известно после версии 4.20 в PHP по дефолту register_globals отключен.

Поскольку многие старые программы написаны с учетом что она включена то старые программы на новых ПХП иногда работают со сбоями а иногда вообще не работают.

Укажите быстрый и надежный способ с помощью которого можно добится нормальной работы старых программ на новых версиях ПХП !

Old 24.02.2007, 15:09   #2
панаехавший
 
Obelix's Avatar
 
Join Date: 06 2003
Location: форпост
Age: 37
Posts: 4,007
Rep Power: 0
Default

izmenit' nastroyki php. Esli rech idet o hosting serverax to na nix register_globals ochen' chasto vkluchen

Old 24.02.2007, 15:21   #3
Moderator
 
Mono's Avatar
 
Join Date: 10 2001
Location: Yerevan
Posts: 5,466
Blog Entries: 1
Rep Power: 6
Default

Quote:
Esli rech idet o hosting serverax to na nix register_globals ochen' chasto vkluchen
Речь идет именно о хостинге.
No ya ne xochu vkluchit v php etu fishku poskolku eto sozdaet problemu bezopasnoti dlya drugoy programmi kotori stoit na etom servere

Неужели нету способа для его включения в отдельно взятой программе ?

Old 24.02.2007, 15:41   #4
Easy rider
 
Silver's Avatar
 
Join Date: 11 2005
Location: tristeza
Age: 39
Posts: 1,082
Rep Power: 0
Default

Mono, better write programs that don't require register_globals. Seriously.

Old 24.02.2007, 15:43   #5
Moderator
 
Mono's Avatar
 
Join Date: 10 2001
Location: Yerevan
Posts: 5,466
Blog Entries: 1
Rep Power: 6
Default

все нашел решение

http://am.php.net/manual/ru/faq.misc.php

Quote:
3. Как обращаться с register_globals?

Для информации по проблемам безопасности, связанных с register_globals, читайте Использование register_globals в главе Безопасность.

Предпочтительнее использовать superglobals, чем полагаться на то, что register_globals установлена в On.

Если вы пользуетесь совместным хостом с выключенной register_globals и вам надо использовать некоторые существующие приложения, которые требуют чтобы эта опция была включена; или вы на каком-либо сервере, где эта возможность включена, но вы хотите эмулировать проблему по безопасности, то возможно вам надо эмулировать противоположную установку с помощью PHP. Всегда лучше сначала спросить, если можно каким-либо образом изменить опцию в конфигурации PHP, но если это невозможно, то вы можете воспользоваться следующими совместимыми кусками кода.

Code:
<?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);
   }
   ini_set('register_globals', true);
}
?>

Old 24.02.2007, 15:48   #6
Moderator
 
Mono's Avatar
 
Join Date: 10 2001
Location: Yerevan
Posts: 5,466
Blog Entries: 1
Rep Power: 6
Default

Quote:
Mono, better write programs that don't require register_globals. Seriously.
Silver jan, it is not my code. I was trying to reuse some old code on new php install. I was testing for my own purposes, surely i will not let it public

Old 25.02.2007, 04:12   #7
Moderator
 
Join Date: 03 2002
Location: Russia
Posts: 123
Rep Power: 0
Default

Quote:
Originally Posted by Mono View Post
Речь идет именно о хостинге.
No ya ne xochu vkluchit v php etu fishku poskolku eto sozdaet problemu bezopasnoti dlya drugoy programmi kotori stoit na etom servere

Неужели нету способа для его включения в отдельно взятой программе ?
1. Некоторые настройки PHP можно изменять через .htaccess
2. Обычно у каждой программы своя папка.
Поэтому, для того, что бы включить register_globals для отдельной программы, надо в ее папке создать файл .htaccess со следующим содержимым:
Code:
php_value register_globals On

Old 25.02.2007, 08:01   #8
Moderator
 
Mono's Avatar
 
Join Date: 10 2001
Location: Yerevan
Posts: 5,466
Blog Entries: 1
Rep Power: 6
Default

Quote:
2. Обычно у каждой программы своя папка.
Поэтому, для того, что бы включить register_globals для отдельной программы, надо в ее папке создать файл .htaccess со следующим содержимым:
а влияние .htaccess-а пойдет в подпапки или в подпапках тоже нужно это декларировать ?

Old 25.02.2007, 08:10   #9
Moderator
 
Join Date: 03 2002
Location: Russia
Posts: 123
Rep Power: 0
Default

Да, .htaccess будет для папки, со всеми ее подпапками.
Reply




Реклама:
реклама

All times are GMT. The time now is 19:08.
Top

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.