Смекни!
smekni.com

Создание инструментального средства для организации социологических опросов (стр. 3 из 5)

Будет форма с 3 полями в 1 поле надо ввести имя, во 2 пароль, в 3 подтверждение пароля.

Форма регистрации отражена на рисунке 7.1.

Рис 7.1 Форма регистрации

Для подтверждения информации нажмите кнопку.

Совершится переход на главную страницу, где следует ввести ваш зарегистрированный логин и пароль.

Если вы авторизуетесь как пользователь, вам следует выбрать любую анкету и нажать на её называние.

Требуется заполнить анкету, после чего нажмите на кнопку для её сохранения. Пользователь может пройти анкету одного типа один раз.

Для авторизации как администратор вам следует перейти к панели администратора нажатием на ссылку, для авторизации нужно проделать те же действия как и обычному пользователю.

На Рис. 7.2 отражена панель администратора.


Рис. 7.2. Панель администратора.

После авторизации вы увидите форму, на которой вы можете изменять имя и пароль пользователей.

Так же есть возможность редактировать анкеты, то есть удалять изменять и добавлять новые. Чтобы сделать это нажимайте на соответствующие кнопки.

7.3 Форма управления пользователями

После добавления или изменения анкеты нажмите на кнопку, чтобы изменения вступили в силу.

ЗАКЛЮЧЕНИЕ

PHP (читается как пи-эйч-пи) - один из популярнейших языков программирования в сети Интернет. Дословно аббревиатура переводиться как Personal Home Page[5].

PHP практикует в разных направлениях, но больше его используют в глобальной сети Интернет. Главной ее задачей становится создать динамическую Web-страницу. Яркими примерами можно взять чаты, форумы, гостевые книги, доски объявлений, средства голосования, почты, поиска, в общем, при помощи этого языка можно сделать все, что сейчас можно увидеть в сети[6].

В процессе выполнения курсового проекта, были выполнены следующие задачи:

· Постановка задачи;

· Обоснование выбранных технических средств и программного обеспечения (системного и средств разработки);

· Структура базы данных;

· Структура приложения;

· Описание интерфейса и отчетных форм;

· Программная реализация;

· Руководство пользователя;

· Реализация приложения.

В процессе выполнения курсового проекта были сделаны следующие выводы:

· Для реализации системы авторизации следует использовать механизм сессий.

· Хранения данных регистраций и анкет следует осуществлять в базе данных MYSQL

· HTML-страницы следует строить с помощью таблиц, для последующего удобного форматирования.

Список используемых источников

1. Кузнецов Максим, Симдянов Игорь Объектно-ориентированное программирование на PHP. — Спб.: «БХВ-Петербург», 2007. — С. 608. — ISBN 978-5-9775-0142-2

2. Кристиан Уэнц PHP. Карманный справочник = PHP Phrasebook. — М.: «Вильямс», 2007. — С. 384. — ISBN 0-672-32817-8

3. Эд Леки-Томпсон, Алек Коув, Стивен Новицки, Хьяо Айде-Гудман PHP 5 для профессионалов = Professional PHP 5. — М.: «Диалектика», 2006. — С. 608. — ISBN 0-7645-7282-2

4. Кузнецов Максим, Симдянов Игорь Самоучитель PHP 5. — 2-е изд., перераб. и доп.. — Спб.: «БХВ-Петербург», 2006. — С. 608. — ISBN 5-94157-884-9

5. Кузнецов Максим, Симдянов Игорь, Голышев Сергей PHP 5. Практика создания Web-сайтов. — Спб.: «БХВ-Петербург», 2005. — С. 960. — ISBN 5-94157-552-1

6. Кузнецов Максим, Симдянов Игорь Головоломки на PHP для хакера. — Спб.: «БХВ-Петербург», 2006. — С. 464. — ISBN 5-94157-837-7

7. Кузнецов Максим, Симдянов Игорь, Голышев Сергей PHP 5 на примерах. — Спб.: «БХВ-Петербург», 2005. — С. 576. — ISBN 5-94157-670-6

8. Дмитрий Котеров, Алексей Костарев PHP. В подлиннике. — Спб.: «БХВ-Петербург», 2005. — С. 1120. — ISBN 5-94157-245-Х


приложение 1

Разработанная анкета

Рис 1.1 Форма добавления новой анкеты

приложение 2

Схема базы данных

Рис 2.1 Схема базы данных

Названия с пометкой T – это название таблиц, названия с пометкой PK – первичный ключ. База данных состоит из 4 таблиц. Связями указаны поля взаимодействия с первичных ключей с остальными полями.


приложение 3

Листинг программных модулей

Function.php

<?php

$db_host = "localhost";

$db_user = "root";

$db_pass = "";

$db_name = "sql";

$rezult = @mysql_connect($db_host,$db_user,$db_pass);

if(!$rezult)

die('Ошибка соединение с БД');

$rez = @mysql_select_db($db_name);

if(!$rezult)

die('База данных не найдена');

function user_sess_beg() {

global $CURRENT_USER;

$_SESSION['name']=$_REQUEST['name'];

$_SESSION['user']=true;

$_SESSION['check']=md5(session_id().$_REQUEST['name'].$_REQUEST['pass']);

$CURRENT_USER = htmlspecialchars($_SESSION['name']);

}

function admin_sess_beg(){

global $CURRENT_USER;

$_SESSION['admin']=md5("Admin"."pass");

$_SESSION['name'] = "Ann & Katya";

$CURRENT_USER = "Ann & Katya";

}

function check_user($name,$pass){

$sql = "SELECT * FROM user WHERE name = '$name' and pass='$pass'";

$result = @mysql_query($sql);

if(@mysql_num_rows($result))

return true;

else

return false;

}

