Разработка системы доступа к ресурсам образовательного веб-портала вуза
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
я подгруппы Преподаватель-ocenki_stud.phpРесурс просмотра оценок, доступный для подгруппы Студент-www/ /libraryAcl.php Role.php+Resource.php и др.Библиотека классов ZendFramework-
Листинг скрипта auth. php:
<?php
// Инициализируем начало сессии_start();
//Поключаем файл конфигурации("config.inc.php");
//Подключаемся к БД
$link = mysql_connect($DBSERVER, $DBUSER, $DBPASS)
or die("Не могу подключиться" );
// сделать $DB текущей базой данных_select_db($DB, $link) or die (Не могу выбрать БД);
//Если нет сессий(md5(crypt($_SESSION[user],$_SESSION[password])) != $_SESSION[SID])
{
//Если кнопка не нажата, отображаем форму(!$_POST[do]){
//Вывод ФОРМЫ авторизации("AUTHform.php");
}
//Если кнопка нажата
if($_POST[do]) {
//Проверяем данные
$login = $_POST[login];
$upass = $_POST[password];($login != AND $upass !=) {
//Создаем запрос
$q1=mysql_query("SELECT * FROM users WHERE nick=".$login." AND password=".md5($upass)." AND status=1");
//Проверяем существует ли хоть одна запись
if(mysql_num_rows($q1)===1) {
//Если есть, то создаем сессии и перенаправляем на эту страницу
$r=mysql_fetch_array($q1);
$_SESSION[user] = $r[nick];
$_SESSION[password] = $r[password];
$_SESSION[SID] = md5(crypt($r[nick],$r[password]));
//скрипт РАСПРЕДЕЛЕНИЯ ПРАВ ДОСТУПА("gut_acl.php");
//скрипт для вывода логина авторизованного пользователя+ кнопки управления
include("output_login.php");
@Header("Location: auth.php");
}{echo Неверный логин/пароль; Возможно Ваш аккаунт не активирован;}
}{echo Введите данные;}
}
}{
скрипт для вывода логина авторизованного пользователя+ кнопки управления("output_login.php");
блок для вывода шаблонов страниц портала
if($_GET[page] !=) {
@include("tpl/".$_GET[page].".php");
}{ @include("tpl/default.php");}
}($_GET[exit]) {@session_destroy(); unset($_GET[exit]); mysql_close($link); @Header("Location: auth.php");}
?>
Листинг скрипта DB_users.php:
<?php
// Подключаемся к MySQL("SERVER", "localhost");("USERNAME", "root");("PASSWORD", "");
$link = mysql_connect (SERVER, USERNAME, PASSWORD);( !$link ) die ("Couldnt connect to MySQL");
// Создаем базу данных REG
$DB= mysql_query(CREATE DATABASE if not exists REG);(!$DB)
{("");
}
{"";
}
//Сделаем REG текущей базой данных
$registr = mysql_select_db(REG, $link);
if (!$registr)
{("");
}
{"";
}
// Создаем таблицу users
$DB_t1 = mysql_query(CREATE TABLE users
( id INT( 6 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,VARCHAR( 30 ) NOT NULL,VARCHAR( 50 ) NOT NULL,VARCHAR( 50 ) NOT NULL,_id VARCHAR( 50 ) NOT NULL,INT( 1 ) NOT NULL,_date INT( 8 ) NOT NULL,INT( 8 ) NOT NULL )
);(!$DB_t1)
{("");
}
{"";
}
//Завершаем работу с БД(!mysql_close($link))
{"";
}
{"";
}
?>
Листинг скрипта config.inc.php:
<?php
//Файл конфигурации с данными для MySQL:
//Сервер
$DBSERVER = "localhost";
//Пользователь
$DBUSER = "root";
// Пароль
$DBPASS = "";
//База данных
$DB = "REG";
?>
Листинг скрипта functions.inc.php:
<?php
// Файл с функциями
//Функция проверки корректности введенного e-mailа
function checkmail($mail) {
// удаляем крайние пробелы
$mail=trim($mail);
// если пусто - выход
if (strlen($mail)==0) return -1;(!preg_match("/^[a-z0-9_-]{1,20}+(\.){0,2}+([a-z0-9_-]){0,5}@(([a-z0-9-]+\.)+(com|net|org|mil|".
"edu|gov|arpa|info|biz|inc|name|[a-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-".
"9]{1,3}\.[0-9]{1,3})$/is",$mail))-1;$mail;
}
//Функция отправки почтыsendmail($mail,$subject,$message,$headers) {(mail($mail,$subject,$message,$headers))
{ return TRUE;}{return FALSE;}
}
?>
Листинг скрипта gut_acl.php:
<?php
// Путь к файлам с классами Zendа
set_include_path(library);
// Подключаем необходимые классы_once Zend/Acl.php;_once Zend/Acl/Role.php;_once Zend/Acl/Resource.php;
// Создание списка контроля доступа ACL (объект Zend_Acl)
$acl = new Zend_Acl();
// ДОБАВЛЕНИЕ ПОЛЬЗОВАТЕЛЕЙ(РОЛЕЙ)
// Выполним добавление ГРУПП пользователей
//ГРУППА действующих(реальных) пользователей
$acl->addRole(new Zend_Acl_Role(users_group))
//Подгруппа учащиеся=group_std
>addRole(new Zend_Acl_Role(group_std), users_group)
//Подгруппа сотрудники=group_sotrud
>addRole(new Zend_Acl_Role(group_sotrud),users_group);
//ГРУППА возможных(потенциальных) пользователей
$acl->addRole(new Zend_Acl_Role(pt_users_group))
//подгруппа потенциальные учащиеся=pt_group_std
->addRole(new Zend_Acl_Role(pt_group_std), pt_users_group)
//подгруппа потенциальные сотрудники=pt_group_sotrud
->addRole(new Zend_Acl_Role(pt_group_sotrud), pt_users_group);
// Добавление пользователей без наследования прав
// пользователь ГОСТЬ
$acl->addRole(new Zend_Acl_Role(guest))
// АДМИНИСТРАТОР web-портала
>addRole(new Zend_Acl_Role(admin))
// Добавление ПОДГРУПП пользователей с наследованием прав от 3-х категорий
//Подгруппы действующих(реальных) пользователей:
//Подгруппа группы сотрудники МЕТОДИСТ=metodist
->addRole(new Zend_Acl_Role(metodist),array(guest,users_group, group_sotrud ))
//Подгруппа группы сотрудники преподаватель=prepodavatel
>addRole(new Zend_Acl_Role(prepodavatel), array(guest,users_group, group_sotrud ))
//Подгруппа группы сотрудники администрация(административная должность)=administration
->addRole(new Zend_Acl_Role(admini