Разработка системы управления и автоматизации электронной доски объявлений

Автор работы: Пользователь скрыл имя, 20 Октября 2014 в 11:51, дипломная работа

Краткое описание

Цель работы – разработка системы управления и автоматизации электронной доски объявлений. В процессе работы был выполнен аналитический обзор средств размещения деловой информации в Интернете, программных средств их реализации.
В результате работы была создана программная среда, отвечающая всем требованиям современных технологий.

Содержание

ОПРЕДЕЛЕНИЯ, ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ 4
Определения 4
Сокращения 4
ВВЕДЕНИЕ 5
1 КРАТКИЕ СВЕДЕНИЯ О ДОСКЕ ОБЪЯВЛЕНИЙ 6
2 ВЫБОР СРЕДСТВ РАЗРАБОТКИ 7
2.1 Язык HTML 7
2.2 Каскадные таблицы стилей 9
2.3 Язык JavaScript 11
2.4 Web-сервер Apache 11
2.5 Язык PHP 12
2.6 Система управления базами данных MySQL 16
3 СТРУКТУРА САЙТА 17
3.1 Категории и подкатегории 17
3.2 Страницы добавления 17
3.3 Модуль администрирования 17
4 ДИЗАЙН 17
4.1 Интерфейс 18
4.2 Графика 19
4.3 Браузерная совместимость 22
5 КОНСТРУКТОРСКИЙ РАЗДЕЛ 23
5.1 Шаблон сайта 23
5.2 Раздел «Добавить объявление» 24
5.3 Раздел отображаемый при выборе какой-либо категории 26
5.4 Раздел «Администрирование» 27
ЗАКЛЮЧЕНИЕ 32
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 33

Прикрепленные файлы: 1 файл

Копия Бакалаврская.doc

— 1.22 Мб (Скачать документ)

<td>";

if ($top_board['type'] == "P") {$type = "&nbsp;Предложение&nbsp;";} else $type = "&nbsp;Спрос&nbsp;";

echo "<font size=2 color=#888888>Тип  объявления: ".$type." &nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp; ";

$date = date("d.m.y", $top_board['time']);

echo "Дата добавления: ".$date." &nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp; ";

echo "Просмотров: [".$top_board['hits']."]</font><br>";

echo "<font size=4 style=\" font-family: Tahoma\" >

<br />

<strong><a href =\" http://". $_SERVER['HTTP_HOST'] ."/board/category/".$top_board['id_category']."/message/".$top_board['board_id']."/\"  title='".$top_board['title']."'><center>".$top_board['title']." </center></a></strong>

</font>

<br>";

echo "<strong>Автор: ".$top_board['autor']."</strong>";

echo"</td></tr></table><br />";

}

$query = mysql_query("SELECT A.id as board_id, A.*, B.* FROM board as A, board_cat as B WHERE A.id_category = B.id AND A.id_category = ". $_GET['id_cat']." AND A.checkbox_top = 0  ORDER by time DESC LIMIT $start, $COUNT_SHOW_BOARD");    

while($board = mysql_fetch_array($query))

echo"<table style=\"BORDER-BOTTOM: #E9E9E9 2px dashed; border-top: #E9E9E9 2px dashed\"  width=90% bordercolor=#EEEEEE bgcolor=#F8F8F8 align=center cellpadding=\"0\" cellspacing=\"10\">

<tr  title='".$board['title']."'>

<td><img src=\" http://". $_SERVER['HTTP_HOST'] ."/images/other_message.gif\" width=47 height=50 alt=\"Статус: Обычное  объявление\"></td>

<td>";

if ($board['type'] == "P") {$type = "&nbsp;Предложение&nbsp;";} else $type = "&nbsp;Спрос&nbsp;";

echo "<font size=2 color=#888888>Тип  объявления: ".$type." &nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp; ";

$date = date("d.m.y", $board['time']);

echo "Дата добавления: ".$date." &nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp; ";

echo "Просмотров: [".$board['hits']."]</font><br>";

echo "<font size=4 class=blue  style=\" font-family:Times\" ><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href =\" http://". $_SERVER['HTTP_HOST'] ."/board/category/".$board['id_category']."/message/".$board['board_id']."/\"  title='".$board['title']."'><center>".$board['title']." </center></a></strong></font><br>";

