Разработка системы доступа к ресурсам образовательного веб-портала вуза

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



я подгруппы Преподаватель-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