За последние 24 часа нас посетили 72098 программистов и 10248 роботов. Сейчас ищут 2979 программистов ...

Как сделать вопросник в рамках одной страницы php

Тема в разделе "PHP для новичков", создана пользователем AlexPebody, 27 ноя 2008.

  1. AlexPebody

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

    С нами с:
    14 янв 2007
    Сообщения:
    247
    Симпатии:
    0
    ОК! Щаз попробую, а то тыкаюсь, одни ошибки сыпятся... :(

    ----

    Вообщем, заработало, но после вопроса выводится

    Array

    {
    тут тоже выводится разное после наатия на субмит
    }

    И как же сделать случайный вывод вопросов???
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.543
    Симпатии:
    623
    Нет, там написано "Если нет $_POST['submit_1'] И нет $_SESSION['quest_1'], тогда..."
    Если хотя-бы одно что-то будет, то условие не сработает. Пиши or вместо &&.
     
  3. AlexPebody

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

    С нами с:
    14 янв 2007
    Сообщения:
    247
    Симпатии:
    0
    ну хор, попробую! :):)

    Как скриптик поправить чтоб вопросы были вразноброс ???
    Нужно чтобы вопросов было скажем 10 и они выводились в случайном порядке НЕ ПОВТОРЯЯСЬ...........

    Можно как то прикрутить к этому скрипту или другой нужен???

    ВСЕМ СПС!!!
     
  4. free-bits

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

    С нами с:
    13 ноя 2008
    Сообщения:
    296
    Симпатии:
    0
    Адрес:
    г. Красноярск
    PHP:
    1.  
    2. <?php
    3. $questions = array("вопрос 1", ..., "вопрос 10");
    4. ?>
    5. <form action="questions.php" method="post">
    6. <?
    7. if (!isset($_SESSION['cur'])){
    8.    $_SESSION['cur'] = 0;
    9. }
    10. $cur = intval($_SESSION['cur']);
    11. echo "Вопрос #".($cur+1).": <br>";
    12. echo $questions[$cur];
    13. $_SESSION['cur'] = $cur+1;
    14. ?>
    15. Ответ:
    16. <input type="text" name="answer">
    17. <?
    18. if ($cur < 10) {
    19. ?>
    20. <input type="submit" name="next" value="Следующий вопрос">
    21. <? } else { ?>
    22. <input type="submit" name="end" value="Готово"><? } ?>
    23. </form>
    24. <?
    25.   if (isset($_POST['next'])){
    26.    $_SESSION['answers'][$cur-1] = $_POST['answer'];
    27. }
    28.   if (isset($_POST['end'])){
    29.   //Действия
    30. }
    31. ?>
    32.  
    Возможно есть ошибки, с телефона набирал
     
  5. free-bits

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

    С нами с:
    13 ноя 2008
    Сообщения:
    296
    Симпатии:
    0
    Адрес:
    г. Красноярск
    Ого уже настрочили=))
     
  6. AlexPebody

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

    С нами с:
    14 янв 2007
    Сообщения:
    247
    Симпатии:
    0
    Орет что хидер и сессия уже отправлены, открыта... В строке:
    ...
    if (!isset($_SESSION['cur'])){
    session_start();
    $_SESSION['cur'] = 0;
    ...
     
  7. AlexPebody

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

    С нами с:
    14 янв 2007
    Сообщения:
    247
    Симпатии:
    0
    просьба к гуру, народ дайте скриптик рабочий :):) т.е. тут уже есть рабочий, но не работают до конца! :):)

    Буду ОЧЕНЬ благодарен за помощь...!!!!!!!!!!!!!!!! :)
     
  8. Greg1978

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

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    PHP:
    1.  
    2. <?php
    3. ssesion_start();
    4.  
    5. $f = pars_ini_file("путь к файлу",true);
    6. $n = count($f);
    7. if(!isset($_GET['go'])):
    8.  
    9. ?>
    10. <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>" method="GET">
    11. <?php
    12.  
    13. for($i=0;$i<10;$i++){
    14.     mt_srand(doubleval(microtime()) * 100000000); //Настройка начального значения
    15.     $num = mt_rand(1,$n);
    16.     echo $f[$num];
    17.     echo "<select name=\"{$i}\" size = \"1\"\n>
    18.         <option>Колбаса</option>
    19.          ...... и т.д";
    20. }
    21. echo "<input type=\"submit\" name=\"go\" value=\"Submit\">";
    22. echo "</form>";
    23. endif;
    24.  
    25.  
    26. ?>
    27.  
    Выбор вопроса из файла .ini в разброс
     
  9. Greg1978

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

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    В любом случае уже отправлена
    PHP:
    1.  
    2. <?php
    3. $questions = array("вопрос 1", ..., "вопрос 10");
    4. ?>
    5. [b]<form action="questions.php" method="post">[/b]
    6. <?
    7. if (!isset($_SESSION['cur'])){
    8.  
     
  10. AlexPebody

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

    С нами с:
    14 янв 2007
    Сообщения:
    247
    Симпатии:
    0
    а как в ini файле вопросы перечислить? так:

    вопрос 1;
    вопрос 2;
    вопрос 3;
    ...
    и т.д.

    и как определить правельный ответ на каждый вопрос?
    т.е. нужно чтобы на каждый вопрос были скажем по 5ть вариантов ответа, с 1м верным! :)

    это можно сделать с этим скриптом?
     
  11. free-bits

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

    С нами с:
    13 ноя 2008
    Сообщения:
    296
    Симпатии:
    0
    Адрес:
    г. Красноярск
    Кто отправлена?
     
  12. Greg1978

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

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    Да нет это уже почитате о структуре ini файлов, они не тяжёлые.
    Там в структуре всё и увидите как раз подходит под Вашу проблемку.
    Только вот ответы наверное же опять надо держать в отдельном файле али как! :D
     
  13. AlexPebody

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

    С нами с:
    14 янв 2007
    Сообщения:
    247
    Симпатии:
    0
    а как в ini файле вопросы перечислить? так:

    вопрос 1;
    вопрос 2;
    вопрос 3;
    ...
    и т.д.

    и как определить правельный ответ на каждый вопрос?
    т.е. нужно чтобы на каждый вопрос были скажем по 5ть вариантов ответа, с 1м верным!

    это можно сделать с этим скриптом?
     
  14. Greg1978

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

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    Ведь если PHP скрипт начинается даже с html кода он уже будет отправлен в буфер и заголовки сессии уже не передадуться.Вроде так.
     
  15. Greg1978

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

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    Да только желательно в ini файле разделы писать номерами!!!
    Там же можно прописывать ответ в виде номера вопроса.
     
  16. Greg1978

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

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    X` nj малость пропарил сейчас перепешу.
     
  17. Greg1978

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

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    М-да конечно с БД этот процесс зайёт меньше времени.
     
  18. AlexPebody

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

    С нами с:
    14 янв 2007
    Сообщения:
    247
    Симпатии:
    0
    Черкните полный скрипт и пример как делать ини файл...???
    А то чет я щаз пробовал, ну ерунда получается... :(:(

    ОЧЕНЬ ЖДУ! :):)
     
  19. free-bits

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

    С нами с:
    13 ноя 2008
    Сообщения:
    296
    Симпатии:
    0
    Адрес:
    г. Красноярск
    ini-файл
    Код (Text):
    1.  
    2. Вопрос1|Ответ1
    3. Вопрос2|Ответ2
    4. ...
    5. Вопрос10|Ответ10
    PHP:
    1.  
    2. <?
    3. $file = fopen("file.ini", "r");
    4. while (!feof($file)) {
    5.     $line = fgets($file);
    6.     $buf[] = explode("|", $line);
    7. }
    8.  
    Вопрос и ответ на него находится в массиве под соответствующим ключом
     
  20. AlexPebody

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

    С нами с:
    14 янв 2007
    Сообщения:
    247
    Симпатии:
    0
    СПАСИБО!!!!!!!!! :)
     
  21. Vincent

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

    С нами с:
    30 окт 2008
    Сообщения:
    12
    Симпатии:
    0
    А не проще было бы инклудить PHP файл в котором вопросы и ответы были бы уже в массиве?

    что то вроде этого:

    PHP:
    1.  
    2. <?php
    3. $test[0]['question']="вопрос 1"
    4. $test[0][1]="вариант ответа 1"
    5. $test[0][2]="вариант ответа 2"
    6. $test[0][3]="вариант ответа 3"
    7. ...
    8. $test[0]['right']="номер правильного варианта для вопроса 1"
    9. ...
    10. $test[1]['question']="вопрос 2"
    11. $test[1][1]="вариант ответа 1"
    12. $test[1][2]="вариант ответа 2"
    13. $test[1][3]="вариант ответа 3"
    14. ...
    15. //ну и т.д.
    16. ?>
    17.  
    а уж в самом файле index.php как раз таки и можно реализовать случайный выбор вопросов через функция случайного числа в промежутке от 0 до (count($test)-1)
     
  22. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.543
    Симпатии:
    623
  23. AlexPebody

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

    С нами с:
    14 янв 2007
    Сообщения:
    247
    Симпатии:
    0
    Не... ЛУчше все сразу в массив, а потом из массива работать, или уж тогда в БД!
    Нафига грузить ФС сервака? Так что выше примеры вери гуд... :)

    ВСЕМ СПС!!!!!!!! Ждемс окончательного кода от Adamant
     
  24. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.543
    Симпатии:
    623
    PHP:
    1. <?php
    2. $array=array('0'=>array('question'=>'Вопрос?','1'=>'Ответ 1','2'=>'Ответ 2','3'=>'Ответ 3','right'=>'2'));
    3. print_r($array);
    4.  
    5. $serialize=serialize($array); //Эту переменную можно записать в файл
    6. echo $serialize."\r\n";
    7.  
    8. $array=unserialize($serialize); //Потом можно файл ансериализировать
    9.                                 //И получить массив с вопросами
    10. print_r($array);
    11. ?>
     
  25. AlexPebody

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

    С нами с:
    14 янв 2007
    Сообщения:
    247
    Симпатии:
    0
    Не ну я конечно все понимаю, но для человека который почти нифига не знает пхп,
    это сделать также невозможно как для мастдая нормально работать долгое время!

    ЧЕРКНИТЕ ПОЛНЫЙ СКРИПТ КАК И ЧТО ИЛИ ПРЕКРЕПИТЕ ЕГО К ЭТОМУ ТОПИКУ...

    Что мне толку от частичных модулей и функций?
    Я не знаю куда это вставить... :(:(

    Просто либо мне с нуля все изучить и сделать самому или, люди добрые,
    черкните полный скрипт с массивами или без, но чтоб нормально работало! :):)

    От Адамант(а) хороший скрипт вроде как был, но там нет чтобы вразноброс вопросы были...

    А хорошо было бы сделать так чтобы вопросов и ответов в массиве было много, скажем 50,
    и чтобы скрипт случайно выбирал из них 10 и выводил, и в конце бы получал орезультат,
    если на все 10 верно отвечено, то переходил на заданную стр. если нет, то на другую заданную стр.

    Вот такова задача, жаль только что сам я ее не могу решить, а очень нужно для сайта!!!

    ВСЕМ ЗАРАНЕЕ СПС!!!!!!!!!!!!!