echo "<strong>Автор: ".$board['autor']."</strong>";

echo"</td></tr></table><br />";

}

$path_to_page = "board";

@show_page_list($_GET['page'], $num, $COUNT_SHOW_BOARD, $_GET['id_cat'], $path_to_page);

}

else

{

$title = "Доска объявлений | Категория ".$echo_cat['name_cat'];

$keywords = "Доска объявлений. Категория ".$echo_cat['name_cat']." | ".$echo_cat['description'];

$description = "Доска объявлений | Категория ".$echo_cat['description'];

include("design/itop.inc.php");

echo "<center><strong class=\"dark_red b up\"><h1>Доска бесплатных объявлений</h1></strong></center>";

echo "<center><h3>В данной категории ещё нет объявлений.</h3><BR><br>";

}

}

else

{

$title = "Доска объявлений";

$keywords = "Доска объявлений, авто, недвижимость, услуги, поиск работы, вакансии, мебель и интерьер, отдых и спорт, красота и здоровье, строительство и ремонт.";

$description = "Доска объявлений, авто, недвижимость, услуги, поиск работы, вакансии, мебель и интерьер, отдых и спорт, красота и здоровье, строительство и ремонт.";

include("design/itop.inc.php");

 

?>

<form name=primer action=http://<? echo $_SERVER['HTTP_HOST']; ?>/search/ method=post>

<input type=hidden name='w' value='{$w}'>

 

<table border=0 width=96%  bgcolor=fff1df cellspacing="10">

<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Пример: <SPAN style="CURSOR: hand; BORDER-BOTTOM: #000000 1px dotted; TEXT-DECORATION: none"

onclick="document.forms['primer'].search_word.value='Дом'"><strong>Дом</strong></span>&nbsp;&nbsp;&nbsp;

<a href="http://<? echo $_SERVER['HTTP_HOST']; ?>/board/add/" title="Добавить объявление" class="bg_dark_orange b"  style="color:#FFFFFF">Добавить  объявление</a>

 

</td></tr>

<tr ><td>

<INPUT size=35 name='search_word' type='text'>&nbsp;&nbsp;

<SELECT name=search_in  class=w99> 

<option value=title selected>в заголовках</OPTION>

<option value=text>в содержании</OPTION> 

</SELECT>     

<INPUT type=submit class=longok value=Найти></FORM>

</td></tr></table>

<?

function subcategory($id, $sub)

{

$categories = mysql_query("SELECT * FROM board_cat WHERE root_category = $id ORDER by name_cat ASC");

while($category = mysql_fetch_array($categories))

$num_mess = 0;

$num_mess = mysql_numrows(mysql_query("SELECT * FROM board WHERE id_category = ".$category['id']));

for($i = 0; $i < $sub; $i++) echo "";

echo "<a href=\"http://". $_SERVER['HTTP_HOST'] ."/board/".$category['id']."/\"

title=\"Категория: ".$category['name_cat']." | ".$category['description']."\"><font size=3 class=blue  style=\" font-family:Times\" ><strong>".$category['name_cat']."</strong></font></a>

<font size=2 color=#999999 title=\"Всего $num_mess объявл.\">$num_mess объявл.</font><br />";

 

subcategory($category['id'], $sub+1);

}

}

$categories = mysql_query("SELECT * FROM board_cat WHERE root_category = 0 ORDER by name_cat ASC");

 

echo "<table width=\"96%\" border=0 bordercolor=#000000 cellpadding=3 cellspacing=2 align=center><tr>";

 

$tr = "0";

while($category = mysql_fetch_array($categories))

