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

 PHP.SU

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


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

> Без описания
jenean
Отправлено: 16 Марта, 2012 - 14:30:30
Post Id


Новичок


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


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




Добрый день.
Имеется файл config.php, хочу сделать для него простую админку, чтоб через форму передавать в него значения. Например, имеется переменная $maxfilesize=25 и нужно эту цифру изменить. Сам не смог разобраться. Может кто подскажет, как это реализуется ?
 
 Top
DlTA
Отправлено: 16 Марта, 2012 - 14:53:47
Post Id



Постоянный участник


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


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




вынести параметры в ini файл,
а уже на него делать админку, с возможностью добавлять удалять и редактировать параметры
 
 Top
LIME
Отправлено: 16 Марта, 2012 - 14:58:56
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




скрипт парсит конфиг и формирует в цикле( по переменным конфга) хтмл с формой вида
PHP:
скопировать код в буфер обмена
  1. echo $var.'<input type="text" name="'.$var.'"/>';//где $var имя очередной переменной

принимая запрос он переписывает конфиг согласно пришедшим параметрам
что может быть проще
сначала это сделаете
потом подумаете как добавить удаление/добавление параметров
 
 Top
shabalin
Отправлено: 16 Марта, 2012 - 15:01:10
Post Id



Новичок


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


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




config.php:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. return array(
  4.     'maxfilesize' => 25,
  5.     // ... other settings
  6. );
  7.  
  8. ?>


admin.php:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. /**
  4.  * Подключаем конфиг (аналогичным образом подключаем конфиг в других скриптах)
  5.  */
  6. $config = include 'config.php';
  7.  
  8. // ... выводим HTML-форму для редактирования, возможно защищаем доступ паролем (отдельная тема)
  9. // примерно так:
  10. // foreach ($config as $key => $value){
  11. //     echo '<p>';
  12. //     echo $key . ': ';
  13. //     echo '<input type="text" value="' . htmlspecialchars($value) . '" />';
  14. //     echo '</p>';
  15. // }
  16.  
  17. if (getenv('REQUEST_METHOD') == 'post'){
  18.     if (isset($_POST['maxfilesize'])){
  19.         $config['maxfilesize'] = (int)$_POST['maxfilesize'];
  20.     }
  21.     // ... обновляем другие настройки
  22.  
  23.     $newconfig = '<?PHP return ' . var_export($config, true) . '; ?>';
  24.     file_put_contents('config.php', $newconfig);
  25. }
  26.  
  27. ?>

(Отредактировано автором: 16 Марта, 2012 - 15:21:08)



-----
Winginx, локальный сервер для разработчиков PHP, Node.js, MongoDB и MySQL
http://winginx.ru/
 
 Top
LIME
Отправлено: 16 Марта, 2012 - 15:07:44
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




имхо конфиг всеже лучше сделать .ini
обработка входящих строковых значений это конечно хорошо и надо
но думаю это будет не лишним и не паранойя ))
(Добавление)
jenean а для разбора .ini файла существуют специальные ф-ции

(Отредактировано автором: 16 Марта, 2012 - 15:10:14)

 
 Top
shabalin
Отправлено: 16 Марта, 2012 - 15:09:40
Post Id



Новичок


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


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




LIME пишет:
имхо конфиг всеже лучше сделать .ini


Можно, и ini. Это кому как нравится. Мой вариант вполне жизнеспособен )

К тому же разобрать ini-файл - вобще не проблема, собрать же, как правило, у новичков вызывает сложности.

Еще, минус у ini в том, что значения не могут быть с переносами строк или иметь множественную вложенность. Мой конфиг лишен этих недостатков Улыбка

(Отредактировано автором: 16 Марта, 2012 - 15:13:20)



-----
Winginx, локальный сервер для разработчиков PHP, Node.js, MongoDB и MySQL
http://winginx.ru/
 
 Top
LIME
Отправлено: 16 Марта, 2012 - 15:12:43
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




shabalin не спорю...но предосторожность лишней не бывает))
к томуже это добавит переносимости и расширяемости...можно конфиги в разные папки класть и не переживать в хтакццесс забудешь запретить
 
 Top
shabalin
Отправлено: 16 Марта, 2012 - 15:14:47
Post Id



Новичок


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


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




LIME пишет:
можно конфиги в разные папки класть и не переживать в хтакццесс забудешь запретить


Если запросить site.ru/config.php из браузера, то в ответ будет пустой экран Улыбка он ничего не выводит пользователю, а вот запрос site.ru/config.ini - выложит все на блюдечке.


-----
Winginx, локальный сервер для разработчиков PHP, Node.js, MongoDB и MySQL
http://winginx.ru/
 
 Top
LIME
Отправлено: 16 Марта, 2012 - 15:27:11
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




shabalin пишет:
Если запросить site.ru/config.php из браузера, то в ответ будет пустой экран
это если не получить доступ к админке...всеже
согласен само себе капец но если такоооой шелл получить это просто айм'гад
shabalin пишет:
а вот запрос site.ru/config.ini - выложит все на блюдечке.
ну это одним корневым хтакццесс запрещается и все...можно забыть))

