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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Starlord
Отправлено: 08 Ноября, 2010 - 20:33:15
Post Id



Новичок


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


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




В общем, проблема такова:

Имеется файл config.php в нем хранятся различные значения, будь-то пароль от бд, логин и прочие значения.

Нужно:
Как-то сделать чтобы этот конфиг можно было редактировать запустив форму через админку... Вот. Растерялся


-----
Спасибо сообществу php.su за помощь...
 
 Top
DeepVarvar Супермодератор
Отправлено: 08 Ноября, 2010 - 20:45:06
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Формат какой? На каждой строке "сладкая парочка" имя = значение???
 
 Top
Starlord
Отправлено: 08 Ноября, 2010 - 20:51:39
Post Id



Новичок


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


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






Вот так.


-----
Спасибо сообществу php.su за помощь...
 
 Top
DeepVarvar Супермодератор
Отправлено: 08 Ноября, 2010 - 21:09:16
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Щас быстро накидаю ака "смысл"
PHP:
скопировать код в буфер обмена
  1. $settings = file('config.php');
  2. echo '<form act.... method.......>';
  3. foreach ($settings as $key => $val) {
  4.     if (preg_match("",$val................
  5.         echo '<input type="text" name="'.$kkey.'" value="'.$vval.'" />';
  6.     }


Вывод шота типа в таком вот духе....
Ну а потом только перезаписать контент файла...
 
 Top
Starlord
Отправлено: 08 Ноября, 2010 - 21:12:12
Post Id



Новичок


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


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




Блин, сложная задача...
(Добавление)
Ну что ж, попробую разобраться)


-----
Спасибо сообществу php.su за помощь...
 
 Top
OrmaJever
Отправлено: 08 Ноября, 2010 - 21:14:54
Post Id



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


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


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




А зачем конфиг редактировать? Конфиг создаётся один раз. А если нужно часто редактировать то тут можно бд воспользоватся


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Roler
Отправлено: 08 Ноября, 2010 - 21:17:00
Post Id



Посетитель


Покинул форум
Сообщений всего: 458
Дата рег-ции: Авг. 2008  
Откуда: Россия


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




У меня это так выглядит:

PHP:
скопировать код в буфер обмена
  1. <?
  2. if(isset($_POST['sitename']))
  3. {
  4.         $setfile = fopen("settings.php","w");
  5.         $content = "<?\n";
  6.         $content .= "\$conf = array(\n";
  7.         $content .= "'sitename' =>       '".$_POST['sitename']."',\n";
  8.         $content .= "'lang' => '".$_POST['lang']."',\n";
  9.         $content .= ");\n";
  10.         $content .= '?>';
  11.         fputs($setfile,$content);
  12.         fclose($setfile);
  13. }
  14. ?>



А на странице выведены все настройки в различных edit'ах. Нажимаем отправить - происходит полная перезапись.

(Отредактировано автором: 08 Ноября, 2010 - 21:21:35)

 
 Top
Uchkuma
Отправлено: 08 Ноября, 2010 - 21:28:52
Post Id



Участник


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


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




А serialize зачем придумали? ИМХО, для часторедактируемых конфигов самое то.
 
 Top
DeepVarvar Супермодератор
Отправлено: 08 Ноября, 2010 - 21:40:25
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Ээээ... ))))))
Ну да ладно, писнул тут на коленке:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. //header('Content-Type: text/html; charset=utf-8');
  3. // для задания строковых значений (чтоб регулярка поняла) ЮЗАТЬ ОДИНОЧНЫЕ КАВЫЧКИ!!!
  4. // например $host = 'localhost'; а для числовых $var1 = 9;
  5. if (isset($_GET['go'])) {
  6.         // тут собираем все "геты" и пишем в файл
  7.         }
  8. $settings = file('config.php');
  9. echo '<form action="test.php" method="get">';
  10. foreach ($settings as $key => $string) {
  11.         if (preg_match("/([a-z0-9]{1,16}) = [']{0,1}([a-z0-9]{1,64})[']{0,1};/",$string,$match)) {
  12.                 echo '<input type="text" name="'.$match[1].'" value="'.$match[2].'" /><br />';
  13.                 }
  14.         }
  15. echo '<input type="submit" name="go" value=" Понеслась! " /></form>';
  16. ?>
 
 Top
Roler
Отправлено: 08 Ноября, 2010 - 21:42:09
Post Id



Посетитель


Покинул форум
Сообщений всего: 458
Дата рег-ции: Авг. 2008  
Откуда: Россия


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




Никто не говорит "часто".
Лучше один раз написать код для перезаписи, чем при каждой загрузке скрипта вытаскивать файл, расшифровывать и запихивать в массив.
 
 Top
Starlord
Отправлено: 09 Ноября, 2010 - 12:09:39
Post Id



Новичок


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


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




Эм, и как же мне собратьвсе геты и записать их в файл? Не понял


-----
Спасибо сообществу php.su за помощь...
 
 Top
DeepVarvar Супермодератор
Отправлено: 09 Ноября, 2010 - 12:30:00
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




foreach ($_GET as $name => $value) {bla bla bla собираем строку для записи в файл} например
 
 Top
Starlord
Отправлено: 09 Ноября, 2010 - 12:41:22
Post Id



Новичок


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


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




Цитата:
{bla bla bla собираем строку для записи в файл}

Я спрашивал как раз-таки насчет этого Улыбка


-----
Спасибо сообществу php.su за помощь...
 
 Top
DeepVarvar Супермодератор
Отправлено: 09 Ноября, 2010 - 13:10:29
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Внутри того цикла foreach собираем строку:
$putstring .= '$'.$name.' = ';
if (is_int($value)) $putstring .= $value.";\n";
else { $putstring .= "'".$value."';\n" }

А вы сами хоть чуть чуть не желаете подумать???
 
 Top
Starlord
Отправлено: 09 Ноября, 2010 - 13:17:19
Post Id



Новичок


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


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




Я думаю, думаю, только скил пока маловат Улыбка


-----
Спасибо сообществу php.su за помощь...
 
 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