Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Запрет на выполнение оператора на продакшн сервере

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
koras
Отправлено: 17 Июня, 2013 - 16:46:32
Post Id



Частый гость


Покинул форум
Сообщений всего: 224
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




Глупый конечно вопрос ))

Но думаю, как бы мне на продашн сервере запретить выполнение только одного оператора на одном из сайтов, скажем оператора print_r

В голову приходит только такой код

PHP:
скопировать код в буфер обмена
  1.  
  2. # config.php
  3. if($_SERVER['HTTP_HOST'] =='prod.host' || $_SERVER['HTTP_HOST'] =='www.prod.host'){
  4. $developer = false;
  5. }
  6.  



PHP:
скопировать код в буфер обмена
  1.  
  2. # script.php
  3. if($developer == true){
  4. print_r($array);
  5. var_dump($value);
  6.  
  7. }
  8.  

(Отредактировано автором: 17 Июня, 2013 - 16:49:12)

 
 Top
DelphinPRO
Отправлено: 17 Июня, 2013 - 16:59:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




я бы не назвал такой подход правильным.
Определите переменную "mode" в конфигурационном файле.
На хостинге выставляйте ее в "production" на сервере разработки в "development"
Кроме того можно сделать отдельную конфигурацию для отладки и поместить ее скажем в подкаталог debug каталога с настройками. И при загрузке конфига проверять, если конфигурационный файл в debug присутствует, то грузить его, иначе продакшн-настройки. Это более гибко, чем привязываться в имени хоста.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
EuGen Администратор
Отправлено: 17 Июня, 2013 - 17:06:20
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Запретить - что имеется ввиду? Игнорировать запуск, либо выводить ошибку? Если второе - то глобально можно определить в php.ini, например. Но это радикальный подход, я бы не советовал.
Вообще, нужно определять сервер, исходя из конфигурационного файла (см. выше подсказку), а не исходя из имени - а уже далее, определив имя секции конфигурационного файла, определять, к какому типу (продуктовый или стейджинг) она относится.
Пример функции определения секции:
PHP:
скопировать код в буфер обмена
  1. function getSection($rgConfig, $bIsCron=false)
  2. {
  3.     $part=$bIsCron?'cron':'web';
  4.     if(!array_key_exists($part, $rgConfig))
  5.     {
  6.         return false;
  7.     }
  8.     $rgConfig   = $rgConfig[$part];
  9.     if(!array_key_exists(php_uname("n"), $rgConfig))
  10.     {
  11.         return false;
  12.     }
  13.     $rgConfig   = $rgConfig[php_uname("n")];
  14.     if(!is_array($rgConfig))
  15.     {
  16.         return $rgConfig;
  17.     }
  18.     else
  19.     {
  20.         if(PHP_OS=='WINNT')
  21.         {
  22.             return $rgConfig[dirname(realpath(__FILE__))];
  23.         }
  24.         else
  25.         {
  26.             return $rgConfig[fileinode(dirname(realpath(__FILE__)))];
  27.         }
  28.     }
  29. }

- в данном случае есть ещё проверка, какое окружение используется - веб (фронденд) или крон (бэкенд). В $rgConfig содержится информация по секциям и серверам.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB