Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Суперглобальные переменные!
 
 автор: russjura   (23.11.2004 в 15:13)   письмо автору
 
 

Добрый день! Уже довольно давно повелось! что register_globals на хостинг серверах включены. Но недавно столкнулся с проблеммой! что их хостинг-провайдеры включать не хотят. Прочитал статью! На вашем сервере об этом!
И меня вот теперь стал мучать вопрос!
Как можно автоматически создать таковые переменные! возможно при помощи классов! Подскажите плиз! или какую-нить другую реализацию!

Оч. уж много переменных! которые надо проверять!

   
 
 автор: elenaki   (23.11.2004 в 15:23)   письмо автору
 
   для: russjura   (23.11.2004 в 15:13)
 

### register_globals = off ### +++
//HTTP_GET_VARS
while (list($key, $val) = @each($HTTP_GET_VARS)) {$GLOBALS[$key] = $val;}
//HTTP_POST_VARS
while (list($key, $val) = @each($HTTP_POST_VARS)) {$GLOBALS[$key] = $val;}
//HTTP_POST_FILES
while (list($key, $val) = @each($HTTP_POST_FILES)) {$GLOBALS[$key] = $val;}
//$HTTP_SESSION_VARS
while (list($key, $val) = @each($HTTP_SESSION_VARS)) {$GLOBALS[$key] = $val;}
### register_globals = off ### ---

   
 
 автор: cheops   (23.11.2004 в 15:38)   письмо автору
 
   для: russjura   (23.11.2004 в 15:13)
 

Хм... на самом деле можно достаточно просто всё перевести если в начале скрипта поместить код вроде:
<?php
  $id 
$_GET['id'];
  
$var $_GET['var'];
  
$ttt $_GET['ttt'];
?>

Если этого недостаточно, то можно написать код по переводу всех переменных из суперглобального массива в обычные переменные, например, для $_GET:
<?php
foreach($_GET as $key=>$var)
{
  eval(
"\${$key} = '$var';");
}
?>

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

   
 
 автор: Artem S.   (23.11.2004 в 18:43)   письмо автору
 
   для: russjura   (23.11.2004 в 15:13)
 

Видел где то такое:
<?
if (!ini_get("register_globals")) {
    
import_request_variables('GPC');
}
?>

G - GET
P - POST
C - COOKIE

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования