Список используемых источников
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%" 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" 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 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'])) { $id = htmlspecialchars($_REQUEST['ank_del']);
$query ="DELETE FROM `quest` WHERE `idank` = '$id'"; mysql_query($query); $query ="DELETE FROM `ank` WHERE `idank` = '$id'"; mysql_query($query); die("<p><a href='index.php'>Анкета удалена</a>"); }
if(isset($_REQUEST['save_new'])) { if(!isset($_REQUEST['name']) || !isset($_REQUEST['newquest'])) die("<p><a href='index.php'>Ошибка</a>"); $newq = $_REQUEST['newquest']['text']; $query = "SELECT COUNT(*) FROM ank WHERE `title` ='".$newq ."'"; $name = $_REQUEST['name']; $type = $_REQUEST['newquest']['type']; $result = @mysql_query($query); if(mysql_result($result,0)>0) return; $query = "INSERT INTO `ank` ( `idank` , `title` , `votes` ) VALUES ( '', '$name', '0' )"; $result = @mysql_query($query); $query = "SELECT idank FROM ank WHERE `title` = '$name'"; $result = @mysql_query($query); $idank = @mysql_result($result,0); $query = "INSERT INTO `quest` ( `id` , `idank` , `text`,`type`) VALUES ( '', '$idank', '$newq','$type')"; $result = @mysql_query($query); echo "<script>document.location.href='index.php?ank_edit=edit&ankID=$idank'</script>\n"; }
if(isset($_REQUEST['del']) &&isset($_REQUEST['ankID'])) { $id = $_REQUEST['del']; $query = "DELETE FROM `quest` WHERE id = $id LIMIT 1"; $result = @mysql_query($query); }
if(isset($_REQUEST['saveank'])) { @$name = $_REQUEST['name']; @$ankID = $_REQUEST['ankID']; @$quest=$_REQUEST['quest']; if($name!='') $query = "UPDATE `ank` SET `title` = '$name' WHERE `idank` =$ankID"; mysql_query($query); if(!is_array($quest)) return; foreach($quest as $k => $v) { $sql ="UPDATE `quest` SET `text` ='". $v['text'] ."',`type`='". $v['type']."' WHERE `id` =$k"; mysql_query($sql); } echo "<script>document.location.href='index.php?ank_edit=edit&ankID=$ankID'</script>\n"; }
if(isset($_REQUEST['newquest'])&& isset($_REQUEST['ankID'])&& $_REQUEST['newquest']['text']!="") if($_REQUEST['newquest']!='') { $id = htmlspecialchars($_REQUEST['ankID']); $text = htmlspecialchars($_REQUEST['newquest']['text']); $type = $_REQUEST['newquest']['type']; if(!is_numeric($id) && !is_null($id)) die("<p><a href='index.php'>Ошибка</a>"); $query = "INSERT INTO `quest` (`id`, `idank`, `text`,`type`) VALUES ('', '" .$id ."', '" .$text ."','" .$type ."')"; mysql_query($query); echo "<script>document.location.href='index.php?ankID=$id&&ank_edit=edit'</script>\n"; }
if(isset($_REQUEST['ankID'])) { $id = $_REQUEST['ankID']; if(is_numeric($id) && !is_null($id)) EditAnk($id); else die("<p><a href='index.php'>Ошибка</a>");
}elseif(isset($_REQUEST['addank'])) { NewAnk(); } else ListAnk(); function NewAnk() { ?> <form name="form1" method="post" action=""> <input name="ank_edit" type="hidden" value="go"> <input name="save_new" type="hidden" value="go"> <p align="center">Добавление анкеты </p> <table border="0" style="border:double; border-color:#FF33cc; background-color:#FF33cc; color:#0000CC; font-weight: 500; border-width: 20;"> <tr > <td color="#000033"><strong>Название анкеты: </strong></font></td> </tr> <tr > <td ><font color="#000033"><strong> <input type="text" name="name" size="70" /> </strong></font></td> </tr><tr> <td><font color="#000033"><strong>Вопрос:</strong></font></td> </tr> <tr> <td><font color="#000033"><strong> <input name="newquest[text]" type="text" size="80" /> Тип вопроса <select name="newquest[type]"> <option value="1">Текстовое поле</option> <option value="2">Радио группа</option> <option value="3">Флажок</option> <option value="4">Список</option> </select> </strong></font></td> </tr> <tr> <td><font color="#000033"><strong> <input type="submit" name="addquest" value="Добавить вопрос" /> <input name="saveank" type="submit" value="Сохранить анкету" /> </strong></font></td> </tr> </table> </form> <p align="center"> <? } function ListAnk(){ $query = "SELECT * FROM `ank`"; $result = @mysql_query($query); ?> </p><div align="center"> <p>Управление анкетами</p>
<table border="0" style="border:double; border-color:#FF33cc; background-color:#FF33cc; color:#0000CC; font-weight: 500; border-width: 20;"> <tr > <td color="#000033"> </font></td> <td color="#000033"><strong>Анкета: </strong></font></td> <td color="#000033"><strong>Ответов:</strong></font></td> <td color="#000033"> </font></td> <td color="#000033"> </font></td> </tr> <? if(@mysql_num_rows($result)) { while($ank=mysql_fetch_assoc($result)) { ?> <tr> <form action="index.php" method="post"> <td> </td> <td><?=$ank['title']?><input name="ankID" type="hidden" value="<?=$ank['idank']?>"></td> <td><?=$ank['votes']?></td> <td><input name="ank_edit" type="submit" value="Изменить" ></td> <td><a href="index.php?ankID=<?=$ank['idank']?>&&ank_edit=edit&ank_del=<?=$ank['idank']?>">Удалить</a></td ></tr> </form> <? } }else echo "В БД нет анкет"; ?> </table> <br /> <form action="index.php" method="post" name="form"> <input name="addank" type="hidden"> <input name="ank_edit" type="submit" value="Добавить анкету"> </form> </div> <? } function EditAnk($ankID) { $query = "SELECT * FROM `ank` WHERE idank=".$ankID; $result = @mysql_query($query); $ank = mysql_fetch_assoc($result); $query = "SELECT * FROM `quest` WHERE idank=".$ankID; $result = @mysql_query($query); ?> <form name="form1" method="post" action=""> <input name="ank_edit" type="hidden" value="<?=$ank['idank']?>"> <input name="ankID" type="hidden" value="<?=$ank['idank']?>"> <p> </p> <table border="0" style="border:double; border-color:#FF33cc; background-color:#FF33cc; color:#0000CC; font-weight: 500; border-width: 20;"> <tr > <td ><font color="#000033">Название анкеты: </font></td> <td ><font color="#000033"> <input name="name2" type="text" value="<?=$ank['title']?>" size="50" /> </font></td> <td><font color="#000033"> </font></td> </tr> <tr > <td><font color="#000033"> </font></td> <td><font color="#000033"> </font></td> <td><font color="#000033"> </font></td> </tr> <tr> <? while($quest = mysql_fetch_assoc($result)) { ?> </tr> <tr > <td><font color="#000033"> </font></td> <td><font color="#000033"> <input name="quest[<?=$quest['id']?>][text]" type="text" value="<?=$quest['text']?>" size="80" /> <select name="quest[<?=$quest['id']?>][type]"> <option value="1" <? if($quest['type'] == 1) echo 'selected="selected"'; ?>>Текстовое поле</option> <option value="2" <? if($quest['type'] == 2) echo 'selected="selected"'; ?>>Радио группа</option> <option value="3" <? if($quest['type'] == 3) echo 'selected="selected"'; ?>>Флажок</option> <option value="4" <? if($quest['type'] == 4) echo 'selected="selected"'; ?>>Список</option> </select> </font></td> <td><a href="index.php?ankID=<?=$ankID?>&&ank_edit=edit&del=<?=$quest['id']?>">Удалить</a></td> </tr> <?} ?> <tr > <td><font color="#000033"> </font></td> <td><font color="#000033"> </font></td> <td><font color="#000033"> </font></td> </tr> <tr > <td><font color="#000033">Новый вопрос</font></td> <td><font color="#000033"> <input name="newquest[text]" type="text" size="60" /> Тип <select name="newquest[type]"> <option value="1">Текстовое поле</option> <option value="2">Радио группа</option> <option value="3">Флажок</option> <option value="4">Список</option> </select> </font></td> <td><font color="#000033"> </font></td> </tr> <tr > <td><font color="#000033"> </font></td> <td><font color="#000033"> <input type="submit" name="addquest2" value="Добавить вопрос" /> </font></td> <td><font color="#000033"> <input name="saveank2" type="submit" value="Сохранить анкету" /> </font></td> </tr> </table> <p> </p> <p> </p> </form> <?} ?>
Result_view.php <?php if(!isset($_SESSION['admin']) && $_SESSION['admin']!=md5("Admin"."pass")) die("Доступ запрещен"); ?> <div align="center">Просмотр результатов <? if(isset($_REQUEST['showank'])) { if(is_numeric($_REQUEST['showank'])) show_ank($_REQUEST['showank']); }elseif(isset($_REQUEST['fs'])) { $idf = $_REQUEST['ank']; $idu = $_REQUEST['u']; if($idf=='' && $idu =='') die("Ошибка!!! <p><a href='index.php'>Назад</a>"); show_answer($idu,$idf); }else listank(); function show_ank($id) { $sql = "SELECT `title` FROM `ank` WHERE `idank` = '$id'"; $result = @mysql_query($sql); $title = @mysql_result($result,0); $sql = "SELECT DISTINCT(`iduser`) FROM `ans` WHERE `idank` =$id"; mysql_free_result($result); $result= @mysql_query($sql); ?> <br> </div> <br> <table border="0" style="border:double; border-color:#00ffff; background-color:#00ffff; color:#0000CC; font-weight: 500; border-width: 20;"> <tr> <td align="right"><font color="#000033"><strong>Анкета: </strong></font></div></td> <td color="#000033"><strong> <?=$title?> </strong></font></td> </tr> <tr> <td><font color="#000033"> </font></td> <td><font color="#000033"> </font></td> </tr> <tr> <td colspan="2"><div align="center"><font color="#000033"><strong>Ответившие пользователи</strong></font></div> <div align="center"></div></td> </tr> <tr> <td><div align="right"><font color="#000033">Имя пользователя: </font></div></td> <td> <font color="#000033"> <? while($user = mysql_fetch_array($result)) { $sql = "SELECT `name`, `id` FROM `user` WHERE `id` = " .$user[0]; $rez = @mysql_query($sql); $rez = @mysql_fetch_array($rez); echo '<a href="index.php?answers&fs&u=' .$rez[1] .'&ank=' .$id .'">' .$rez['name'] .'</a><br>'; } ?> </font></td> </tr></table> <? } function show_answer($idu,$idf){ $sql = "SELECT `name` FROM `user` WHERE `id` = $idu"; $result = @mysql_query($sql); $name = @mysql_result($result,0); $sql = "SELECT `title` FROM `ank` WHERE `idank` = '$idf'"; $result = @mysql_query($sql); $title = @mysql_result($result,0); $sql = "SELECT `idquest`, `answer` FROM `ans` WHERE `iduser`= $idu AND `idank` = $idf"; $result = @mysql_query($sql); ?> <br> <table border="0" style="border:ridge; border-color:#00ffcc; background-color:#00ffcc; color:#0000CC; font-weight: 500; border-width: 20;"> <tr > <td align="right"><font color="#000033" size="+2"><strong>Анкета: </strong></font></div></td> <td color="#000033"><strong> <?=$title?> </strong></font></td> </tr> <tr > <td><div align="right"><font color="#000033" size="+2"><strong>User:</strong></font></div></td> <td><font color="#000033"><b> <?=$name?> </b></font></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr > <td><div align="left"><font color="#000033" size="+2"><strong>Вопрос</strong></font></div></td> <td><div align="left"><font color="#000033"><strong><font size="+2">Ответ</font></strong></font></div></td> </tr> <? while($l = mysql_fetch_assoc($result)){ $sql = "SELECT `text` FROM `quest` WHERE `id` = " .$l['idquest']; $rez = @mysql_query($sql); $quest = @mysql_result($rez,0); ?> <tr > <td><div align="left"><font color="#000033"> <?=$quest?> </font></div></td> <td><div align="left"><font color="#000033"> <?=$l['answer']?> </font></div></td> </tr> <? } ?> </table> <? } function listank() { $sql = "SELECT * FROM `ank`"; $result = @mysql_query($sql);
if(mysql_num_rows($result)) { echo "<p>Выберите анкету для просмотра результатов </p>"; while($ank=mysql_fetch_assoc($result)) { $str = "<li><a href='index.php?answers&showank=" .$ank['idank'] ."'>" .$ank['title']."</a>"; echo $str; } echo "<br><br><br>"; } else echo "В БД нет анкет"; } ?> Приложение 4
Популярное: Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (244)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |