Привожу пример моего скрипта:
<?
// Инициализируем сессии
session_start();
// Если тест еще не начинали проходить
if(!isset($_SESSION['answers'])) {
$id = 1;
$_SESSION['answers'] = array();
}
// Массив с вопросами
$questions = array(
1 => 'Как сделать свой первый скрипт?',
2 => 'Как его настроить?',
3 => 'Как теперь сдать зачет?',
);
// Массив с вариантами ответов
$options = array(
1 => array( 1 => 'Первый вариант', 2 => 'Второй вариант', 3 => 'Третий вариант'), // Варианты ответа к первому вопросу
2 => array( 1 => 'Первый вариант', 2 => 'Второй вариант', 3 => 'Третий вариант'), // Варианты ответа ко второму вопросу
3 => array( 1 => 'Первый вариант', 2 => 'Второй вариант', 3 => 'Третий вариант'), // Варианты ответа к третьему вопросу
);
// Если посетитель ответил на один из вопросов
if(isset($_GET['question']) && isset($_GET['answer'])) {
$prevId = $_GET['question'] - 1;
if(sizeof($questions) >= $prevId && sizeof($options[$prevId]) >= $_GET['answer']) {
$_SESSION['answers'][$prevId]['answer'] = $_GET['answer'];
$id = $_GET['question'];
}
// Если посетитель решил заново пройти тест
} else if(isset($_GET['newTest'])) {
unset($_SESSION['answers']);
header('Location: ' . $_SERVER['PHP_SELF']);
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Небольшой тест</title>
</head>
<body>
<? if(isset($_GET['question']) && $_GET['question'] <= sizeof($questions) || $id == '1') { ?>
<h3>Вопрос: <?=$questions[$id]?></h3>
<h4>Варианты ответа</h4>
<p>
<?
foreach($options[$id] as $key => $data) {
echo $key . '. <a href="?question='.($id + 1).'&answer='.$key.'" />' . $data . '</a><br />';
}
?>
</p>
<? } else { ?>
<h2>Тест успешно пройден!</h2>
<h3>Ваши ответы</h3>
<?
for($i = 1; $i <= sizeof($questions); $i++) {
echo 'Вопрос: ' . $questions[$i] . '<br /> Ответ: ' . $options[$i][$_SESSION['answers'][$i]['answer']] . '<br /><br />';
}
?>
<? } ?>
<p><a href="?newTest=ok">Начать заново</a></p>
</body>
</html>
Буду вам очень благодарен....
Спустя 19 минут, 23 секунды (23.12.2011 - 19:28) Игорь_Vasinsky написал(а):
Поставил в начале error_reporting(E_ALL);
и
у тя вообще работает? а то ты смело и сессию и редирект...
вообщем -назначай балы для ответов - для правильный 1 для не правильных 0 и считай относительно кол-вы вопросов.
и если надо срочно - то за рублики
и
Свернутый текст
Notice: Undefined variable: id in Z:\home\test.ru\www\test2.php on line 50
[Денвер: показать возможную причину ошибки]
Тест успешно пройден!
Ваши ответы
Notice: Undefined offset: 1 in Z:\home\test.ru\www\test2.php on line 66
Notice: Undefined index: in Z:\home\test.ru\www\test2.php on line 66
Вопрос: Как сделать свой первый скрипт?
Ответ:
Notice: Undefined offset: 2 in Z:\home\test.ru\www\test2.php on line 66
Notice: Undefined index: in Z:\home\test.ru\www\test2.php on line 66
Вопрос: Как его настроить?
Ответ:
Notice: Undefined offset: 3 in Z:\home\test.ru\www\test2.php on line 66
Notice: Undefined index: in Z:\home\test.ru\www\test2.php on line 66
Вопрос: Как теперь сдать зачет?
Ответ:
Начать заново
[Денвер: показать возможную причину ошибки]
Тест успешно пройден!
Ваши ответы
Notice: Undefined offset: 1 in Z:\home\test.ru\www\test2.php on line 66
Notice: Undefined index: in Z:\home\test.ru\www\test2.php on line 66
Вопрос: Как сделать свой первый скрипт?
Ответ:
Notice: Undefined offset: 2 in Z:\home\test.ru\www\test2.php on line 66
Notice: Undefined index: in Z:\home\test.ru\www\test2.php on line 66
Вопрос: Как его настроить?
Ответ:
Notice: Undefined offset: 3 in Z:\home\test.ru\www\test2.php on line 66
Notice: Undefined index: in Z:\home\test.ru\www\test2.php on line 66
Вопрос: Как теперь сдать зачет?
Ответ:
Начать заново
у тя вообще работает? а то ты смело и сессию и редирект...
вообщем -назначай балы для ответов - для правильный 1 для не правильных 0 и считай относительно кол-вы вопросов.
и если надо срочно - то за рублики
Спустя 15 часов, 32 минуты, 3 секунды (24.12.2011 - 11:00) Гость_Сергей написал(а):
НЕ у меня работает...
Просто мне нужен код для того чтобы подсчитать сколько правильно и сколько не правильно...
Подскажите пожалуйста, я начинающий в php я сделал тест а придумать как сделать результат не знаю... НУ хотя предварительно... Очень прошу...
Просто мне нужен код для того чтобы подсчитать сколько правильно и сколько не правильно...
Подскажите пожалуйста, я начинающий в php я сделал тест а придумать как сделать результат не знаю... НУ хотя предварительно... Очень прошу...
Спустя 3 часа, 51 минута, 48 секунд (24.12.2011 - 14:52) inpost написал(а):
Гость_Сергей
Меня смущает то, что верхний код не поход на код новичка, хотя ошибки есть.
В чём, собственно, проблема? foreach - обход массива, $_POST, его сравни с результатами ответа. В отдельную переменную заноси счетчик, сколько отвечено правильно, допустим $count = 0, если 1 ответ, то ++$count; В итоге получишь количество правильно отвеченных. Сколько всего: count($questions) - получишь количество вопросов всего. Далее обычное деление: отвечено на всего, получишь % отвеченных.
Меня смущает то, что верхний код не поход на код новичка, хотя ошибки есть.
В чём, собственно, проблема? foreach - обход массива, $_POST, его сравни с результатами ответа. В отдельную переменную заноси счетчик, сколько отвечено правильно, допустим $count = 0, если 1 ответ, то ++$count; В итоге получишь количество правильно отвеченных. Сколько всего: count($questions) - получишь количество вопросов всего. Далее обычное деление: отвечено на всего, получишь % отвеченных.
Спустя 1 день, 1 час, 40 минут, 44 секунды (25.12.2011 - 16:33) Гость_Сергей написал(а):
inpost
Пасиба большое
Пасиба большое
Спустя 4 дня, 1 час, 45 минут, 22 секунды (29.12.2011 - 18:18) Гость_Сергей написал(а):
inpost
3 дня мучаюсь и не получаеться... Я точно мог сказать что в самом начале не назначилпеременную id=1 .... Но результаты никак не получеються сделать...
И снова прошу о помощи...
3 дня мучаюсь и не получаеться... Я точно мог сказать что в самом начале не назначилпеременную id=1 .... Но результаты никак не получеються сделать...
И снова прошу о помощи...
Спустя 4 минуты, 42 секунды (29.12.2011 - 18:23) inpost написал(а):
Ну так сделай, как я сказал, и покажи строчки, где у тебя проблема.
Спустя 12 минут, 44 секунды (29.12.2011 - 18:36) killer8080 написал(а):
Гость_Сергей
а ты уверен что сам написал этот код? Кажется я его уже видел на этом форуме
а ты уверен что сам написал этот код? Кажется я его уже видел на этом форуме
Спустя 6 дней, 3 часа, 35 минут, 7 секунд (5.01.2012 - 22:11) 6yha написал(а):
inpost
"В чём, собственно, проблема? foreach - обход массива, $_POST, его сравни с результатами ответа."
Так в том то и дело что не знаю куда можно кинуть правильный ответ, чтобы потом его сравнить
"В чём, собственно, проблема? foreach - обход массива, $_POST, его сравни с результатами ответа."
Так в том то и дело что не знаю куда можно кинуть правильный ответ, чтобы потом его сравнить