{

$num_mess = 0;

$num_mess = mysql_numrows(mysql_query("SELECT * FROM board WHERE id_category = ".$category['id']));

 

echo "<td valign=top><table width=\"96%\" border=0 bordercolor=#000000 cellpadding=0 cellspacing=2 align=center><tr><td>";

$sub = 1;

echo "<a href=\"http://". $_SERVER['HTTP_HOST'] ."/board/".$category['id']."/\" title=\"Категория ".$category['name_cat']." на доске бесплатных  объявлений\"><img src=\"http://". $_SERVER['HTTP_HOST'] ."/upload/board/".$category['img']."\" border=0 width=90 height=65 alt=\"Категория ".$category['name_cat']." на доске бесплатных объявлений\"></a>

 

<a href=\"http://". $_SERVER['HTTP_HOST'] ."/board/".$category['id']."/\" title=\"Категория ".$category['name_cat']." | ".$category['description']."\"><font size=5 class=blue  style=\" font-family:Times\" ><strong>".$category['name_cat']."</strong></font></a>

<br /><span title=\"".$category['description']."\">".$category['description']."</span>

<br /><font size=2 color=#999999 title=\"Всего $num_mess объявл.\">$num_mess объявл.</font>";

 

echo "<table width=\"96%\" border=0 bordercolor=#000000 cellpadding=10 cellspacing=5><tr><td>";

subcategory($category['id'], $sub);

echo "</td></tr></table>";

echo "</td></tr></table></td>";

++$tr;

if ($tr % "2" == "0") {echo "</tr><tr>";}

}

echo "</tr></table>";

}

$num_mess_all = 0;

$num_mess_all = mysql_numrows(mysql_query("SELECT * FROM board"));

echo "<br><center><strong class=\"bg_gray b\"  style=\"color:#000000\">Всего объявлений в базе [".$num_mess_all."]</strong>&nbsp;&nbsp;&nbsp;<a href=\"http://". $_SERVER['HTTP_HOST'] ."/board/add/\" title=\"Добавить объявление\" class=\"bg_dark_orange b\" style=\"color:#FFFFFF\">Добавить объявление</a>&nbsp;&nbsp;&nbsp;<a href=\"http://". $_SERVER['HTTP_HOST'] ."/board/\" title=\"Все объявления\" class=\"bg_dark_blue b\" style=\"color:#FFFFFF\">Все объявления</a>";

include("design/foot.inc.php");

?>

 

Приложение А.1.3 Скрипт для создания Антиспам-картинки, используемой при добавлении объявления. Файл antispam.php 

<?PHP

$C_IMAGE_TYPE = 'PNG';

$C_WIDTH = 140;

$C_HEIGHT = 90;

$C_NUM_GENSIGN = 4;

$path_fonts = './fonts/';

$EXT = strtoupper($HTTP_GET_VARS['ext']);

if($EXT=='GIF' || $EXT=='JPEG' || $EXT=='PNG') $C_IMAGE_TYPE = $EXT;

if(is_numeric($HTTP_GET_VARS['width']) && $HTTP_GET_VARS['width']>100 && $HTTP_GET_VARS['width']<500) $C_WIDTH = $HTTP_GET_VARS['width'];

if(is_numeric($HTTP_GET_VARS['height']) && $HTTP_GET_VARS['height']>100 && $HTTP_GET_VARS['height']<500) $C_HEIGHT = $HTTP_GET_VARS['height'];

if(is_numeric($HTTP_GET_VARS['qty']) && $HTTP_GET_VARS['qty']>2 && $HTTP_GET_VARS['qty']<10) $C_NUM_GENSIGN = $HTTP_GET_VARS['qty'];

session_start();

session_register('securityCode');

$C_FONT_SIZE = intval($C_HEIGHT/(($C_HEIGHT/$C_WIDTH)*5));

$C_NUM_SIGN = intval(($C_WIDTH*$C_HEIGHT)/150);

$CODE = array();

$LETTERS = array('a','b','c','d','e','f','g','h','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z','2','3','4','5','6','7','8','9');

$FIGURES = array('50','70','90','110','130','150','170','190','210');

$src = imagecreatetruecolor($C_WIDTH,$C_HEIGHT);

$fon = imagecolorallocate($src,255,255,255);

imagefill($src,0,0,$fon);

$FONTS = array();

$dir=opendir($path_fonts);

while($fontName = readdir($dir)){

   if($fontName != "." && $fontName != ".."){

     if(strtolower(strrchr($fontName,'.'))=='.ttf') $FONTS[] = $path_fonts.$fontName;

   }

}

