Cyber Anakins Lightsaber - A Minishell-based backdoor

Current Path : /home/bjb2293782/xn--80abaeoqbbrbgf8aea5a2a2z.xn--p1ai/docs/
Upload File :
Current File : /home/bjb2293782/xn--80abaeoqbbrbgf8aea5a2a2z.xn--p1ai/docs/program.php

<?php
require("design.php");

session_start();

$monthNames = array("январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь");
$monthNamesV = array("январе","феврале","марте","апреле","мае","июне","июле","августе","сентябре","октябре","ноябре","декабре");


function SortEvents($a, $b)
{
	if (count($a['dates'])==0)
	{
		if (count($b['dates'])==0) return 0;
		return 1;
	}	
	if (count($b['dates'])==0) return -1;

	if (!preg_match("/(\d+)\.(\d+)\.(\d\d\d\d)/",$a['dates'][0]['date'], $g)) return -1;
	if (!preg_match("/(\d+)\:(\d+)/", $a['dates'][0]['since'], $g2)) return -1;

	$t1 = mktime(intval($g2[1]),intval($g2[2]),0, intval($g[2]), intval($g[1]), intval($g[3]));

	if (!preg_match("/(\d+)\.(\d+)\.(\d\d\d\d)/",$b['dates'][0]['date'], $g)) return -1;
	if (!preg_match("/(\d+)\:(\d+)/", $b['dates'][0]['since'], $g2)) return -1;

	$t2 = mktime(intval($g2[1]), intval($g2[2]), 0, intval($g[2]), intval($g[1]), intval($g[3]));

	if ($t1 > $t2) return 1;
	if ($t1 < $t2) return -1;
	return 0;
}


