Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SIS_20170113_1.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
981.53 Кб
Скачать

Список использованных Источников

  1. ООО «1С-Софт». 1С:Образование. Автоматизация учебного процесса. [В Интернете] [Цитировано: 12 Декабрь 2016 г.] http://obrazovanie.1c.ru/.

  2. Moodle – Open-source learning platform. [В Интернете] [Цитировано: 12 Декабрь 2016 г.] https://moodle.org.

  3. АО «БАРС Груп». БАРС.Web-Образование. [В Интернете] [Цитировано: 12 Декабрь 2016г.] https://uko.edu-penza.ru.

  4. Колисниченко Д. Н. PHP и MySQL. Разработка Web-приложений. СПб. : БХВ-Петербург, 2013.

  5. ГОСТ 19.701-90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. [В Интернете] [Цитировано: 12 Декабрь 2016 г.] http://cert.obninsk.ru/gost/282/282.html.

  6. Wikimedia Foundation, Inc. Википедия — свободная энциклопедия. [В Интернете] 2016 г. [Цитировано: 12 Декабрь 2016 г.] https://ru.wikipedia.org.

  7. Руководство по PHP. [В Интернете] [Цитировано: 12 Декабрь 2016 г.] http://php.net/manual/ru/.

  8. Free Software Foundation. Стандартная общественная лицензия GNU (GPL). Проект GNU - Фонд свободного программного обеспечения. [В Интернете] [Цитировано: 12 Декабрь 2016 г.] https://www.gnu.org/licenses/gpl.html.

  9. The PHP Group. The PHP License, version 3.01. PHP: Hypertext Preprocessor. [В Интернете] [Цитировано: 12 Декабрь 2016 г.] http://php.net/license/3_01.txt.

  10. Кузнецов М. В., Симдянов И. В., Голышев С. В. РНР5. Практика создания web-сайтов. СПб. : БХВ-Петербург, 2006.

  11. Мержевич В. webref.ru. WebReference. [В Интернете] [Цитировано: 12 Декабрь 2016 г.] http://htmlbook.ru

  12. Мержевич В. htmlbook.ru. Для тех, кто делает сайты. [В Интернете] [Цитировано: 12 Декабрь 2016 г.] http://htmlbook.ru.

  13. SafeMysql. Класс для безопасной и удобной работы с MySQL. [В Интернете] [Цитировано: 12 Декабрь 2016 г.] http://phpfaq.ru/SafeMysql.

Приложение 1. Схема взаимодействия пользователя с интерфейсом системы

Приложение 2. Фрагменты кода php-файлов

ФАЙЛ Index.php

<?php define('_ACCESS',1);

include_once 'settings.php';

?>

<?php

if (!$user['id']) {

?>

<a href="#enter" class="icon fa-sign-in active"><span>Вход</span></a>

<?php

}else{

?>

<a href="/system/#work" class="icon fa-user active"><span>Кабинет</span></a>

<a href="actions/logout.php" class="icon fa-sign-out"><span>Выход</span></a>

<?php

}

