За последние 24 часа нас посетили 215909 программистов и 2199 роботов. Сейчас ищут 1789 программистов ...

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

Тема в разделе "PHP для новичков", создана пользователем oleha, 28 окт 2009.

  1. oleha

    oleha Активный пользователь

    С нами с:
    21 окт 2009
    Сообщения:
    39
    Симпатии:
    0
    Адрес:
    Ростов-на-Дону
    Приветствую, господа программисты.
    Очень нужна помощь. Размещаю на сайте анкету, нужно чтобы результаты записывались в файл. И вроде бы все ровно, но при нажатии кнопки вылазит ошибка:Notice: Undefined variable: subjbody in C:\apache\localhost\www\anketa\test\index.php on line 95
    Хотя все результаты в указанный файл записываются.
    Фрагмент кода:
    $filenamecom="test.txt";
    $filecom = fopen($filenamecom, "a+");
    flock($filecom,LOCK_EX);
    $subjbody=$subjbody.date('d').":".date('m').":".date('Y')." ".date('H').":".date('i').":".date('s').chr(10);$subjbody=$subjbody."Обращения: ".$_POST['q1'].chr(10);
    $subjbody=$subjbody."Считаете ли Вы необходимым читать краевые/ местные издания? ".$_POST['q2'].chr(10);
    $subjbody=$subjbody."==============================================".chr(10);
    fwrite($filecom, $subjbody);
    flock($filecom,LOCK_UN);
    fclose($filecom);

    Подскажите, где ошибка...
     
  2. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    $subjbody инициализируй до ее использования.

    $subjbody = '';
     
  3. oleha

    oleha Активный пользователь

    С нами с:
    21 окт 2009
    Сообщения:
    39
    Симпатии:
    0
    Адрес:
    Ростов-на-Дону
    cпасибо за оперативность, помогло
     
  4. oleha

    oleha Активный пользователь

    С нами с:
    21 окт 2009
    Сообщения:
    39
    Симпатии:
    0
    Адрес:
    Ростов-на-Дону
    А вот еще вопрос:если я использую для этой формы radio, то с записью в файл вводимого значения все понятно(можно выбрать только одно значение). Но сейчас мне нужно добавить элемент checkbox, т.е. подразумевается выбор нескольких значений. Как будет выглядеть код, записывающий данные из checkbox?
    Привожу html-код для элемента checkbox:
    <li><span class="style2">Из каких источников Вы чаще всего получаете информацию, необходимую для решения, возникающих в ходе работы, задач? (не более 3-х вариантов ответа)</span><br>
    <label>
    <input type="checkbox" name="q1" value="TV">
    <span class="style1">TV</span></label>
    <span class="style1"><br>
    <label>
    <input type="checkbox" name="q1" value="Интернет (бухгалтерские сайты, форумы)">
    Интернет (бухгалтерские сайты, форумы)</label>
    <br>
    <label>
    <input type="checkbox" name="q1" value="Бухгалтерские газеты/журналы">
    Бухгалтерские газеты/журналы</label>
    <br>
    <label>
    <input type="checkbox" name="q1" value="Бухгалтерские семинары">
    Бухгалтерские семинары</label>
    <br>
    <label>Из других источников
    <input name="q1" type="text" size="50" maxlength="100">
    </label>
    </span>
    </li>

    Такая запись не прокатила:$subjbody="Источники информации: ".$_POST['q1'].chr(10);
     
  5. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    name="mycheckbox[]"

    в php скрипте это будет массив $_POST['mycheckbox']
     
  6. oleha

    oleha Активный пользователь

    С нами с:
    21 окт 2009
    Сообщения:
    39
    Симпатии:
    0
    Адрес:
    Ростов-на-Дону
    т.е. в html коде тaк:
    <input type="checkbox" name="mycheckbox[1]" value="TV">
    <span class="style1">TV</span></label>
    <span class="style1"><br>
    <label>
    <input type="checkbox" name="mycheckbox[2]" value="Интернет (бухгалтерские сайты, форумы)">
    Интернет (бухгалтерские сайты, форумы)</label>
    <br>
    <label>
    <input type="checkbox" name="mycheckbox[3]" value="Бухгалтерские газеты/журналы">
    Бухгалтерские газеты/журналы</label>

    в php скрипте так:
    $subjbody="Источники информации: ".$_POST['mycheckbox'].chr(10);

    что-то у меня не работает)))
     
  7. oleha

    oleha Активный пользователь

    С нами с:
    21 окт 2009
    Сообщения:
    39
    Симпатии:
    0
    Адрес:
    Ростов-на-Дону
    в текстовом файле пишет:
    Источники информации: Array
     
  8. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    А я что-то другое писал?

    Массивом могут быть даже отдельные элементы $arr = array(1 => array(1,2), 2 => 2);

    Это значит, что для записи тебе придется привести его к строке.

    Например implode(',', $arr[1]);
     
  9. running-frag

    running-frag Активный пользователь

    С нами с:
    4 сен 2008
    Сообщения:
    65
    Симпатии:
    0
    Сделай, и сам увидешь всё (при условии что checked):
    PHP:
    1.  
    2. print "<pre>";
    3. print_r ($_POST["mycheckbox"]);
    4. print "</pre>";
    5.  
    А дальше уже разбивай как тебе удобно. (пост выше)
     
  10. oleha

    oleha Активный пользователь

    С нами с:
    21 окт 2009
    Сообщения:
    39
    Симпатии:
    0
    Адрес:
    Ростов-на-Дону
    спасибо, буду пробовать...
    p.s. Ребят, если кажется, что я задаю тупые вопросы, почитайте мой предыдущий топик http://www.php.ru/forum/viewtopic.php?t=21845&highligре=
    и вы меня поймете)))
     
  11. oleha

    oleha Активный пользователь

    С нами с:
    21 окт 2009
    Сообщения:
    39
    Симпатии:
    0
    Адрес:
    Ростов-на-Дону
    Мужики, что-то не получается разобраться с этими массивами.
    Я попробую написать другими словами... Допустим есть код:
    HTML:
    1.  
    2. <form action="" method=post>
    3. <input type=checkbox name='mycheckbox[]' value=1>
    4. <input type=checkbox name='mycheckbox[]' value=2>
    5. <input type=checkbox name='mycheckbox[]' value=3>
    6. <input type=submit name=submit value='Post'>
    7. </form>
    8.  
    Как будет выгледеть код на php, записывающий выбранные chekbox в текстовый файл?
    Прошу ответить, мне это очень важно для понимания системы.
     
  12. running-frag

    running-frag Активный пользователь

    С нами с:
    4 сен 2008
    Сообщения:
    65
    Симпатии:
    0
    Ты сделай какую нить страницу типа index.php и там напиши :

    PHP:
    1.  
    2. <form action="index.php" method="post">
    3. <input type="checkbox" name='mycheckbox[one]' value="1">
    4. <input type="checkbox" name='mycheckbox[two]' value="2">
    5. <input type="checkbox" name='mycheckbox[three]' value="3">
    6. <input type="submit" name="submit" value="post">
    7. </form>
    8.  
    9. <?
    10. print "POST:<br>";
    11. print "<pre>";
    12. print_r ($_POST);
    13. print "</pre>";
    14.  
    15. print "нужный нам массив checkbox:<br >";
    16. print "<pre>";
    17. print_r ($_POST["mycheckbox"]);
    18. print "</pre>";
    19. ?>
    Поиграйся с этим. Блин как проще обьяснить я даже не знаю...
     
  13. oleha

    oleha Активный пользователь

    С нами с:
    21 окт 2009
    Сообщения:
    39
    Симпатии:
    0
    Адрес:
    Ростов-на-Дону
    ок, спасибо