function check_sess(){

@$name = $_SESSION['name'];

$sql = "SELECT * FROM user WHERE name='$name'";

$result = @mysql_query($sql);

if(@mysql_num_rows($result)){

$user=mysql_fetch_assoc($result);

$check = md5(session_id().$user['name'] .$user['pass']);

if($_SESSION['check']==$check)

return true;

else

return false;

}

else return false;

}

function html_head()

{

global $CURRENT_USER;

?>

<html>

<head>

<title>Анкета</title>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

</head>

<body bgcolor="#ffff00"><table height="100%" width="100%" style="border:double; border-color:#ff33cc; background-color:#ff33cc; color:#0000cc; font-weight: 500; border-width: 20;">

<tr>

<td height="39" style="border:double; border-color:#ff33cc; background-color:#ff33cc; color:#0000CC; font-weight: 500; border-width: 20;">

<p><h2> Имя текущего пользователя:</h2>

<h2><?=$CURRENT_USER;?></h2>

</p></td>

</tr>

<tr>

<td>

<?

}

function html_footer()

{

?></tr></td></table></boby><?

}

function show_text_quest($quest)

{

if($quest['type']==1) echo $quest['quest'];

else {

$arr = split(';',$quest['quest']);

echo $arr[0];

}

}

function show_quest($quest,$i)

{

switch($quest['type']) {

case '1': ?>

<input type="text" maxlength="60" width="400" name="answers[<?=$i?>][2]">

<? break;

case '2': $arr = split(';',$quest['quest']); $num = count($arr);

for($j=1;$j<$num;$j++) {

?>:<input type="radio" checked name="answers[<?=$i?>][2][]" value="<?=$arr[$j];?>"><? echo $arr[$j];?><br>

<?}; break;

case '3': $arr = split(';',$quest['quest']); $num = count($arr);

for($j=1;$j<$num;$j++) {

?>:<input type="checkbox" name="answers[<?=$i?>][2][]" value="<?=$arr[$j];?>"><? echo $arr[$j];?><br><?};

break;

case '4':

$arr = split(';',$quest['quest']); $num = count($arr);

?><select size="1" name="answers[<?=$i?>][2]">

<? for($j=1;$j<$num;$j++) { ?>

<option value="<?=$arr[$j]?>"> <?=$arr[$j]?> </option>

<? }; ?></select> <?

break;

default:?> Неверный тип вопроса <? break;

} ?>

<input name="answers[<?=$i?>][1]" type="hidden" value="<?=$quest['idquest']?>" />

<?}

function Print_ank(){

$sql = "SELECT * FROM `ank`";

$result = @mysql_query($sql);

if(@mysql_num_rows($result))

{

echo "<ol>";

while($ank=mysql_fetch_assoc($result))

{

$str = "<li>"

."<a href='form.php?formid=" .$ank['idank'] ."'>" .$ank['title']."</a>"

."</li>";

echo $str;

}

echo "</ol>";

}

else

echo "ВБДнетанкет";

}

function showuser($name)

{

$sql = "SELECT * FROM `user` WHERE `name` = '$name'";

$result = @mysql_query($sql);

$result = mysql_fetch_assoc($result);

?>

<form name="form1" method="post" action="index.php">

<input name="id" type="hidden" value="<?=$result['id']?>">

<table width="100%" border="1" align="center" style="border:double; border-color:#ff33cc; background-color:#ff33cc; color:#0000CC; font-weight: 500; border-width: 20;">

<tr>

<td><div align="center"><font color="#000033" >Имя</font></div></td>

</tr>

<tr>

<td><div align="center"><font color="#000033">

<input type="text" name="name" value="<?=$result['name']?>">

</font></div></td>

</tr>

<tr>

<td><div align="center"><font color="#000033">Пароль:</font></div></td>

</tr>

<tr>

<td><div align="center"><font color="#000033">

<input type="text" name="pass" value = "<?=$result['pass']?>">

</font></div></td>

</tr>

<tr>

<td><div align="center"><font color="#000033"><font size="1">Введитепарольдляподтверждения <br> </font></font><font color="#000033">

<input type="text" name="pass2">

</font></div></td>

</tr>

<tr>

<td><div align="center"> <font color="#000033">

<input name="apply" type="submit" id="apply" value="Применить">

</font></div></td>

</tr>

<tr>

<td>&nbsp;</td>

</tr>

</table>

</form>

<?

}

function apply_change($name, $pass)

{

if($name =="" || $pass =="")

die("<p><a href='index.php'>Назад</a>");

$id = htmlspecialchars(trim($_REQUEST['id']));

if(is_numeric($id))

{

$sql = "UPDATE `user` SET `name` = '$name', `pass` = '$pass' WHERE `id` =$id LIMIT 1";

$result = @mysql_query($sql);

}

}

function admin_menu()

{ ?>

<tr>

<td align="right" height="20" style="border:double; border-color:#FF33cc; background-color:#FF33cc; color:#0000CC; font-weight: 500; border-width: 20;">

Главное меню <hr />

<a href="?user_edit">Управление пользователями</a>

<a href="?ank_edit">Управление анкетами</a>

<a href="?answers">Просмотррезультатов</a>

<a href="?exit">Выход</a></td>

</tr> <? }

function show_my_body(){

?>

<p align="center"><strong><font color="#33ff33" size="+4">Добропожаловатьвпанельадминистрирования.</font></strong></p>

<?

}

?>

Ankets_manager.php

<?php

if(!isset($_SESSION['admin']) && $_SESSION['admin']!=md5("Admin"."pass")) die("Доступ запрещен");

$i=0;

$idank=0;

if(isset($_REQUEST['ank_del']) &&isset($_REQUEST['ankID']))