if (!$user['id']) {

?>

<h2>Вход в систему</h2>

<p>Введите Ваши учётные данные для входа в систему. <br>Если у Вас нет таких данных, обратитесь к системному администратору.</p>

<?php if ($user['error']){

?>

<p style="color:#f00;"> <?php echo $user['error']; ?></p>

<?php

}

?>

<form action="actions/login.php" method="post">

<div>

<div class="row">

<div class="6u 12u$(mobile)">

<input type="text" name="login" placeholder="Логин" required />

</div>

<div class="6u$ 12u$(mobile)">

<input type="password" name="pass" placeholder="Пароль" required />

</div>

<div class="12u$">

<input type="submit" value="Войти" />

</div>

</div>

</div>

</form>

<?php

}else{

$group_name = $db->getOne('SELECT `name` FROM `groups` WHERE `id`= ?i',$user['_group']);

?>

<h2><?php echo $user['name'];?> </h2> <?php echo $group_name;?>

<?php

if ($_GET['p'] && file_exists('pages/'.$_GET['p'].'.php')){

include 'pages/'.$_GET['p'].'.php';

}else{

include 'pages/cab.php';

} ?>

ФАЙЛ settings.php

<?php defined('_ACCESS') or die ('Error!');

mb_internal_encoding('UTF-8'); // Устанавливаем кодировку строк

setlocale(LC_ALL, 'ru_RU.UTF-8');

include_once 'safemysql.php';

$db=new SafeMysql (array('user'=>'school_system','pass'=>**********,'db'=>'school_system','charset'=>'utf8'));

session_start();

$user=$db->getRow("select * from `users` WHERE `id`=?i LIMIT 1",$_SESSION ['user']['id']);

if (!$user) {

if ($_SESSION['error']) {

$user['error']=$_SESSION['error'];

}

session_destroy();

session_start();

}

?>

ФАЙЛ pages/cab.php

<?php defined('_ACCESS') or die ('Error!');

switch ($user['_group']){

case '1':

include 'cab/admin.php';

break;

case '2':

include 'cab/headmaster.php';

break;

case '3':

include 'cab/headteacher.php';

break;

case '4':

include'cab/teacher.php';

break;

case '5':

include'cab/student.php';

break;

default:

}

?>

ФАЙЛ pages/cab/student.php

<?php defined('_ACCESS') or die ('Error!');

switch ($_GET['section']){

case 'subjects':

include 'student/subjects.php';

break;

case 'task':

include 'student/task.php';

break;

case 'tasks':

include 'student/tasks.php';

break;

case 'works':

include 'student/works.php';

break;

default: include 'student/subjects.php';

}

?>

ФАЙЛ pages/cab/student/subjects.php

<h3>Актуальные задания</h3>

<?php defined('_ACCESS') or die ('Error!');

$tasks=$db->getAll('select `tasks`.* from `tasks` where `tasks`.`date-deadline` > now() and `tasks`.`id` in (select `_task` from `task_grade_subject` where `_grade` in (select `_grade` from `user_grade` where `_user`=?i)) and `tasks`.`id` not in(select `_task` from `works` where `_user`=?i)', $user['id'],$user['id']);

?>

<div style="clear:both;padding:0px;"></div>

<ul>

<?php

foreach($tasks as $task){

echo '<li><a href="?p=cab&section=task&task='.$task['id'].'">'.$task['title'].'</a></li>';

}

?>

</ul>

<div style="clear:both;padding:0px;"></div>

<h3>Список предметов:</h3>

<div style="clear:both;padding:0px;"></div>

<?php

$subjects=$db->getAll('select * from `subjects` where `id` in (select `_subject` from `subject_user` where `_user`=?i)', $user['id']);

foreach ($subjects AS $subject){

?><div><a href="/system/?p=cab&section=tasks&subject=<?php echo $subject ['id'];?>"> <?php echo $subject ['name']?></a></div><?php

}

?>

ФАЙЛ pages/cab/student/task.php

<?php defined('_ACCESS') or die ('Error!');

$task=$db->getRow("select `tasks`.*,`files`.`id` as `id_f`,`files`.`filename` from `tasks` left join `files` on (`tasks`.`_file`=`files`.`id`) where `tasks`.`id` =?i", $_GET['task']); ?>

<h3>Задание «<?php echo $task['title'];?>»</h3>

<?php echo $task['info'];?>

<?php if($task['_file']){?><a href="/system/files/tasks/<?php echo $task['filename'];?>">Открыть файл к заданию</a><br><?php }?>

<h3>Список загруженных работ</h3>

<?php

$works=$db->getAll('select `works`.*,`works`.`id` as `id_w`,`files`.*,`files`.`type` as `type_f` from `works` left join `files` on (`works`.`_file`=`files`.`id`) where `works`.`_user`=?i and `_task`=?i',$user['id'],$_GET['task']);

if(count($works)){

?>

<?php

foreach ($works as $work){

?>

<div>

<div style="padding: 5px;"><i class="fa fa-file" aria-hidden="true"></i> Загрузка от <?php echo $work['date-send'];?> <a href="/system/files/works/<?php echo $work['filename'];?>">Просмотр файла</a> - <?php if ($work['mark']!=''){echo 'Оценка: '.$work['mark'];}else{echo '<i>не оценено</i>';}?>

</div>

<span><?php echo $work['info'];?></span>

<?php if ($work['comment']!=''){echo '<br><b>Комментарий:</b> '.$work['comment'];} ?>

<form method="POST" enctype="multipart/form-data" action="/system/actions/work.php">

<input type="hidden" name="id_w" value="<?php echo $work['id_w'];?>">

<input type="hidden" name="task" value="<?php echo $_GET['task'];?>">

<input type="submit" name="delete" value="Удалить">

</form>

</div>

<?php

}

}else{

echo '<div>Загруженных работ ещё нет</div>';

} ?>

</div>

<h3>Загрузить новую работу</h3>

<form method="POST" enctype="multipart/form-data" action="/system/actions/work.php">

<input type="hidden" name="task" value="<?php echo $_GET['task'];?>">

<textarea name="info" placeholder="Информация"></textarea>

<select name="type_f">

<option value="Документ">Документ</option>

<option value="Изображение">Изображение</option>

<option value="Архив">Архив</option>

<option value="Любой файл">Любой файл</option>

</select>

<input type="file" name="_file">

<input type="submit" name="download" value="Загрузить">

</form>

ФАЙЛ system/actions/work.php

<?php define('_ACCESS',1);

include_once '../settings.php';

$info=$_POST['info'];

if (isset($_POST['download'])){

$a=explode('.', $_FILES['_file']['name']);

$ext=$a[count($a)-1];

$filename=$user['login'].'_'.date('YmdHis').'_'.intval(rand()*999).'.'.$ext;

if (is_uploaded_file($_FILES['_file']['tmp_name'])) {

move_uploaded_file($_FILES['_file']['tmp_name'], '../files/works/'.$filename);

}

$db->query("INSERT INTO `files` (`filename`, `type`, `date-upload`, `_user`) VALUES (?s, ?s, now(), ?s)", $filename,$_POST['type_f'],$user['id']);

$_file=$db->InsertId();

$db->query("INSERT INTO `works` (`_task`, `_file`, `date-send`, `mark`, `comment`, `_user`, `info`) VALUES (?s, ?s, now(), NULL, NULL, ?s, ?s) on duplicate key update `info`=?s, `_file`=?s ", $_POST ['task'], $_file, $user ['id'], $info, $info, $_file);

}elseif(isset($_POST['delete'])){

$db->query('delete from `works` where `id`=?i',$_POST['id_w']);

}

header('Location: '.$_SERVER['HTTP_REFERER']);

?>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]