FeDeRaL

Мужчина
Статус
  • Активный

Последние сообщения FeDeRaL

  • PHP для идиотовЗапись данных в файл. • 8 июня 2011 г. 17:31

    Вопрос решён!!!
    Вопрос решён!!!
  • PHP для идиотовЗапись данных в файл. • 8 июня 2011 г. 14:50

    Здравствуйте! В ходе написания дипломного проекта(функции позволяющей записывать данные) у меня возникла проблема. Пожалуй начну с описания того что я имею:1) CMS с моделью MVC, поэтому для записи строки в файл есть 5 основных файлов: model.php, controller.php, vstring.php, index.php и strings.tx...
    Здравствуйте! В ходе написания дипломного проекта(функции позволяющей записывать данные) у меня возникла проблема.



    Пожалуй начну с описания того что я имею:

    1) CMS с моделью MVC, поэтому для записи строки в файл есть 5 основных файлов: model.php, controller.php, vstring.php, index.php и strings.txt.

    2) index.php главная страница админ. панели, в зависимости от URL генерирует в себя файлы ВИДа. Например: http://my-cms.loc/adm/index.php?page=strings - В данном случае внутрь кода index.php подключается страничка vstring.php, написанная мною для возможности редактирования строки, которая хранится в файле strings.txt.

    3) vstring.php - содержит в себе форму, на которой есть ПОЛЕ ДЛЯ ВВОДА СТРОКИ и КНОПКУ(submit), отправляет данные методом POST.



    Суть проблемы:

    Не записывает данные в файл. Не возникает никакой ошибки. Похоже на пляски с бубном.



    ИСХОДНЫЙ КОД:

    //model.php (Файл Модель)
    class McreateEdit extends Db {

    function file_data($post) {
    $text = $post['line'];
    return $text;
    }
    }

    //controller.php (Файл Контроллер)
    class CcreateEdit extends McreateEdit {

    function file_write($post) {
    $f = $this->file_data($post);
    $file = "strings.txt";
    file_put_contents($file,$f);
    //fopen('strings.txt',w+);
    //fwrite(
    }
    }
    $vcreateedit = new CcreateEdit();

    //vstring.php (Файл Вида - код формы, прочий Html код я откинул)
    <form method = "post">
    <table border="0" cellpadding="0" cellspacing="0" id="id-form">
    <tr>
    <th valign="top">Текст бегущей строки:</th> <br />
    <td><input type="text" name="line" /></td>
    </tr>
    <tr>
    <td valign="top">
    <input type="submit" value="" class="form-submit" />
    <a href='?page=start'><input type="" value="" class="form-cancel" /></a>
    </td>
    </tr>
    </table>
    </form>

    //index.php (index Файл Админки - (прочий Html код я откинул) генерирует в себя
    файлы ВИДа)
    <?php
    require_once "../config/config.php";
    require_once "../controllers/controller.php";
    ?>

    <div class="nav-divider">&nbsp;</div>

    <ul class="select"><li><a><b>Бегущая строка</b><!–[if IE 7]><!–></a><!–<![endif]–>
    <!–[if lte IE 6]><table><tr><td><![endif]–>
    <div class="select_sub">
    <ul class="sub">
    <li><a href="?page=strings">Редактировать текст</a></li>
    <!–<li><a href="#nogo">Clients Details 2</a></li>
    <li><a href="#nogo">Clients Details 3</a></li>–>

    </ul>
    </div>

    <?php
    if($_GET['page'] == 'strings') {
    if($_POST) {
    $vcreateedit->file_write($_POST);
    require_once "../views/vstart.php";
    } else {
    require_once "../views/vstring.php";}
    }
    ?>


    P.S. - Пробовал записывать строку в файл на отдельном PHP файле - успешно получается. Начатестировать функцию - даже строку писал свою, не из формы (POST), всё равно не записывает.

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

    В общем помогите разобраться!!! Перерыл все возможные статьи в нете. Ничего не помогает!!!

    А ведь это последняя функция и дипломка готова…