Редактирование конфига из браузера

Статус
В этой теме нельзя размещать новые ответы.

Screamiz

Постоялец
Регистрация
12 Мар 2009
Сообщения
55
Реакции
15
В общем решил сделать небольшую админку для сайта, и у меня возникла проблема с редактированием файла config.php :confused:
Сделал форму с содержанием:
PHP:
<h2 class="style1">Голосование</h2>
<b>Отображение голосования 1-да, 0-нет:</b><br><input type="text" name="cfg_pool_show_"   size="50" value="<?=$cfg_pool_show?>"><br> <br>
<b>Файл для записи ip адресов:</b><br><input type="text" name="cfg_pool_file_"  size="50" value="<?=$cfg_pool_file?>"><br> <br>
<b>Количество ответов:</b><br><input type="text" name="cfg_pool_answers_"   size="50" value="<?=$cfg_pool_answers?>"><br> <br>
<b>Вопрос:</b><br><input type="text" name="cfg_pool_q_"   size="50" value="<?=$cfg_pool_q?>"><br><br>
<b>Ответ 1:</b><br><input type="text" name="cfg_pool1_"   size="50" value="<?=$cfg_pool1?>"><br><br>
<b>Ответ 2:</b><br><input type="text" name="cfg_pool2_"   size="50" value="<?=$cfg_pool2?>"><br><br>
<b>Ответ 3:</b><br><input type="text" name="cfg_pool3_"   size="50" value="<?=$cfg_pool3?>"><br><br>
<b>Ответ 4:</b><br><input type="text" name="cfg_pool4_"   size="50" value="<?=$cfg_pool4?>"><br><br>
<b>Ответ 5:</b><br><input type="text" name="cfg_pool5_"   size="50" value="<?=$cfg_pool5?>"><br><br>

Подскажите пожалуйста как сделать что бы если я изменил данные, при нажатие на кнопку "Сохранить" в файле config.php данные перезаписывались. :thenks:
 
Ты бы хоть формат конфига написал что ли.
 
я же написал config.php
 
Это расширение, а внутри файла то что содержится?
 
PHP:
$cfg_pool_show="1"; //Отображение голосование 1-да, 0-нет
$cfg_pool_file="pool00.php";  //Файл для записи ip адресов
$cfg_pool_answers="3";  //Количество ответов
$cfg_pool_q="Как вам наш сайт?";  //Вопрос
$cfg_pool1="Отличное";  //Вопрос 1 
$cfg_pool2="Нормально";  //Вопрос 2
$cfg_pool3="Так себе";  //Вопрос 3
 
Примерно так:

PHP:
<?php
$cfg = array();
foreach(preg_grep('~^cfg_pool\\w+_$~', array_keys($_REQUEST)) as $key)
	$cfg[] = sprintf('$%s = %s;', substr($key, 0, -1), var_export($_REQUEST[$key], true));
file_put_contents('config.php', "<?php\r\n\r\n".implode("\r\n", $cfg));

Проще делать serialize/unserialize
 
Что-то такое.

PHP:
<h2 class="style1">Голосование</h2> 

<?php
ini_set('display_errors', 0);

if ( $_POST['save'] )
{
    $cfg_pool_show = intval($_POST['cfg_pool_show_']);
	$cfg_pool_file = is_writable($_POST['cfg_pool_file_']) ? $_POST['cfg_pool_file_'] : '/path/to/default/file.txt';
	$cfg_pool_answers = intval($_POST['cfg_pool_answers_']);
	$cfg_pool_q = substr($_POST['cfg_pool_q_'], 0, 49);
	
	if ( !get_magic_quotes_gpc() ) {
		$cfg_pool_q = addslashes( $cfg_pool_q );
	}
	
	$cfg_pool_str = '';
	
	for ($i=1; $i <= $cfg_pool_answers; $i++) {
		$cfg_pool = substr($_POST['cfg_pool'.$i.'_'], 0, 49);
		
		if ( !get_magic_quotes_gpc() ) {
			$cfg_pool = addslashes( $cfg_pool );
		}
		
		$cfg_pool_str .= '$cfg_pool' . $i . ' = ' . "'$cfg_pool';\n";
	}
	
	$fp = fopen('./config.php', 'w+');
	
	$cfg = <<<CFG
<?php
\$cfg_pool_show = $cfg_pool_show;
\$cfg_pool_file = '$cfg_pool_file';
\$cfg_pool_answers = $cfg_pool_answers;
$cfg_pool_str
CFG;

fwrite($fp, $cfg);
fclose($fp)
?>
<b> Конфигурация сохранена!</b>
<br />
<pre><code>
<?php
echo htmlspecialchars($cfg);
?>
</code></pre>
<?php
}
else
{
?>
<form action='save_cnf.php' method='POST'>

<b>Отображение голосования 1-да, 0-нет:</b><br><input type="text" name="cfg_pool_show_"   size="50" value="<?=$cfg_pool_show?>"><br> <br> 
<b>Файл для записи ip адресов:</b><br><input type="text" name="cfg_pool_file_"  size="50" value="<?=$cfg_pool_file?>"><br> <br> 
<b>Количество ответов:</b><br><input type="text" name="cfg_pool_answers_"   size="50" value="<?=$cfg_pool_answers?>"><br> <br> 
<b>Вопрос:</b><br><input type="text" name="cfg_pool_q_"   size="50" value="<?=$cfg_pool_q?>"><br><br> 
<b>Ответ 1:</b><br><input type="text" name="cfg_pool1_"   size="50" value="<?=$cfg_pool1?>"><br><br> 
<b>Ответ 2:</b><br><input type="text" name="cfg_pool2_"   size="50" value="<?=$cfg_pool2?>"><br><br> 
<b>Ответ 3:</b><br><input type="text" name="cfg_pool3_"   size="50" value="<?=$cfg_pool3?>"><br><br> 
<b>Ответ 4:</b><br><input type="text" name="cfg_pool4_"   size="50" value="<?=$cfg_pool4?>"><br><br> 
<b>Ответ 5:</b><br><input type="text" name="cfg_pool5_"   size="50" value="<?=$cfg_pool5?>"><br><br>
<input type='submit' name='save' value='Сохранить'>
</form>
<?php
}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху