За последние 24 часа нас посетили 22829 программистов и 1246 роботов. Сейчас ищут 776 программистов ...

Создание скрипта для обработки опроса

Тема в разделе "Вопросы от блондинок", создана пользователем greenhed, 2 июн 2006.

  1. greenhed

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

    С нами с:
    2 июн 2006
    Сообщения:
    3
    Симпатии:
    0
    Очень прошу меня извинить, за такую блондинчатость
    Проблема в следующем: нужен скрипт для обработки следующей формы


    "<form>
    <input type="radio" value="V1" checked name="g1" >
    <span lang="ru">1 вариант</span><br>

    <input type="radio" value="V2" checked name="g1" >
    <span lang="ru">2 вариант</span><br>

    <input type="radio" value="V3" checked name="g1" >
    <span lang="ru">3 вариант</span><br>

    <input type="radio" value="V4" checked name="g1" >
    <span lang="ru">4 вариант</span><br>

    <input type="radio" value="V5" checked name="g1" >
    <span lang="ru">5 вариант</span><br>

    <input type="submit" value="проголосовать" name="g4"></font>
    </form>"



    после отправки результат должен добавляться в файлик ну скажем log.txt в соответствующую строку.

    Подскажите пхпшный код или по крайней мере в каком направлении копать. Я и сам докопаюсь, как это сделать, но нужно время, а результат мне нужен в ближайшее время
     
  2. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    PHP:
    1. <?php
    2. if (!empty($_POST['g1']))
    3. {
    4.     if (!file_exists('log.txt'))
    5.     {
    6.         for ($i=1; $i<=5; $i++) $votes['V' . $i] = 0;
    7.     }
    8.     else
    9.     {
    10.         $f = file('log.txt');
    11.         foreach ($f as $str)
    12.         {
    13.             $str = trim($str);
    14.             list($k, $val) = explode(':', $str);
    15.             $votes[$k] = $val;
    16.         }
    17.     }
    18.     if (isset($votes[$_POST['g1']]))
    19.     {
    20.         $votes[$_POST['g1']]++;
    21.         $f = fopen('log.txt', 'w');
    22.         foreach ($votes as $k => $val) fwrite($f, "$k:$val\n");
    23.         fclose($f);
    24.         print 'Вы проголосовали за ' . $_POST['g1'] . '. Спасибо.';
    25.     }
    26.     else
    27.     {
    28.         print 'Возможно, произошла ошибка...';
    29.     }
    30. }
    31. else
    32. {
    33.     print '<form action="" method="post">
    34. <input type="radio" value="V1" checked name="g1" />
    35. <span lang="ru">1 вариант</span><br />
    36.  
    37. <input type="radio" value="V2" name="g1" />
    38. <span lang="ru">2 вариант</span><br />
    39.  
    40. <input type="radio" value="V3" name="g1" />
    41. <span lang="ru">3 вариант</span><br />
    42.  
    43. <input type="radio" value="V4" name="g1" />
    44. <span lang="ru">4 вариант</span><br />
    45.  
    46. <input type="radio" value="V5" name="g1" />
    47. <span lang="ru">5 вариант</span><br />
    48.  
    49. <input type="submit" value="проголосовать" name="g4" />
    50. </form>';
    51. }
    52. ?>
     
  3. greenhed

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

    С нами с:
    2 июн 2006
    Сообщения:
    3
    Симпатии:
    0
    бряк. В смысле спасибо.

    но вот только выдает он следующее

    Notice: Undefined offset: 1 in
    c:\apache_swissknife\сайты\localhost02\html\index.php on line 61
    Возможно, произошла ошибка...

    то бишь вот тут

    list($k, $val) = explode(':', $str);


    как я понимаю что-то не так. Я так понимаю, что переменная $k неопределена, правильно? где она должна определяться?
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    $str = trim($str);
    if(empty($str)) continue;
     
  5. greenhed

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

    С нами с:
    2 июн 2006
    Сообщения:
    3
    Симпатии:
    0
    неа... все равно ошибка

    если вот так:

    $str = trim($str);
    if(empty($str)) continue;
    list($k, $val) = explode(':', $str);
    $votes[$k] = $val;
    то

    Notice: Undefined offset: 1 in c:\apache_swissknife\сайты\localhost02\html\index.php on line 62
    Возможно, произошла ошибка...

    если так:
    $str = trim($str);
    if(empty($str)) continue;

    то просто: Возможно, произошла ошибка...

    :(
     
  6. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    значит, не существует переменной $votes[$_POST['g1']]
    покажи свой код полностью. что ты там назаменял?