ФорумПрограммированиеPHP для идиотов → Запись данных в файл.

Запись данных в файл.

  • FeDeRaL

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 8 июня 2011 г. 6:50

    Здравствуйте! В ходе написания дипломного проекта(функции позволяющей записывать данные) у меня возникла проблема.



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

    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 = &quot;post&quot;>
    <table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; id=&quot;id-form&quot;>
    <tr>
    <th valign=&quot;top&quot;>Текст бегущей строки:</th> <br />
    <td><input type=&quot;text&quot; name=&quot;line&quot; /></td>
    </tr>
    <tr>
    <td valign=&quot;top&quot;>
    <input type=&quot;submit&quot; value=&quot;&quot; class=&quot;form-submit&quot; />
    <a href=&#39;?page=start&#39;><input type=&quot;&quot; value=&quot;&quot; class=&quot;form-cancel&quot; /></a>
    </td>
    </tr>
    </table>
    </form>

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

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

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

    </ul>
    </div>

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


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

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

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

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

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 8 июня 2011 г. 9:31, спустя 2 часа 40 минут 29 секунд

    Вопрос решён!!!
  • Sinkler

    Сообщения: 9658 Репутация: N Группа: в ухо

    Spritz 8 июня 2011 г. 9:32, спустя 1 минуту 10 секунд

    не за что
  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz 8 июня 2011 г. 9:34, спустя 1 минуту 36 секунд

    проверяй наличие файла is_file()
    перед записью. если функция возвратит false значит пути у тебя кривые
  • Hristina

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 18 августа 2012 г. 13:46, спустя 437 дней 4 часа 12 минут

    ты тормозное животное! Возможно, это твоё единственное преимущество?..

Пожалуйста, авторизуйтесь, чтобы написать комментарий!