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

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

  • FeDeRaL

    Сообщения: 2 Репутация: 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 = "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 не городя километры лишнего кода. Но и там тоже не работает запись, я уже думаю может быть это всё из-за того что данный файл является подключаемым, вот и не пашет эта чёртова функция записи в файл.

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

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

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

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

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

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

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

    не за что
  • Faster

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

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

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

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

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

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

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