(Отредактировано автором: 16 Марта, 2012 - 15:28:38)

 
 Top
shabalin
Отправлено: 16 Марта, 2012 - 15:29:58
Post Id



Новичок


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


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




LIME пишет:
это если не получить запрос к админке...всеже
согласен само себе капец но если такой шелл получить это просто айм'гад


Защитить админку - это отдельный вопрос Улыбка над которым нужно думать основательно, а вот если shell-доступ заполучить, то и не только config.php или config.ini можно разворошить, но и rm -rf /home/site.ru Улыбка


-----
Winginx, локальный сервер для разработчиков PHP, Node.js, MongoDB и MySQL
http://winginx.ru/
 
 Top
Мелкий Супермодератор
Отправлено: 16 Марта, 2012 - 15:41:15
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




DlTA пишет:
вынести параметры в ini файл,

+1
К тому же, самый быстрый способ по времени обработки. http://habrahabr[dot]ru/blogs/php/112402/

shabalin пишет:
а вот запрос site.ru/config.ini - выложит все на блюдечке.

0) В пределах document_root вообще никаких конфигов (и, в идеале, кода, кроме фронт-контроллера) быть не должно.
1) Файлик с именем config.ini.php и первой строкой:

Лишён этого недостатка полностью.


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 16 Марта, 2012 - 15:48:04
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




shabalin пишет:
а вот если shell-доступ заполучить
при получения доступа к админке ваш конфиг и превращается в шелл
согласен можно обработать входящие параметры
но зачем если можно их хранить в не запускаемом файле
согласен ситуация крайне притянута за уши но при прочих равных почему не подстраховаться?
Мелкий пишет:
1) Файлик с именем config.ini.php и первой строкой:
а зачем вообще не config.ini?
зачем php добавлять?
 
 Top
shabalin
Отправлено: 16 Марта, 2012 - 16:00:58
Post Id



Новичок


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


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




Мелкий пишет:
0) В пределах document_root вообще никаких конфигов (и, в идеале, кода, кроме фронт-контроллера) быть не должно.


Кажется, дискуссия разрослась Улыбка с этим я с вами согласен, в своих проектах у меня в public_html кроме статики нет вобще ничего, но, как я понимаю, топик-стартер - новичек, для начала понять принцип ему и этого хватит.

Отмечу, кстати, что я нигде не указывал, что config.php хранится в паблике, путь к нему - на совести ТС.
(Добавление)
LIME пишет:
согласен само себе капец но если такоооой шелл получить это просто айм'гад

Не сразу вас понял, вы имели в виду, что config.php - это сам по себе уже шелл. На что могу возразить - через мой скрипт засунуть исполняемый код в config.php не представляется возможным в принципе.

(Отредактировано автором: 16 Марта, 2012 - 16:02:16)



-----
Winginx, локальный сервер для разработчиков PHP, Node.js, MongoDB и MySQL
http://winginx.ru/
 
 Top
LIME
Отправлено: 16 Марта, 2012 - 16:33:39
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




shabalin пишет:
не представляется возможным в принципе.
да...не вник в запись(не сплю уже 25 часов...бессоница...потеря концентрации Не понял )
но тогда не понимаю какое преимущество дает реализация конфига в виде пхп? почему не обычный ini?он чемто хуже?
 
 Top
jenean
Отправлено: 16 Марта, 2012 - 18:07:23
Post Id


Новичок


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


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




Вот конфиг:


CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2.  
  3. $scripturl = "http://localhost/script/";
  4. //// the URL to this script with a trailing slash
  5.  
  6. $adminpass = "admin";
  7.  
  8.  
  9. $maxfilesize = 25;
  10. //// the maximum file size allowed to be uploaded (in megabytes)
  11.  
  12. $downloadtimelimit = 60;
  13. //// time users must wait before downloading another file (in minutes)
  14.  
  15. $uploadtimelimit = 30;
  16. //// time users must wait before uploading another file (in minutes)
  17.  
  18. $nolimitsize = 20;
  19. //// if a file is under this many megabytes, there is no time limit
  20.  
  21. $deleteafter = 30;
  22. //// delete files if not downloaded after this many days
  23.  
  24. $downloadtimer = 0;
  25. //// length of the timer on the download page (in seconds)
  26.  
  27. $enable_filelist = true;
  28. //// allows users to see a list of uploaded files. set to false to disable
  29.  
  30. //$allowedtypes = array("txt","gif","jpg","jpeg");
  31. //// remove the //'s from the above line to enable file extention blocking
  32. //// only file extentions that are noted in the above array will be allowed
  33.  
  34. $emailoption = true;
  35. //// set this to true to allow users to email themselves the download links
  36.  
  37. $passwordoption = true;
  38. //// set this to true to allow users to password protect their uploads
  39.  
  40. $descriptionoption = false;
  41. //// set this to true to disable the description field ?>
  42.  



Я делаю форму (допустим admin.php) через которую хочу менять эти значения. Как реализовать это дело предельно просто ? (если возможно с комментариями, )
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB