Будет форма с 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 Форма добавления новой анкеты
Рис 2.1 Схема базы данных
Названия с пометкой T – это название таблиц, названия с пометкой PK – первичный ключ. База данных состоит из 4 таблиц. Связями указаны поля взаимодействия с первичных ключей с остальными полями.
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> </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']))