function EventsPlane($month, $year, $printRef=true)
{
	require("contacts.php");

	$planes = array();

	$mysql = mysqlopen();


	// offline-мероприятия
	$result = mysqli_query($mysql, "SELECT `title`,`desc`,`people`,`date`,`duration`,`filial`,`place`,`category` FROM libEvents WHERE MONTH(`date`)=$month AND YEAR(`date`)=$year AND `showDate`<>0 ORDER BY `date` ASC");
	if (mysqli_errno($mysql)) die("ERROR: ".mysqli_error($mysql)." at line ".__LINE__." of file ".__FILE__."\n");
	while($row = mysqli_fetch_assoc($result))
	{
		if (preg_match("/(\d+)-(\d+)-(\d+) (\d+):(\d+):\d+/", $row['date'], $g))
		{
			$date = $g[3] . "." . $g[2] . "." . $g[1];
			$since = intval($g[4]) . ":" . $g[5];

			$iSince = intval($g[4])*60 + intval($g[5]);

			$iTo = $iSince + intval($row['duration']);

			$h = intval($iTo / 60);
			$m = intval($iTo % 60);

			if (strlen($m) < 2) $m = "0$m";
			$to = "$h:$m";

			$event = array('desc'=>0,
							'name'=>$row['title'],
							'subname'=>'',
							'category'=>$row['category'],
							'people'=>$row['people'],
							'descText'=>$row['desc'],
							'filial'=>$row['filial'],
							'place'=>$row['place'],
							'dates'=>array(0=>array('date'=>$date, 'since'=>$since, 'to'=>$to)));
			array_push($planes, $event);
		}
	}
	mysqli_free_result($result);


	// системные мероприятия
	$result = mysqli_query($mysql, "SELECT
										libProgDescriptions.`name` as `name`,
										libProgDescriptions.`subname` as `subname`,
										libProgDescriptions.`category` as `category`,
										libProgDescriptions.`desc` as `descText`,
										libProgDescriptions.`people` as `people`,
										libPrograms.`filial` as `filial`,
										libPrograms.`weekDay` as `weekDay`,
										libPrograms.`since` as `since`,
										libPrograms.`to`    as `to`,
										libPrograms.`desc` as `desc`
									FROM
								 		libPrograms, libProgDescriptions
								 	WHERE
							 			libProgDescriptions.`id`=libPrograms.`desc` AND
							 			libPrograms.`filial`<>1
									ORDER BY libPrograms.`desc` ASC
								");
	if (mysqli_errno($mysql)) die("ERROR: ".mysqli_error($mysql)." at line ".__LINE__." of file ".__FILE__."\n");

	$event = null;
	while($row = mysqli_fetch_assoc($result))
	{
		$desc = $row['desc'];
		if ($event===null || $desc!=$event['desc'])
		{
			if ($event!==null) array_push($planes, $event);

			$event = array('desc'=>$desc,
						'name'=>$row['name'],
						'subname'=>$row['subname'],
						'category'=>$row['category'],
						'people'=>$row['people'],
						'descText'=>$row['descText'],
						'filial'=>$row['filial'],
						'place'=>'',
						'dates'=>array());
		}

		$weekDay = intval($row['weekDay']);

		$t = mktime(12,0,0, $month, 1, $year);
		$tm = localtime($t, true);
		$dayDelta = $weekDay - $tm['tm_wday'];
		if ($dayDelta < 0) $dayDelta+=7;

		$t+=$dayDelta*24*3600;

		while(true)
		{
			$tm = localtime($t, true);
			if ($tm['tm_mon']+1 != $month) break;

			array_push($event['dates'], array('date'=>date('d.m.Y',$t),
												'since'=>preg_replace("/^(\d+):(\d+).*/","$1:$2", $row['since']),
												'to'=>preg_replace("/^(\d+):(\d+).*/","$1:$2", $row['to'])));
			$t+=7 * 24 * 3600;
		} 
	}
	if ($event!==null) array_push($planes, $event);
	mysqli_free_result($result);


	
	usort($planes, "SortEvents");	



	print "<table width=100% cellspacing=0 cellpadding=4 border=1 bordercolor=black>\n";
	
	print "<tr>\n";

	print "<th width=1% align=center nowrap>№<br>п/п</th>\n";
	print "<th width=30% align=center>Наименование мероприятия</th>\n";
	print "<th width=30% align=center>Наименование филиала (полное)<br>(адрес)</th>\n";
	print "<th width=1% align=center nowrap>Дата<br>(д.м.г)</th>\n";
	print "<th width=1% align=center nowrap>Время<br>(с... до...)</th>\n";
	print "<th width=1% align=center nowrap>Категория</th>\n";
	print "<th width=1% align=center nowrap>Платно/<br>бесплатно</th>\n";

	if (!$printRef) print "<th width=1% align=center>Ожидаемое<br>кол-во<br>посетителей</th>\n";
	print "<th width=30% align=center>Краткое содержание мероприятия</th>\n";

	print "</tr>\n";

	$n = 1;
	foreach($planes as &$event)
	{
		print "<tr>\n";

		$cnt = count($event['dates']);
		if ($cnt > 1) $rowSpan = " rowspan=$cnt"; else $rowSpan = '';

		print "<td valign=top$rowSpan>$n.</td>\n";

		if ($event['subname']!='' && $event['subname']!=null)
		{
			print "<td valign=top$rowSpan>«".$event['name']."» &#151; ".$event['subname']."</td>\n";
		}
		else
		{
			print "<td valign=top$rowSpan>".$event['name']."</td>\n";
		}

		$filial = $event['filial'];

		print "<td valign=top align=center$rowSpan>";
		
		if ($printRef) print "<a href='filial.php?filial=$filial'>";
		print preg_replace("/(библиотека)\s+№/iu","$1-филиал №",$GLOBALS['filials'][$filial]);
		if ($printRef) print "</a>";

		if ($event['place']!='' && $event['place']!=null)
		{
			print "<br>(".$event['place'].")";
		}
		else
		if ($filial!=-1)
		{
			print "<br>(".$GLOBALS['filialContacts'][$filial]['address'].")";
		}

		print "</td>\n";


		print "<td valign=top align=center>".$event['dates'][0]['date']."</td>\n";
		print "<td valign=top align=center nowrap>".$event['dates'][0]['since']."-".$event['dates'][0]['to']."</td>\n";

		if ($event['category'] == 0) $event['category']=3;

		print "<td valign=top align=center$rowSpan nowrap>".$event['category']."+</td>\n";
		print "<td valign=top align=center$rowSpan nowrap>б/п</td>\n";


		if (!$printRef) print "<td valign=top align=center nowrap>".$event['people']."</td>\n";
		print "<td valign=top $rowSpan>"._html_br_($event['descText'])."</td>\n";

		print "</tr>\n";


		for($i=1; $i<count($event['dates']); $i++)
		{
			print "<tr>\n";

			print "<td valign=top align=center>".$event['dates'][$i]['date']."</td>\n";
			print "<td valign=top align=center>".$event['dates'][$i]['since']."-".$event['dates'][$i]['to']."</td>\n";
			if (!$printRef) print "<td valign=top align=center nowrap>".$event['people']."</td>\n";

			print "</tr>\n";
		}
		$n++;

	}


	print "</table>";
}


if (isset($_GET['openas']))
{
	$month = intval(_GET_('month'));

	$y = intval($month / 12);
	$m = $month % 12 + 1;




	if ($_GET['openas']=='word')
	{
		header("Content-Type: application/msword; charset=UTF-8", true);


		print "<html>\n";
		print "<head><meta charset=UTF-8></head>\n";
		print "<body>\n";
		print "<style>table { border-collapse: collapse; }</style>\n";
		print "<h1 style='text-align:center'>План культурно-массовых мероприятий офлайн,<br>проводимых в ".$monthNamesV[$m-1]." $y года в МБУК ЦБС г. о. Королёв</h1>\n";

		EventsPlane($m, $y, false);

		print "</body></html>";
		exit(0);
	}


	if ($_GET['openas']=='excel')
	{
		header("Content-Type: application/excel; charset=UTF-8", true);


		print "<html>\n";
		print "<head><meta charset=UTF-8></head>\n";
		print "<body>\n";
		print "<style>table { border-collapse: collapse; }</style>\n";
		EventsPlane($m, $y, false);
		print "</body></html>";
		exit(0);
	}
}


if (isset($_GET['filial']))
{
	$filial = intval($_GET['filial']);
	if ($filial == 1 || !isset($GLOBALS['filials'][$filial])) die("ERROR: Неверный номер филиала!");


	$mysql = mysqlopen();

	TOP(-1);


	LEFTCOLUMN();
	CHANNELS();


	MAINCOLUMN();


	$canEdit = AdminAuth(RIGHT_EDIT_PROGRAMS, $filial);

	if ($canEdit)
	{
		print "<h1>Перечень системных мероприятий</h1>\n";
		print "<p>Данный раздел отображается только для администратора.
		       Здесь необходимо сформировать описание регулярных мероприятий,
		       проводимых в библиотеке без привязки ко времени. Расписание этих мероприятих задавается в следующем разделе.</p>\n";

		print "<script src='progeditor.js'></script>\n";
		print "<br><br><center>[ <a href='#' onclick='newProgDesc($filial)'>Новое системное мероприятие</a> ]</center><br>\n";

		print "<ul style='font-size:18px'>\n";

		$result = mysqli_query($mysql, "SELECT `id`,`name`,`subname` FROM libProgDescriptions WHERE `filial`=$filial ORDER BY `id` DESC");
		if (mysqli_errno($mysql)) die("ERROR: ".mysqli_error($mysql)." at line ".__LINE__." of file ".__FILE__."\n");
		while($row = mysqli_fetch_assoc($result))
		{
			$id = $row['id'];
			$name = $row['name'];
			if (trim($name) == "") $name = "<Мероприятие без названия>";
			print "<li><b><a href=\"progdesc.php?id=$id\">"._html_($name)."</a></b>\n";

			print "<nobr>";
			print "<img class=editBtn title='Редактировать мероприятие' src='edit.png' onclick='editProgDesc($id, true)'>";
			print "<img class=editBtn title='Удалить мероприятие' src='del32x32.png' onclick='delProgDesc($id)'>";
			print "</nobr>";

			print "<div style='font-size:14px'>"._html_($row['subname'])."</div>";
			
			print "</li>\n";
		}
		print "</ul><br><br>\n";

	}


	print "<h1>".$GLOBALS['filials'][$filial].". Программа мероприятий</h1>\n";

	print "<h2>Системные мероприятия</h2>\n";

	$weekDays = array(1=>"Понедельник",2=>"Вторник",3=>"Среда",4=>"Четверг",5=>"Пятница",6=>"Суббота",0=>"Воскресенье");


	?>
	<center>
	<table>
	<tr>
		<td>
			<?php

				foreach($weekDays as $w=>$weekDayName)
				{
				    $start = "<div class=card>\n";
				    $start.= "<div class=cardWeekDay>$weekDayName";

				    if ($canEdit) $start.="<img class=editBtn title='Редактировать расписание' src='edit.png' onclick='editProg($filial, $w)'>";

				    $start.= "</div>\n";
					$start.= "<table width=100% cellspacing=0>\n";

					if ($canEdit)
					{
						print $start;
						$start = "";
					}	


					$result = mysqli_query($mysql,
							"SELECT
								libPrograms.`since` as `since`,
								libPrograms.`to`    as `to`,
								libPrograms.`desc`  as `desc`,
								libProgDescriptions.`name` as `name`,
								libProgDescriptions.`subname` as `subname`,
								libProgDescriptions.`needRegister` as `needRegister`,
								libPrograms.`comment` as `comment`
							 FROM
							 	libPrograms, libProgDescriptions
							 WHERE
							 	libPrograms.`filial`=$filial AND
							 	libPrograms.`weekDay`=$w AND
							 	libProgDescriptions.`id`=libPrograms.`desc`
							 ORDER BY libPrograms.`since` ASC");
					if (mysqli_errno($mysql)) die("ERROR: ".mysqli_error($mysql)." at line ".__LINE__." of file ".__FILE__."\n");
					while($row = mysqli_fetch_assoc($result))
					{
						print $start;
						$start = '';
                        
						$since = preg_replace("/(\d+):(\d+):(\d+)/","$1:$2", $row['since']);
						$to = preg_replace("/(\d+):(\d+):(\d+)/","$1:$2", $row['to']);

						$desc = $row['desc'];

						print "<tr>\n";
						print "<td class=timeCol>";
						print "<table cellspacing=0 cellpadding=0>";
						print "		<tr><td class=timeSinceTo>с&nbsp;</td><td class=timeValue>$since</td></tr>\n";
						print "		<tr><td class=timeSinceTo>до&nbsp;</td><td class=timeValue>$to</td>\n";
						print "</table><td>\n";
						print "<td class=progCol><a href='progdesc.php?id=$desc' class=prog onclick='showDesc($desc);return false;'>"._html_($row['name'])."</a>";
						if ($row['comment']!='' || $row['subname'])
						{
							print "<div class=subprog>";
							print _html_($row['subname']);

							if ($row['comment']!='' && $row['subname']!='') print ". ";
							print _html_($row['comment']);
						}

						if ($row['needRegister']==1)
						{
							print " <span class=subinfo>(По предварительной записи)</span>\n";
						}

						print "</td>\n";
						print "</tr>\n";
					}

					if ($start == '')
					{
						print "</table>\n";
						print "</div>\n\n\n";
					}
				}
			?>
		</td>
	</tr>
	</table>
	</center>

	<script>
	function showDesc(id)
	{
		sendXHR('progdesc.php?id='+id+'&embeded=1', null,
			function(response)
			{
				messageBox(response, 'О мероприятии');
			},
			function(error)
			{
				errorBox(error);
			});
	}
	</script>





	<?php
    

	$firstEvent = true;

	$canEdit = false;
	if (AdminAuth(RIGHT_EDIT_EVENTS | RIGHT_SUPER_ADMIN)) $canEdit = true;

	$sql = "`title`<>'' AND ";
	if ($canEdit)
	{
		FILIALLISTINFO();
		print "<script src='eventeditor.js'></script>\n";
		$sql='';

		$firstEvent = false;
		print "<h2>События библиотеки</h2>";
		print "<center>[ <a href='#' onclick='newEvent($filial)'>Новое событие</a> ]</center>\n";
	}


	$result = mysqli_query($mysql,
	"SELECT
		`id`,
		`title`,
		`date`,
		`poster`,
		`desc`,
		`filial`,
		`category`,
		`place`
	FROM
		libEvents
	WHERE
		$sql
		`filial`=$filial AND
		DATEDIFF(NOW(),`date`)<=0
	ORDER BY `date` DESC");
	if (mysqli_errno($mysql)) die("ERROR: ".mysqli_error($mysql)." at line ".__LINE__." of file ".__FILE__."\n");
	while($row = mysqli_fetch_assoc($result))
	{
		if ($firstEvent)
		{
			$firstEvent = false;
			print "<h2>События филиала</h2>";
			if ($canEdit) print "<center>[ <a href='#' onclick='newEvent()'>Новое событие</a> ]</center>\n";
		}


		$id = $row['id'];
		print "<table class=event cellspacing=0 cellpadding=><tr><td>\n";

		print "<div class=ellipseBlock data-maxheight=290>\n";

		if ($row['poster']!=null && $row['poster']!='')
		{
			$img = "events/".$row['poster'];
			print "<a href='$img' target=_blank><img border=0 align=left class=eventImg src='$img'></a>";
		}
		$title = $row['title'];
		if ($title==null || trim($title)=='') $title="Новое событие";

		print "<h2>$title";
	

		if ($canEdit)
		{
			print "<nobr>";
			print "<img class=editBtn title='Редактировать событие' src='edit.png' onclick='editEvent($id)'>";
			print "<img class=editBtn title='Удалить событие' src='del32x32.png' onclick='delEvent($id)'>";
			print "</nobr>";
		}
	
	
		print "</h2>";

		if (preg_match("/(\d+)\-(\d+)-(\d+).*?(\d+):(\d+):\d+/", $row['date'],$g))
		{
			print "<div class=eventDate>". $g[3].  "."  . $g[2] . "." . $g[1] . " <span>начало в</span> " . $g[4] . ":" . $g[5]. "</div>\n";
		}

		if ($row['filial']!=-1)
			print "<div class=eventPlace>Место проведения: <a href='filial.php?filial=".$row['filial']."'>".$GLOBALS['filials'][$row['filial']]."</a></div>\n";
		else
		if ($row['place']!=null && $row['place']!='')
			print "<div class=eventPlace>Место проведения: ".$row['place']."</div>\n";

		print "<p>"._para_($row['desc'])."</p>\n";

		print "<div class=eventCategory>Категория: ".$row['category']."+</div>\n";


		print "</div>\n";
		print "<div class=ellipseControl style='display:none' onclick='ellipseClick(this)'>Читать полностью</div>\n";
		print "</td></tr></table>\n\n\n";

		
	}
	mysqli_free_result($result);


	if (!$firstEvent)
	{
		print "<br><div class=more>[ <a href='events.php'>Архив событий</a> ]</div><br><br>";
	}

	?>
	<hr>
	<center style='margin-top:10'><input type=button onclick='history.back()' value='« Назад'></center>

	<?php


	MIDDLECOLUMN2();
	print "<center><table><tr><td>";
	ACTUALLINKS('actualLinksH');
	print "</tr></td></table></center>";
	FAQ();


	MIDDLECOLUMN();
	CHANNELS("channelBlockH");
	RIGHTCOLUMN();

	ACTUALLINKS();
	FAQ();
	BOTTOM();

}
else
{



TOP(-1);


LEFTCOLUMN();
CHANNELS();


MAINCOLUMN();
?>


<h1>Программы культурно-массовых мероприятий библиотек</h1>

<?php

foreach($GLOBALS['filials'] as $key=>$filial)
{
	if ($key==-1) continue;

	$link = "program.php?filial=$key";
	print "<div class=card2 onclick='location=\"$link\"; return false'><a href='$link'>$filial</a></div>\n";
}
?>


<?php

RIGHTCOLUMN();

ACTUALLINKS();
FAQ();


print $GLOBALS['endColumnBy'];
print $GLOBALS['endPageBy'];
$GLOBALS['endPageBy'] = '';





$tm = localtime(time(), true);
$currentMonth = ($tm['tm_year']+1900)*12 + $tm['tm_mon'];

$month = intval(_GD_('month', $currentMonth));



$y = intval($month / 12);
$m = $month % 12 + 1;

print "<a name=pall></a>";

print "<h1>План культурно-массовых мероприятий офлайн,<br>проводимых в ".$monthNamesV[$m-1]." $y года в МБУК ЦБС г. о. Королёв</h1>\n";

print "<form method=get action='program.php#pall'>";
print "<center><table><tr>";


print "<td>Месяц:</td>";
print "<td><select name=month style='font-size:22px' onchange='this.form.submit()'>";

for($i = 1; $i >=-2; $i--)
{
	$minx = $currentMonth + $i;
	$y = intval($minx / 12);
	$m = $minx % 12 + 1;

	print "<option value=$minx";

	if ($minx == $month) print " selected";
	
	if ($minx == $currentMonth) print " style='font-weight:bold'";
	else
	if ($minx < $currentMonth) print " style='color:red'";

	print ">".$monthNames[$m-1]." $y г.";
	
	if ($minx < $month) print " - архив";

	print "</option>\n";
}

print "</select></td><td><input style='height:32' type=submit value='&gt;&gt' title='Отобразить'></td>";

print "<td>";
print "<button style='height:32' title='Открыть перечень мероприятий с помощью Word' onclick='doOpenWord()'><table><tr><td><img src='wordicon.png' width=16 height=16></td><td>В Word</td></tr></table></button>\n";
print "<button style='height:32' title='Открыть перечень мероприятий с помощью Excel' onclick='doOpenExcel()'><table><tr><td><img src='excelicon.png' width=16 height=16></td><td>В Excel</td></tr></table></button>\n";
print "</td>";
print "</tr></table>";

print "</center><br><br>";

$y = intval($month / 12);
$m = $month % 12 + 1;

?>
<script>
function doOpenWord()
{
	var a = document.createElement('a');
	a.href='program.php?month=<?php print $month; ?>&openas=word';
	a.download = 'Мероприятия на <?php print $monthNames[$m-1]." $y г"; ?>.doc';
	a.click();
}

function doOpenExcel()
{
	var a = document.createElement('a');
	a.href='program.php?month=<?php print $month; ?>&openas=excel';
	a.download = 'Мероприятия на <?php print $monthNames[$m-1]." $y г"; ?>.xls';
	a.click();
}
</script>



<?php
EventsPlane($m, $y);

?>


<?php
MIDDLECOLUMN2();
print "<center><table><tr><td>";
ACTUALLINKS('actualLinksH');
print "</tr></td></table></center>";
FAQ();


MIDDLECOLUMN();
CHANNELS("channelBlockH");


BOTTOM();
}
?>

May the force be with you, always.