closedir($dir);

if(sizeof($FONTS)>0){

   for($i=0;$i<$C_NUM_SIGN;$i++){

     $h = 1;

     $color = imagecolorallocatealpha($src,rand(0,255),rand(0,255),rand(0,255),100);

     $font = $FONTS[rand(0,sizeof($FONTS)-1)];

     $letter = $LETTERS[rand(0,sizeof($LETTERS)-1)];

     $size = rand($C_FONT_SIZE-2,$C_FONT_SIZE+2);

     $angle = rand(0,60);

     if($h == rand(1,2)) $angle = rand(360,300);

     imagettftext($src,$size,$angle,rand($C_WIDTH*0.1,$C_WIDTH-$C_WIDTH*0.1),rand($C_HEIGHT*0.2,$C_HEIGHT),$color,$font,$letter);

   }

   for($i=0;$i<$C_NUM_GENSIGN;$i++){

     $h = 1;

     $color = imagecolorallocatealpha($src,$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],rand(10,30));

     $font = $FONTS[rand(0,sizeof($FONTS)-1)];

     $letter = $LETTERS[rand(0,sizeof($LETTERS)-1)];

     $size = rand($C_FONT_SIZE*2.1-1,$C_FONT_SIZE*2.1+1);

$x = (empty($x)) ? $C_WIDTH*0.08 : $x + ($C_WIDTH*0.8)/$C_NUM_GENSIGN+rand(0,$C_WIDTH*0.01);

     $y = ($h == rand(1,2)) ? (($C_HEIGHT*1.15*3)/4) + rand(0,$C_HEIGHT*0.02) : (($C_HEIGHT*1.15*3)/4) - rand(0,$C_HEIGHT*0.02);

     $angle = rand(5,20);

     $CODE[] = $letter;

     if($h == rand(0,10)) $letter = strtoupper($letter);

     if($h == rand(1,2)) $angle = rand(355,340);

     imagettftext($src,$size,$angle,$x,$y,$color,$font,$letter);

   }

}else{

   for($x=0;$x<$C_WIDTH;$x++){

     for($i=0;$i<($C_HEIGHT*$C_WIDTH)/1000;$i++){

   $color = imagecolorallocatealpha($src,$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],rand(10,30));

       imagesetpixel($src,rand(0,$C_WIDTH),rand(0,$C_HEIGHT),$color);

}

   }

   unset($x,$y);

   for($i=0;$i<$C_NUM_GENSIGN;$i++){

     $h = 1;

     $color = imagecolorallocatealpha($src,$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],rand(10,30));

     $letter = $LETTERS[rand(0,sizeof($LETTERS)-1)];

$x = (empty($x)) ? $C_WIDTH*0.08 : $x + ($C_WIDTH*0.8)/$C_NUM_GENSIGN+rand(0,$C_WIDTH*0.01);

     $y = ($h == rand(1,2)) ? (($C_HEIGHT*1)/4) + rand(0,$C_HEIGHT*0.1) : (($C_HEIGHT*1)/4) - rand(0,$C_HEIGHT*0.1);

     $CODE[] = $letter;

     if($h == rand(0,10)) $letter = strtoupper($letter);

     imagestring($src,5,$x,$y,$letter,$color);

   }

}

$HTTP_SESSION_VARS['securityCode'] = implode('',$CODE);

$_SESSION['securityCode'] = implode('',$CODE);

if($C_IMAGE_TYPE=='PNG'){

   header ("Content-type: image/png");

   imagepng($src);

}elseif($C_IMAGE_TYPE=='JPEG'){

   header ("Content-type: image/jpeg");

   imagejpeg($src);

}else{

   header ("Content-type: image/gif");

   imagegif($src);

}

imagedestroy($src);

?>

Приложение А.1.4 Основной скрипт для системы администрирования. Файл /admin/sboard.php

<?

error_reporting(E_ALL);

if(@$_GET['op'] == "drop_message")

{

$delete_message = mysql_query("DELETE FROM board WHERE id = ". $_GET['id_mess']);

 

if ($delete_message)

{

echo "<center><strong>Объявление  успешно удалено</strong></center>";

}

else

{

echo "<center><strong>Не удалось удалить объявление!</strong></center>";

}

}

