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

Тема в разделе "PHP", создана пользователем Screamiz, 1 авг 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Screamiz

    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:
     
  2. wtf?!

    wtf?! Постоялец

    Регистр.:
    29 июл 2009
    Сообщения:
    53
    Симпатии:
    9
    Ты бы хоть формат конфига написал что ли.
     
  3. Screamiz

    Screamiz Постоялец

    Регистр.:
    12 мар 2009
    Сообщения:
    55
    Симпатии:
    15
    я же написал config.php
     
  4. wtf?!

    wtf?! Постоялец

    Регистр.:
    29 июл 2009
    Сообщения:
    53
    Симпатии:
    9
    Это расширение, а внутри файла то что содержится?
     
  5. Screamiz

    Screamiz Постоялец

    Регистр.:
    12 мар 2009
    Сообщения:
    55
    Симпатии:
    15
    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
     
  6. antn

    antn Постоялец

    Регистр.:
    11 июл 2009
    Сообщения:
    104
    Симпатии:
    30
    Примерно так:

    PHP:
    <?php
    $cfg 
    = array();
    foreach(
    preg_grep('~^cfg_pool\\w+_$~'array_keys($_REQUEST)) as $key)
        
    $cfg[] = sprintf('$%s = %s;'substr($key0, -1), var_export($_REQUEST[$key], true));
    file_put_contents('config.php'"<?php\r\n\r\n".implode("\r\n"$cfg));
    Проще делать serialize/unserialize
     
    Screamiz нравится это.
  7. wtf?!

    wtf?! Постоялец

    Регистр.:
    29 июл 2009
    Сообщения:
    53
    Симпатии:
    9
    Что-то такое.

    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_'], 049);
        
        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.'_'], 049);
            
            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
    }
     
    Screamiz нравится это.
Статус темы:
Закрыта.