Дипломная работа: Исследование использования программ дистанционного обучения для подготовки учебно-методической документации
9.
Обеспечение доступа администратора к базе данных через web-интерфейс;
10. Просмотр
администратором статистики и текущей успеваемости студентов;
11.
Организация возможности общения студентов и преподавателей посредством
электронной почты и других средств общения;
12.
Организация поиска по сайту;
13.
Отсутствие необходимости установки дополнительных программ для функционирования
созданного продукта;
14. Web-совместимость (совместимость с различными браузерами);
15.
Незначительный объем (размер сайта без базы учебных материалов ~200 Кб).
Для
тестирования системы в базу данных была занесена информация по дисциплине "Схемотехника".
Курс представлен из 7 подразделов, включает соответственно 7 тестов и итоговый
тест. На примере данной дисциплины был проведен полный цикл обучения
(регистрация в системе, регистрация курса, изучение материалов и прохождение
тестирования). В процессе тестирования были выявлены некоторые ошибки
программного кода, которые были успешно устранены.
Таким
образом, в результате исследования разработан готовый продукт, не требующий
специальной доработки, но имеющий такую возможность, и пригодный к включению в
образовательный процесс.
Создана
основа подсистемы, позволяющая начать её постепенное внедрение. Необходимы
этапы доработки, исправление ошибок и уточнений в процессе эксплуатации,
проверки идей и алгоритмов на большем количестве зарегистрированных
пользователей и учебных дисциплин.
В
перспективе необходимо дополнить сайт такими структурными элементами как чат,
форум и гостевая книга, исправить выявленные в процессе пробной эксплуатации
ошибки, проверить работоспособность системы при входе большого числа
пользователей, особое внимание следует уделить развитию идей использования
расширенных возможностей тестирования (в том числе организации тестирования на
время), администрирования web-сайта, получения более
информативной статистики и организации удобного поиска информации на web-ресурсе.
В
экономической части дипломного проекта было предложено экономическое
обоснование выбора комплекса технических и программных средств, необходимых для
работы, а также был произведен расчет затрат на разработку и реализацию
приложения, приведен расчет ее возможной цены. Внедрение системы не потребует
значительных материальных и трудовых затрат.
В разделе "Безопасность
жизнедеятельности" была приведена характеристика потенциальных опасностей,
возникающих в процессе трудовой деятельности персонала, приведен расчет
освещенности и категорирование помещения аудитории № 209 старого корпуса НИ
РХТУ по взрыво- и пожароопасности.
1.
Агопонов С.В. Средства дистанционного обучения. - СПб.: БХВ-Петербург,
2003.
2.
Методика применения дистанционных образовательных технологий
(дистанционного обучения) в образовательных учреждениях высшего, среднего и
дополнительного профессионального образования Российской Федерации.
3.
http: // db. informika. ru/do/npb/index. asp
4.
Официальный web-сайт программного комплекса "eLearning
Server 3000".
5.
http: // www. elearn. ru
6.
Официальный web-сайт программного комплекса "Lotus LearningSpace".
7.
http: // www. commed. ru
8.
Официальный web-сайт программного комплекса "Батисфера".
9.
http: // www. baty. ru
10.
Официальный web-сайт программного комплекса "SunRav
TestOfficePro".
11.
http: // www. sunrav. ru
12.
Вуль В.А. Электронные издания. - СПб.: БХВ-Петербург, 2003. - 560 с.
13.
Оганесян А.Г. Проблема обратной связи при дистанционном обучении. - М.: Открытое
образование, 2002. - 238 с.
14.
Шевелев М.Ю. Автоматизированный внешний контроль самостоятельной работы
студентов в системе дистанционного образования/Дистанционно образование. Состояние,
проблемы, перспективы. Тез. докл. научно-методической конференции. - Томск: ТУСУР,
2002.
15.
Кастаньетто Дж., Рават Х. Профессиональное PHP
программирование. Пер. с англ. - СПб.: Символ-Плюс, 2001. - 912 с.
16.
Колисниченко Д.Н. Самоучитель PHP 5. Издание 2-е. - СПб.: Наука и
Техника, 2005. - 576 с.
17.
Web-сайт бесплатных java-скриптов
18.
www. freejavascripts. narod. ru
19.
Официальный web-сайт web-сервера
Apache.
20.
http: // www. apache. org
21.
Официальный web-сайт языка web-программирования
PHP.
22.
http: // www. php. net
23.
Официальный web-сайт сервера баз данных MySQL.
24.
http: // www. mysql. com
25.
Стивен Спэйнауэр, Роберт Экштейн. Справочник вебмастера. Издание 2-е. Пер.
с англ. - СПб.: Символ-Плюс, 2001. - 608 с.
26.
Мэрдок Келли Л. JavaScript: наглядный курс
создания динамических Web-страниц. Пер. с англ. - М.: Вильямс,
2001. - 288 с.
27.
Лобковская О.З. Методические указания по технико-экономическому
обоснованию дипломных проектов, связанных с разработкой автоматизированных
систем управления и программных изделий. - Новомосковск, 2002.
28.
НПБ 105-03. Нормы пожарной безопасности.
29.
СанПиН 2.2.4 548-96. Гигиенические требования к микроклимату
производственных помещений.
30.
СанПиН 2.2.2 - 2.4 1340-03. Гигиенические требования к персональным
электронно-вычислительным машинам и организации работы.
Приложение А Инфологическая модель предметной
области
Приложение Б Листинги модулей формирования
страниц приложения
Б.1 Листинг модуля "courses_registration.
php"
<html>
<head>
<title> Remote Learning Institute | Courses Registration</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<body>
<? include "header. php"? >
<table width="835" border="0"
cellpadding="3" cellspacing="0">
<! - -DWLayoutTable-->
<tr>
<td width="160" height="503"
valign="top" bgcolor="#8AD9FF">
<? include "body_left. php";? >
</td>
<td width="659" valign="top"
bgcolor="#F9FDFF" class=bd>
<? include "courses_registration_right. php";? >
</td>
</tr>
</table>
<? include "buttom. php"? >
</body>
</html>
Б.2 Листинг модуля "header. php"
<table width="835" border="0"
cellpadding="2" cellspacing="0"
bgcolor="#0094DE">
<! - -DWLayoutTable-->
<tr>
<td width="280" rowspan="2"
valign="top"><img src="images/logo. gif"
width="280" height="108"></td>
<td width="520" height="88"
valign="top"><div align="center"><img
src="images/logo_text. gif" width="265"
height="73"></div></td>
<td width="35" valign="top"><div
align="right"><img src="images/table_corner_news. gif"
width="15" height="15"></div></td>
</tr>
<tr>
<td height="20" colspan="2"
valign="top">
<? include "menu. php"? >
</td>
</tr>
</table>
Б.3 Листинг модуля "body_left. php"
<?
echo "<table width=\"100%\" border=\"0\"
cellpadding=\"0\" cellspacing=\"0\">";
echo "<tr> <td bgcolor=\"#8AD9FF\">";
//echo "$user_name $user_pswd";
if ($login_reg=="yes") {
include "user_form. php";
}
else {
include "login_form. php";
}
$FindScript="find. php";
echo "<hr color=\"#0094DE\" size=\"1\"
style=\"border-style: dotted\"></hr>";
echo "<form name=\"form_find\"
action=\"$FindScript\" metod=\"get\" style=\"margin: 0px\">";
echo "<input type=\"text\" name=\"find\"
class=\"textblockBlue\" style=\"height: 18; width: 110\">|";
echo "<input type=\"submit\"
name=\"login\" style=\"height: 18; width: 43\"
class=\"buttonBlue\" value=\"поиск\">";
echo "</form>";
echo "<hr color=\"#0094DE\" size=\"1\"
style=\"border-style: dotted\"></hr>";
include "news_list_header. php";
echo "информация";
include "news_list_after_header. php";
echo "25.04.05 Cайт был создан,
вышла его первая версия";
include "news_list_footer. php";
echo "</td> </tr> </table>";
? >
Б.4 Листинг модуля "courses_registration_right.
php"
<table width="100%" border="0"
cellpadding="3" cellspacing="0">
<tr>
<td width="100%" valign="top"
bgcolor="#F9FDFF">
<span class="textheader"> РЕГИСТРАЦИЯ НА КУРСЫ </span>
</td>
</tr>
<tr>
<td>
<?
$maxReg=3;
include "body_list_header. php";
echo "Подтверждение регистрации";
include "body_list_after_header. php";
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
$strSQL="SELECT * FROM user_courses WHERE login='". $user_name_.
"' AND status='reg'";
$res=mysql_query($strSQL);
$cRow=mysql_num_rows($res);
echo "Вы в данный момент зарегистрированы на следующее
количество курсов: ". $cRow. "<br>";
$strSQL="SELECT * FROM user_courses WHERE (login='". $user_name_.
"' AND n_course='". $id_course. "')";
$resUserCourses=mysql_query($strSQL);
if (! mysql_fetch_row($resUserCourses)) {
if ($cRow<=($maxReg-1))
href=\"courses_for_students. php\">возврат</a>";
else {
echo "Вы уже зарегистрированны на максимально возможное
(по единовременному прохождению) количество курсов (на ". $maxReg. ")";
echo "<hr color=\"#0094DE\" size=\"1\"
style=\"border-style: dotted\"></hr>";
echo "<a class=\"light\"
href=\"courses_for_students. php\">возврат</a>";
}
}
else {
echo "Вы уже зарегистрированны на выбранный курс";
echo "<hr color=\"#0094DE\" size=\"1\"
style=\"border-style: dotted\"></hr>";
echo "<a class=\"light\"
href=\"courses_for_students. php\">возврат</a>";
}
include "body_list_footer. php";
? >
</td>
</tr>
</table>
Б.5 Листинг модуля "buttom. php"
<table width="835" border="0"
cellpadding="2" cellspacing="0"
bgcolor="#77D2FF">
<! - -DWLayoutTable-->
<tr>
<td width="161" height="20"
valign="top" bgcolor="#0094DE"><div
align="left"><img src="images/table_corner_l_b. gif" width="15"
height="15"></div>
</td>
<td width="26" valign="top"><! - -DWLayoutEmptyCell-->
</td>
<td width="614" align="right"
valign="top"><div align="right"><span
class="textonlightblue">дизайн студии <a
class="notunder"
href=mailto: andrewnik@mail. ru>< A&D-STYLE> </a></span></div></td>
<td width="16" valign="top"><div
align="right"><span class="textonblue"></span></div></td>
</tr>
</table>
<? include "menu_adm. php"? >
Б.6 Листинг модуля "menu. php"
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
<meta http-equiv=Content-Language content=ru>
<script type="text/javascript" src="popup_me. js"></script>
<link href="rli_style. css" rel="stylesheet"
type="text/css">
</head>
<body>
<div><script type="text/javascript"
src="menu_rli. js"></script></div>
<table cellspacing=0 cellpadding=0 border=0 id=menu_table>
<tr valign=top>
<td width="20"><a href=index. php title="Домашняя
страница"><img src="images/home. gif"
width="16" height="16" border="0"></a></td>
<td class=brbt><a class=m onclick="subnews. className='menuclick';
this. blur(); " href=news. php><img src="images/l_corner. gif"
width="8" height="8"
border="0"> новости</a>
<div class=menuc id=subnews><img width=1 height=2></div></td>
<td class=brbt><a class=m onclick="subcourses. className='menuclick';
popcourses. style. visibility='hidden'; this. blur(); "
onmouseover="popup(event, this,
'popcourses'); " onmouseout="popdown_1(event, this,
'popcourses'); " id=menuleft href=courses. php><img src="images/l_corner.
gif" width="8" height="8"
border="0"> курсы</a>
<div class=menuc id=subcourses><img width=1
height=2></div></td>
<td class=brbt><a class=m onclick="subtraining. className='menuclick';
poptraining. style. visibility='hidden'; this. blur(); "
onmouseover="popup(event,
this, 'poptraining'); " onmouseout="popdown_1(event, this,
'poptraining'); " href=courses_organization. php><img
src="images/l_corner. gif" width="8"
height="8" border="0"> <b>обучение</b></a>
<div class=menuc id=subtraining><img width=1
height=2></div></td>
<td class=brbt><a class=m onclick="subcontacts. className='menuclick';
popdate. style. visibility='hidden'; this. blur(); "
onmouseover="popup(event, this,
'popcontacts'); " onmouseout="popdown_1(event, this,
'popcontacts'); " href=contacts. php><img src="images/l_corner.
gif" width="8" height="8" border="0">
общение
</a><div class=menuc id=subcontacts><img width=1
height=2></div>
<td class=brbt><a class=m onclick="subabout. className='menuclick';
popabout. style. visibility='hidden'; this. blur(); "
onmouseover="popup(event, this,
'popabout'); " onmouseout="popdown_1(event, this,
'popabout'); " href=about_info. php><img src="images/l_corner. gif"
width="8" height="8" border="0">
о проекте</a>
<div class=menuc id=subabout><img width=1 height=2></div></td>
<td class=brbt><a class=m onclick="subdown. className='menuclick';
this. blur(); " href=download. php><img src="images/l_corner. gif"
width="8" height="8"
border="0"> download</a>
<div class=menuc id=subdown><img width=1 height=2></div></td>
<td class=brbt><a class=m onclick="substudent. className='menuclick';
popstudent. style. visibility='hidden'; this. blur(); "
onmouseover="popup(event, this,
'popstudent'); " onmouseout="popdown_1(event, this,
'popstudent'); " href=student. php><img src="images/l_corner. gif"
width="8" height="8" border="0">
студенту</a>
<div class=menuc id=substudent><img width=1
height=2></div></td>
</tr></table>
</body>
</html>
Приложение В Листинги модуля тестирования
В.1 Листинг модуля "training_check_registration_right.
php"
<table width="100%" border="0"
cellpadding="3" cellspacing="0">
<tr>
<td width="100%" valign="top"
bgcolor="#F9FDFF">
<span class="textheader"> РЕГИСТРАЦИЯ </span>
</td>
</tr>
<tr>
<td>
<?
$submit = 1; // флаг передачи
$dataComplite= 1; // проверка данных
$err_note="2"; // сообщение
об ошибке
$qs=""; // строка передачи данных
global $qs,$r_lastname,$r_firstname,$r_middlename,$r_login,$r_pass,$r_pass_c,$r_student_code,$r_sex,$r_n_group,$r_email;
function check_email($str) {
//возвращает
1 если адрес допустим
if (ereg ("^. +@. +\\. +$",$str)) {
return 1;
}
else {
return 0;
}
}
function check_form() {
global $qs,$err_note,$submit, $dataComplite,$r_lastname,$r_middlename,$r_firstname,$r_login,$r_pass,$r_pass_c,$r_student_code,$r_sex,$r_n_group,$r_email;
if ($dataComplite== 1) {
if(! $r_lastname) {
$err_note = "не введена
фамилия";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if(! $r_firstname) {
$err_note = "не введено имя";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if(! $r_middlename) {
$err_note = "не введено
отчество";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if(! $r_login) {
$err_note = "не введен login";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if($r_pass<>$r_pass_c) {
$err_note = "введенные пароли не
совпадают";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if(! $r_pass) {
$err_note = "не введен
пароль";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if(! $r_pass_c) {
$err_note = "не введен
проверочный пароль";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if(! $r_student_code) {
$err_note = "не введен код
студента";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if(! $r_n_group) {
$err_note = "не введен номер группы";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if(! $r_email) {
$err_note = "не введен адрес
электронной почты";
$dataComplite= 0;
}
else {
if (check_email($r_email) ==0) {
$err_note = "не правильно введен
адрес электронной почты";
$dataComplite= 0;
}
}
}
if ($dataComplite== 1) {
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
$sqlstr = "SELECT login FROM users WHERE login='". $r_login.
"'; ";
$res=mysql_query($sqlstr);
if (mysql_fetch_row($res)) {
$err_note = "в системе уже
используется данный login";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
$sqlstr = "SELECT student_code FROM users WHERE
student_code='". $r_student_code. "'; ";
$res=mysql_query($sqlstr);
if (mysql_fetch_row($res)) {
$err_note = "в системе уже
используется данный код студента";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
$sqlstr = "SELECT student_code FROM correct_codes WHERE
student_code='". $r_student_code. "'; ";
$res=mysql_query($sqlstr);
if (! (mysql_fetch_row($res))) {
$err_note = "преподаватель
запретил доступ к системе обучения";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
$qs = "? r_lastname=". urlencode($r_lastname).
"&r_firstname=". urlencode($r_firstname).
"&r_middlename=". urlencode($r_middlename).
"&r_login=". urlencode($r_login).
"&r_pass=". urlencode($r_pass).
"&r_student_code=". urlencode($r_student_code).
"&r_n_group=". urlencode($r_n_group).
"&r_email=". urlencode($r_email).
"&r_sex=". urlencode($r_sex).
"&r_registration_date=". urlencode(date("Y/m/d")).
"&user_login=0";
return 1;
}
}
include "body_list_header. php";
echo "Регистрационная форма | Проверка введенной
информации ";
include "body_list_after_header. php";
$LoginScript = "training. php";
echo "<form name=\"form_reg\" style=\"margin:
0px\">";
echo "<span
class=\"textonlightblue\"><b>Фамилия: </b></span><br>";
echo "<span
class=\"textonOrrange\"><b>$r_lastname</b></span><br>";
echo "<span
class=\"textonlightblue\"><b>Имя: </b></span><br>";
echo "<span
class=\"textonOrrange\"><b>$r_firstname</b></span><br>";
echo "<span
class=\"textonlightblue\"><b>Отчество: </b></span><br>";
echo "<span
class=\"textonOrrange\"><b>$r_middlename</b></span><br>";
echo "<span class=\"textonlightblue\"><b>login:
</b></span><br>";
echo "<span
class=\"textonOrrange\"><b>$r_login</b></span><br>";
echo "<span
class=\"textonlightblue\"><b>пароль: </b></span><br>";
echo "<span
class=\"textonOrrange\"><b>$r_pass</b></span><br>";
echo "<span class=\"textonlightblue\"><b>Код
студента: </b></span><br>";
echo "<span
class=\"textonOrrange\"><b>$r_student_code</b></span><br>";
echo "<span
class=\"textonlightblue\"><b>№ группы: </b></span><br>";
echo "<span
class=\"textonOrrange\"><b>$r_n_group</b></span><br>";
echo "<span
class=\"textonlightblue\"><b>Пол: </b></span><br>";
echo "<span
class=\"textonOrrange\"><b>$r_sex</b></span><br>";
echo "<span
class=\"textonlightblue\"><b>Почта: </b></span><br>";
echo "<span
class=\"textonOrrange\"><b>$r_email</b></span><br>";
echo "</form>";
if (check_form() ==0) {
echo "<form name=\"form_err\" style=\"margin:
0px\">";
include "body_list_footer. php";
include "body_list_header. php";
echo "Возникла ошибка при вводе данных ";
include "body_list_after_header. php";
echo "<span class=\"textrederror\"> $err_note
</span>";
echo "<hr class=hr_onlightblue_orange></hr>";
echo "<input type=\"button\"
name=\"back\" style=\"height: 18\"
class=\"buttonOrange\" value=\"возврат\"
onClick=\"self. history. back(); \">";
include "body_list_footer. php";
}
else
echo "</form>";
? >
</td>
<div id="error_input"
style="position: absolute;
width: 220px;
top: 45%;
left: 45%;
background: #8AD9FF;
font-size: 11px;
border: 1px solid #0094DE;
padding: 1px;
z-index: 1">
<form name="form_err" style="margin: 0px">
<span class="textonLightBlue"><b>При вводе произошла ошибка: </b></span><br>
<div style="background: white; padding: 2px">
<span class="textrederror">$err_note</span><br>
<input type="button" align="middle"
style="height: 18" class="buttonBlue"
value="исправить" onClick="hiddeLayer()">
</form> </div>
</div>
</tr>
</table>
В.2 Листинг модуля " training_test_right.
php"
<table width="100%" border="0"
cellpadding="3" cellspacing="0">
<tr>
<td width="100%" valign="top"
bgcolor="#F9FDFF">
<span class="textheader"> ПРОХОЖДЕНИЕ ТЕСТОВ </span>
</td>
</tr>
<tr>
<td>
<?
include "body_list_header. php";
$TestScript="training_test. php";
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
if ($q_count>1 && $q_count<7) {
//проверка
ответов на правильность
if ($q_count==6)
{
echo "Информация по тестам";
}
else {
echo "Выберите ответ на вопрос №". $q_count;
}
include "body_list_after_header. php";
$str_answer ="SELECT * FROM answers WHERE n_question='";
if ($q_count==2) {
$str_answer = $str_answer. $q_1. "' AND id_answer='";
}
elseif ($q_count==3) {
$str_answer = $str_answer. $q_2. "' AND id_answer='";
}
elseif ($q_count==4) {
$str_answer = $str_answer. $q_3. "' AND id_answer='";
}
elseif ($q_count==5) {
$str_answer = $str_answer. $q_4. "' AND id_answer='";
}
else {
$str_answer = $str_answer. $q_5. "' AND id_answer='";
}
//проверка ответа 1
$str_answer_full = $str_answer. $id_a_1. "'";
$res_answer = mysql_query($str_answer_full);
$row_answer = mysql_fetch_row($res_answer);
if ($row_answer [3] =='y') {
if (isset($a_1)) {
$r_count_1=1;
}
else {
$r_count_1=0;
}
}
else {
if (! (isset($a_1))) {
$r_count_1=1;
}
else {
$r_count_1=0;
}
}
//проверка
ответа 2
$str_answer_full = $str_answer. $id_a_2. "'";
$res_answer = mysql_query($str_answer_full);
$row_answer = mysql_fetch_row($res_answer);
if ($row_answer [3] =='y') {
if (isset($a_2)) {
$r_count_2=1;
}
else {
$r_count_2=0;
}
}
else {
if (! (isset($a_2))) {
$r_count_2=1;
}
else {
$r_count_2=0;
}
}
//проверка
ответа 3
$str_answer_full = $str_answer. $id_a_3. "'";
$res_answer = mysql_query($str_answer_full);
$row_answer = mysql_fetch_row($res_answer);
if ($row_answer [3] =='y') {
if (isset($a_3)) {
$r_count_3=1;
}
else {
$r_count_3=0;
}
}
else {
if (! (isset($a_3))) {
$r_count_3=1;
}
else {
$r_count_3=0;
}
}
//проверка
ответа 4
$str_answer_full = $str_answer. $id_a_4. "'";
$res_answer = mysql_query($str_answer_full);
$row_answer = mysql_fetch_row($res_answer);
if ($row_answer [3] =='y') {
if (isset($a_4)) {
$r_count_4=1;
}
else {
$r_count_4=0;
}
}
else {
if (! (isset($a_4))) {
$r_count_4=1;
}
else {
$r_count_4=0;
}
}
//проверка
ответа 5
$str_answer_full = $str_answer. $id_a_5. "'";
$res_answer = mysql_query($str_answer_full);
$row_answer = mysql_fetch_row($res_answer);
if ($row_answer [3] =='y') {
if (isset($a_5)) {
$r_count_5=1;
}
else {
$r_count_5=0;
}
}
else {
if (! (isset($a_5))) {
$r_count_5=1;
}
else {
$r_count_5=0;
}
}
//проверка в
общей сложности
$r_count_1=$r_count_1*$r_count_2*$r_count_3*$r_count_4*$r_count_5;
if ($r_count_1==1)
{
echo "Вы правильно ответили на предыдущий вопрос <br>";
$r_count++;
}
else {
echo "Вы не правильно ответили на предыдущий вопрос <br>";
}
echo "<hr color=\"#FFDFBF\" size=\"1\"
style=\"border-style: dotted\"></hr>";
$r_percent = $r_count/5*100;
if ($q_count==6) {
echo "Вы правильно ответили на ". $r_count. " из 5 вопросов. <br>Процент правильных ответов ". $r_percent.
"%. <br><br>";
$res_user_tests=mysql_query("SELECT * FROM user_tests WHERE
n_user_course='". $id_course. "' AND n_course_part='". $id_part.
"'");
$row_user_tests = mysql_fetch_row($res_user_tests);
if ($row_user_tests [4] >$r_percent) {
$r_percent=$row_user_tests [4] ;
}
$user_tests_SQL = "UPDATE user_tests SET percent='". $r_percent.
"', last_test_date='". date("Y/m/d"). "' WHERE
n_user_course='". $id_course. "' AND n_course_part='". $id_part.
"'";
mysql_query($user_tests_SQL);
if ($r_percent>=70) {
echo "Тест успешно пройден<br>";
$res_user_courses2=mysql_query("SELECT * FROM user_courses
WHERE id_user_course='". $id_course. "'");
$row_user_courses2=mysql_fetch_row($res_user_courses2);
$res_course_parts2=mysql_query("SELECT * FROM course_parts
WHERE n_course='". $row_user_courses2 [2]. "'");
$res_user_tests2=mysql_query("SELECT * FROM user_tests WHERE
n_user_course='". $id_course. "'");
if (mysql_num_rows($res_course_parts2) ==
mysql_num_rows($res_user_tests2)) {
//$res_user_courses3=mysql_query("SELECT * FROM user_courses
WHERE id_user_course='". $id_course. "'");
//$row_user_courses3 = mysql_fetch_row($res_user_tests3);
$user_courses_SQL = "UPDATE user_courses SET status='end',
end_date='". date("Y/m/d"). "' WHERE id_user_course='".
$id_course. "'";
mysql_query($user_courses_SQL);
};
}
else {
echo "Вы не прошли тест";
$res_user_tests = mysql_query("SELECT * FROM user_tests WHERE
n_user_course='". $id_course. "' AND n_course_part='". $id_part.
"'");
$row_user_tests = mysql_fetch_row($res_user_tests);
if ($row_user_tests [3] >2) {
//$res_user_courses=mysql_query("SELECT * FROM user_courses
WHERE id_user_course='". $id_course. "'");
//$row_user_courses = mysql_fetch_row($res_user_courses);
$user_courses_SQL = "UPDATE user_courses SET status='not',
end_date='". date("Y/m/d"). "' WHERE id_user_course='".
$id_course. "'";
mysql_query($user_courses_SQL);
}
}
echo "<hr color=\"#FFDFBF\" size=\"1\"
style=\"border-style: dotted\"></hr>";
echo "<a class=\"light\" href=\"training. php\">на
личную страницу<a>";
}
}
if ($q_count>0 && $q_count<6) {
//прорисовка
вопросов - ответов
if ($q_count==1)
{
$res_user_tests=mysql_query("SELECT * FROM user_tests WHERE
n_user_course='". $id_course. "' AND n_course_part='". $id_part.
"'");
if (mysql_num_rows($res_user_tests) ==0) {
$user_tests_SQL = "INSERT INTO user_tests values('0','". $id_course.
"','". $id_part. "','1','0','". date("Y/m/d"). "')";
mysql_query($user_tests_SQL);
}
else {
$row_user_tests = mysql_fetch_row($res_user_tests);
$row_user_tests [3] ++;
if ($row_user_tests [3] <4) {
$user_tests_SQL = "UPDATE user_tests SET attemps='". $row_user_tests
[3]. "', last_test_date='". date("Y/m/d"). "' WHERE
n_user_course='". $id_course. "' AND n_course_part='". $id_part.
"'";
mysql_query($user_tests_SQL);
}
}
echo "Выберите ответ на вопрос №". $q_count;
include "body_list_after_header. php";
}
$str_question ="SELECT * FROM questions WHERE
id_question='";
if ($q_count==1) {
$res_question=mysql_query($str_question. $q_1. "'");
}
elseif ($q_count==2) {
$res_question=mysql_query($str_question. $q_2. "'");
}
elseif ($q_count==3) {
$res_question=mysql_query($str_question. $q_3. "'");
}
elseif ($q_count==4) {
$res_question=mysql_query($str_question. $q_4. "'");
}
else {
$res_question=mysql_query($str_question. $q_5. "'");
}
$row_question=mysql_fetch_row($res_question);
echo "<b>". $row_question [2]. "</b><br>";
echo "<form name=\"form_test\" action=\"$TestScript\"
metod=\"get\" style=\"margin: 0px\">";
$strSQL="SELECT * FROM answers WHERE n_question='". $row_question
[0]. "'";
$res_answer=mysql_query($strSQL);
//$answer_count=1;
//echo "<form>";
//
//while ($row_answer=mysql_fetch_row($res_answer)) {
//echo "<input name=\"a_". $answer_count. "\"
type=\"checkbox\">". $row_answer [2] ;
//echo "<input name=\"id_a_". $answer_count. "\"
type=\"hidden\" value=". $row_answer [0]. "><br>";
//$answer_count++;
//}
$mas_count=0;
while ($mas_temp=mysql_fetch_row($res_answer)) {
$mas_answer [$mas_count] [0] =$mas_temp [0] ;
$mas_answer [$mas_count] [1] =0;
$mas_count++;
}
$mas_count--;
for ($i=1; $i<=5; $i++) {
mt_srand(time());
while (true) {
$mas_index=mt_rand(0,$mas_count);
if ($mas_answer [$mas_index] [1] ==0) {
$mas_answer [$mas_index] [1] =1;
break;
}
}
$strSQL="SELECT * FROM answers WHERE id_answer='". $mas_answer
[$mas_index] [0]. "'";
$res_answer=mysql_query($strSQL);
$row_answer=mysql_fetch_row($res_answer);
echo "<input name=\"a_". $i. "\"
type=\"checkbox\">". $row_answer [2] ;
echo "<input name=\"id_a_". $i. "\"
type=\"hidden\" value=". $row_answer [0]. "><br>";
}
echo "<input name=\"id_course\"
type=\"hidden\" value=". $id_course. ">";
echo "<input name=\"id_part\"
type=\"hidden\" value=". $id_part. ">";
echo "<input name=\"q_1\"
type=\"hidden\" value=". $q_1. ">";
echo "<input name=\"q_2\"
type=\"hidden\" value=". $q_2. ">";
echo "<input name=\"q_3\"
type=\"hidden\" value=". $q_3. ">";
echo "<input name=\"q_4\"
type=\"hidden\" value=". $q_4. ">";
echo "<input name=\"q_5\"
type=\"hidden\" value=". $q_5. ">";
echo "<input name=\"q_count\"
type=\"hidden\" value=". ++$q_count. ">";
echo "<input name=\"r_count\"
type=\"hidden\" value=". $r_count. ">";
echo "<hr color=\"#FFDFBF\" size=\"1\"
style=\"border-style: dotted\"></hr>";
echo "<input type=\"submit\"
name=\"test_ok\" style=\"height: 18; width: 41\"
class=\"buttonOrange\" value=\"ОК\">";
echo "</form>";
}
include "body_list_footer. php";
? >
</td>
</tr>
</table>
Приложение Г Листинги модуля администрирования
Г.1 Листинг модуля "admin_edit. php"
<html>
<head>
<title> Remote Learning Institute | Administration</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<body>
<?
include "header. php";
$ScriptAdmAdd="admin_add. php";
$ScriptAdmDel="admin_del. php";
$ScriptAdmMdf="admin_update. php";
global $SelectT;
echo "<table width=\"835\" border=\"0\"
cellpadding=\"3\" background=\"#FAF1D8\"
cellspacing=\"0\" >";
echo "<tr><td>";
include "body_list_header. php";
echo "Редактирование таблиц данных: ";
include "body_list_after_header. php";
echo "<table splitcell=3><tr>";
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
$ListF=mysql_list_fields($DB,$SelectT);
$CounterF=0;
while ($CounterF < mysql_num_fields($ListF)) {
$stItem=mysql_field_name($ListF,$CounterF);
$CounterF++;
$massField [$CounterF] =$stItem;
echo "<td bgcolor=#ffcc00 class=\"textblockBlue\">$massField
[$CounterF] </td>";
}
echo "<td bgcolor=#ffcc00
class=\"textblockBlue\">редактировать</td>";
echo "</tr><tr>";
$strSQL ="SELECT * FROM ". $SelectT. "; ";
$res=mysql_query($strSQL);
while ($Row=mysql_fetch_row($res)) {
for ($CounterF=0; $CounterF< mysql_num_fields($ListF); $CounterF++)
{
echo "<td class=\"textblockBlue\">$Row [$CounterF]
</td>";
}
echo "<td class=\"table_admin\"
align=\"center\">";
echo "<a href=\"$ScriptAdmMdf". "? t_name=".
urlencode($SelectT). "&t_index=". urlencode($Row [0]). "\">изменить<a>|";
echo "<a href=\"$ScriptAdmDel". "? t_name=".
urlencode($SelectT). "&t_index=". urlencode($Row [0]). "\">удалить<a>";
echo "</td></tr><tr>";
}
$ScriptAdmAdd=$ScriptAdmAdd. "? t_name=". urlencode($SelectT);
mysql_free_result($ListF);
echo "</tr></table>";
echo "<tr><td colspan=2><table>";
echo "<form name=\"FormName\"
method=\"post\" margin=\"0\" action=$ScriptAdmAdd>";
echo "<input type=\"submit\"
name=\"select\" style=\"height: 18\" class=\"buttonOrange\"
value=\"добавить\">|";
echo "<a class=\"light\" href=admin. php>возврат</a>";
echo "</form>";
include "body_list_footer. php";
echo "</table></td></tr></table>";
include "buttom. php";
? >
</body>
</html>
Г.2 Листинг модуля "admin_add. php"
<html>
<head>
<title> Remote Learning Institute | Administration</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<body>
<? include "header. php"? >
<?
$ScriptAdm = "admin_add_check. php";
global $t_name,$t_index;
echo "<table width=\"835\" border=\"0\"
cellpadding=\"3\" background=\"#FAF1D8\"
cellspacing=\"0\" >";
echo "<tr><td>";
include "body_list_header. php";
echo
"Добавление данных в таблицу: ";
include "body_list_after_header. php";
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
$t_name= urldecode($t_name);
$ListF=mysql_list_fields($DB,$t_name);
$CounterF=0;
echo "<form name=\"FormName\"
method=\"get\" margin=\"0\"
action=\"$ScriptAdm\">";
while ($CounterF < mysql_num_fields($ListF)) {
$stItem=mysql_field_name($ListF,$CounterF);
$CounterF++;
$massField [$CounterF] =$stItem;
echo "<span
class=\"textonlightblue\"><b>$massField [$CounterF] </b></span><br>";
echo "<input type=\"text\" name=\"". $massField
[$CounterF]. "\"
class=\"textblockBlue\"><br>";
}
echo "<input type=\"hidden\"
name=\"t_name\" value=\"". $t_name. "\"class=\"textblockBlue\"><br>";
echo "<input type=\"button\"
name=\"back\" style=\"height: 18\"
class=\"buttonOrange\" value=\"возврат\"
onClick=\"self. history. back(); \">|";
echo "<input type=\"submit\"
name=\"select\" style=\"height: 18\"
class=\"buttonOrange\" value=\"ок\">";
echo "</form>";
include "body_list_footer. php";
echo "</td></tr></table>";
include "buttom. php"? >
</body>
</html>
Г.3 Листинг модуля "admin_del. php"
<html>
<head>
<title> Remote Learning Institute | Administration</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<body>
<? include "header. php";
$ScriptAdm ="admin_edit. php";
global $t_name,$t_index;
echo "<table width=\"835\" border=\"0\"
cellpadding=\"3\" background=\"#FAF1D8\"
cellspacing=\"0\" >";
echo "<tr><td>";
include "body_list_header. php";
echo
"удаление данных из таблицы: ";
include "body_list_after_header. php";
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
$ListF=mysql_list_fields($DB,$t_name);
$CounterF=0;
$ScriptAdm = $ScriptAdm. "? SelectT=". urlencode($t_name);
while ($CounterF < mysql_num_fields($ListF)) {
$stItem=mysql_field_name($ListF,$CounterF);
$massField [$CounterF] =$stItem;
$CounterF++;
}
$strSQL="DELETE FROM ". $t_name. " WHERE ". $massField
[0]. "='". $t_index. "'";
mysql_query($strSQL);
echo "<form name=\"FormName\"
method=\"post\" margin=\"0\" action=$ScriptAdm>";
echo "<span class=\"textonlightblue\"><b>Запись
удалена</b></span><br>";
echo "<input type=\"submit\"
name=\"select\" style=\"height: 18\"
class=\"buttonOrange\" value=\"готово\">";
echo "</form>";
include "body_list_footer. php";
echo "</td></tr></table>";
include "buttom. php";
? >
</body>
</html>
Г.4 Листинг модуля "admin_update. php"
<html>
<head>
<title> Remote Learning Institute | Administration</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<body>
<? include "header. php"? >
<?
$ScriptAdm = "admin_update_check. php";
global $t_name,$t_index;
echo "<table width=\"835\" border=\"0\"
cellpadding=\"3\" background=\"#FAF1D8\"
cellspacing=\"0\" >";
echo "<tr><td>";
include "body_list_header. php";
echo "Изменение данных в записи: ";
include "body_list_after_header. php";
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
$t_name= urldecode($t_name);
$ListF=mysql_list_fields($DB,$t_name);
$CounterF=0;
echo "<form name=\"FormName\"
method=\"get\" margin=\"0\"
action=\"$ScriptAdm\">";
$stItem=mysql_field_name($ListF,$CounterF);
$sqlstr = "SELECT * FROM ". $t_name. " WHERE ". $stItem.
"='". $t_index. "'; ";
$res=mysql_query($sqlstr);
$Row=mysql_fetch_row($res);
echo "<input type=\"hidden\"
name=\"id_tab\" value=\"". $Row [0]. "\">";
while ($CounterF < mysql_num_fields($ListF)) {
$stItem=mysql_field_name($ListF,$CounterF);
$CounterF++;
$massField [$CounterF] =$stItem;
echo "<span
class=\"textonlightblue\"><b>$massField [$CounterF] </b></span><br>";
echo "<input type=\"text\" name=\"". $massField
[$CounterF]. "\" class=\"textblockBlue\"
value=\"". $Row [$CounterF-1]. "\"><br>";
}
echo "<input type=\"hidden\"
name=\"t_name\" value=\"". $t_name. "\"class=\"textblockBlue\"><br>";
echo "<input type=\"button\"
name=\"back\" style=\"height: 18\"
class=\"buttonOrange\" value=\"возврат\"
onClick=\"self. history. back(); \">|";
echo "<input type=\"submit\"
name=\"select\" style=\"height: 18\"
class=\"buttonOrange\" value=\"ок\">";
echo "</form>";
include "body_list_footer. php";
echo "</td></tr></table>";
include "buttom. php"? >
</body>
</html>