elseif (@$_GET['op'] == "edit_message")

if(

   isset($_POST['autor'])   &&

   isset($_POST['title'])   && 

   isset($_POST['text'])   && 

   $_POST['autor'] !=""    && 

   $_POST['title'] !=""    && 

   $_POST['text'] !=""

   ) mysql_query("UPDATE board SET

   id_category = '".$_POST['id_category']."',

   autor = '".$_POST['autor']."',

   title = '".$_POST['title']."',

   email = '".$_POST['email']."',

   address = '".$_POST['address']."',

   phone = '".$_POST['phone']."',

   text = '".$_POST['text']."',

   type = '".$_POST['type']."',

   old_mess = '".$_POST['old_mess']."',

   checkbox_top = '".@$_POST['checkbox_top']."',

   time_delete = '".$_POST['time_delete']."' 

  WHERE id = ". $_GET['id_mess']);

 

$result = mysql_query("SELECT * FROM board WHERE id = ". $_GET['id_mess']);

$rows = mysql_num_rows($result);

$line = mysql_fetch_array($result);

 

echo "

<table cellspacing=2 cellpadding=2 border=0 width=70%>

    <tr align=right>

<td>

<FORM ACTION=\"http://". $_SERVER['HTTP_HOST'] ."/admin/board/$id_cat/$id_mess/edit_message/\" METHOD=POST>

 

Автор: <input type=text size=50  name=autor value=\"".$line['autor']."\"><br /><br />

Заголовок объявления: <input type=text size=50  name=title value=\"".$line['title']."\"><br /><br />

E-mail: <input type=text size=50  name=email value=\"".$line['email']."\"><br /><br />

Адрес: <input type=text size=50  name=address value=\"".$line['address']."\"><br /><br />

Телефон: <input type=text size=50  name=phone s value=\"".$line['phone']."\"><br /><br />

Текст сообщения: <textarea name=text rows=\"9\" cols=\"50\">".$line['text']."</textarea><br /><br />

Время актуальности:

<SELECT name=time_delete>

<OPTION value=7" . ( $line['time_delete'] == "7" ? " selected " : "" ).">7 дней</OPTION>

<OPTION value=14" . ( $line['time_delete'] == "14" ? " selected " : "" ).">14 дней</OPTION>

<OPTION value=30" . ( $line['time_delete'] == "30" ? " selected " : "" ).">30 дней</OPTION>

<OPTION value=60" . ( $line['time_delete'] == "60" ? " selected " : "" ).">60 дней</OPTION>

<OPTION value=90" . ( $line['time_delete'] == "90" ? " selected " : "" ).">90 дней</OPTION>

<OPTION value=180" . ( $line['time_delete'] == "180" ? " selected " : "" ).">180 дней</OPTION>

<OPTION value=365" . ( $line['time_delete'] == "365" ? " selected " : "" ).">365 дней</OPTION>

</SELECT><br><br />

 

Тип объявления:

<SELECT name=type> 

<option value=S" . ( $line['type'] == "S" ? " selected " : "" ).">Спрос</OPTION>

<option value=P" . ( $line['type'] == "P" ? " selected " : "" ).">Предложение</OPTION> 

</SELECT><br><br />";

 

 

echo"Объявление  одобрено: Да - <input type=radio name=old_mess value=\"old\" checked>

      Нет - <input type=radio name=old_mess value=\"new\">

 

 

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

 

Топовое объявление: <input type=checkbox name=checkbox_top value=1".($line['checkbox_top'] == "1" ? " checked":"")."><br><br />

 

";

 

$echo_cat_message = mysql_query("SELECT * FROM board_cat WHERE id = ".$line['id_category']."");

$echo_cat = mysql_fetch_array($echo_cat_message);

echo "Категория  объявления: <strong>".$echo_cat['name_cat']."</strong><br /><br />";

 

echo "Изменить категорию: <select name=id_category>";

function subcategory($id, $sub)

Информация о работе Разработка системы управления и автоматизации электронной доски объявлений