HEX
Server: Apache/2.4.59 (Debian)
System: Linux skycube.cz 4.19.0-25-amd64 #1 SMP Debian 4.19.289-2 (2023-08-08) x86_64
User: ilya (534)
PHP: 7.3.31-1~deb10u7
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: /var/www/ilya/data/www/afisha38.ru/admin/modules/afisha/add.inc
<?

//- Настройки модуля -----------------------------------------------------------
permission("mcp"); // tcp-техники; acp-админы; mcp-модеры; cp-рядовые участники
$skin_pname = "Добавление расписания";
//------------------------------------------------------------------------------

if((!isset($_POST['afisha_method'])) && (!isset($_POST['firm_id'],$_POST['time'],$_POST['action'],$_POST['price']))) {
	$result = query("SELECT * FROM `firms_types` ORDER BY `id`;");
	$actions_types = "";
	$firms_types = "";
	
	$i = 0;
	
	while($data = mysql_fetch_array($result)) {
		if ($i==0) {
			$actions_types .= "<option value=\"".$data['id']."\" selected>&nbsp;".$data['type_subtitle']."\n";
			$firms_types .= "<option value=\"".$data['id']."\" selected>&nbsp;".$data['type_title']."\n";
		}
		else {
			$actions_types .= "<option value=\"".$data['id']."\">&nbsp;".$data['type_subtitle']."\n";
			$firms_types .= "<option value=\"".$data['id']."\">&nbsp;".$data['type_title']."\n";
		}
		$i++;
		
	}
	
	$temp_html .= preg_replace("/{%(\w+)%}/ee", "$\\1",skin_html("afisha_add.htm",0));
	
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if ($_POST['afisha_method']=='interval') { 
	if (isset($_POST['firm_id'])) {	
		
		$firm_id = $_POST['firm_id'];
		
		$b_day = $_POST['b_day'];
		$b_mon = $_POST['b_mon'];
		$b_year = $_POST['b_year'];
		$e_day = $_POST['e_day'];
		$e_mon = $_POST['e_mon'];
		$e_year = $_POST['e_year'];
		
		$errors = array();

		if($_POST['firm_id']=='')
			$errors[] = "Не указано заведение";
		
		if(!checkdate($b_mon,$b_day,$b_year))
			$errors[] = "Начальная дата неверна";
		if(!checkdate($e_mon,$e_day,$e_year))
			$errors[] = "Конечная дата неверна";
		if(checkdate($b_mon,$b_day,$b_year) && checkdate($e_mon,$e_day,$e_year)) {

			$date_select_begin=skin_date_select($b_year,$b_mon,$b_day,"b_year","b_mon","b_day");
     		$date_select_end=skin_date_select($e_year,$e_mon,$e_day,"e_year","e_mon","e_day");				
			
			$begindate = mktime(0,0,0,$b_mon,$b_day,$b_year);
			$enddate = mktime(0,0,0,$e_mon,$e_day,$e_year);
			
			if ($begindate>$enddate)
				$errors[] = "Конечная дата ранее начальной";

		}
		
		$price = $_POST['price'];
		$time = $_POST['time'];
		$action = $_POST['action'];		
		
		$good_records == 0;
		
		for ($i=0;$i<count($time);$i++) {
			
			if(!(($time[$i]!='' && $price[$i]!='' && $action[$i]!='') || ($time[$i]=='' && $price[$i]=='' && $action[$i]==''))) {
				$errors[] = "В записи #".($i+1)." указаны не все поля";
			}
			else 
				if ($time[$i]!='') {
					$time_split = explode(":",$time[$i]);

					if(sizeof($time_split)!=2 || strlen($time[$i])!=5)
						$errors[] = "Неверный формат времени у записи #".($i+1)." - требуется ММ:ЧЧ";
					else
						if($time_split[0]>23 || $time_split[0]<0 || $time_split[1]>59 || $time_split[1]<0)
							$errors[] = "Время у записи #".($i+1)." неверно";
						else
							$good_records++;
					}
		}

		if($good_records==0 && sizeof($errors)==0)
			$errors[] = "Нет записей для добавления";
		
		if(sizeof($errors)>0 && $errors[0]!='') {
			$errors_html = "<p>Обнаружены следующие ошибки:</p>\n<ul>\n";
			
			foreach($errors as $error)
				$errors_html .= "<li>".$error."</li>";
			
			$errors_html .= "</ul>\n<hr>";
			

		}
		else {			
			$currentdate = $begindate;
			$added_records = 0;
			$edited_records = 0;
			while ($currentdate<=$enddate) {
				for ($i=0;$i<count($time);$i++) {
					
					if ($time[$i]!='') {
						
						if ($time[$i]<"05:00")
							$date=date("Y-m-d",$currentdate+86400);
						else
							$date=date("Y-m-d",$currentdate);
						$result = query("SELECT `id` FROM `shedule` WHERE `fid`='".$firm_id."' AND `datetime`='".$date." ".$time[$i]."' LIMIT 1;");
						if(mysql_num_rows($result)==1) {
							$edited_records++;
							$data = mysql_fetch_array($result);
							query("UPDATE `shedule` SET `aid`='".$action[$i]."', `price`='".$price[$i]."' WHERE `id`='".$data['id']."';");
						}
						else {
							$added_records++;
							query("INSERT INTO `shedule` ( `id` , `fid` , `aid` , `datetime` , `price`, `added`) VALUES ('', '".$firm_id."', '".$action[$i]."', '".$date." ".$time[$i]."', '".$price[$i]."', NOW());");
						}
					}
				}
				$currentdate+=86400;
			}
			$temp_html = "<p><b>".$added_records."</b> записи(-ей) добавлено, <b>".$edited_records."</b> заменено.</p>\n";
			skin_html_design($temp_html);
			exit();
		}
				
	}
		
     $firms = "";
     $firms_query = query("SELECT `id`, `title` FROM `firms` WHERE `type`=".$_POST['firms_types']." ORDER BY `id`;");
     while ($data = mysql_fetch_array($firms_query)) {
     		if (isset($_POST['firm_id'])) {
     			if ($_POST['firm_id']==$data['id'])
     				$firms .= "<option value=\"".$data['id']."\" selected>".$data['title']."\n";
     			else
     				$firms .= "<option value=\"".$data['id']."\">".$data['title']."\n";
     		}
     		else
            	$firms .= "<option value=\"".$data['id']."\">".$data['title']."\n";
            }

     if($_POST['actions_number']=="last")
     	$result=query("SELECT `id`,`title` FROM `actions` WHERE `type`=".$_POST['actions_types']." ORDER BY `id` DESC LIMIT 15;");
     else
     	$result=query("SELECT `id`,`title` FROM `actions` WHERE `type`=".$_POST['actions_types']." ORDER BY `title`;");

    $actions = array();
     	
	while($data = mysql_fetch_array($result)) {
		$actions[] = array($data['id'],$data['title']);
	}
     	
     $actions_rows = "";
     
     for($i=0;$i<10;$i++) {
     	
     	$actions_rows .= "<tr>\n<td><input name=\"time[]\" value=\"".$time[$i]."\" type=\"text\" size=\"6\" maxlength=\"5\"></td>\n";
     	
     	$actions_rows .= "<td><select name=\"action[]\">\n<option value=\"\">Выберите событие..\n";   
     	foreach($actions as $one_action) {
     		if($one_action[0]==$action[$i])
     			$actions_rows .= "<option value=\"".$one_action[0]."\" selected>".$one_action[1]."\n";
     		else
     			$actions_rows .= "<option value=\"".$one_action[0]."\">".$one_action[1]."\n";
     	}
     	$actions_rows .= "</select></td>\n";

     	$actions_rows .= "<td><input name=\"price[]\" type=\"text\" size=\"14\" maxlength=\"13\" value=\"".$price[$i]."\"></td>\n</tr>\n";

     }

     $firms_types = $_POST['firms_types'];
     $actions_types = $_POST['actions_types'];
     $actions_number = $_POST['actions_number'];
     $afisha_method = $_POST['afisha_method'];

     if(!isset($date_select_begin,$date_select_end)) {
     	$date_select_begin=skin_date_select(date("Y", TIME),date("m", TIME),date("d", TIME),"b_year","b_mon","b_day");
     	$date_select_end=skin_date_select(date("Y", TIME),date("m", TIME),date("d", TIME),"e_year","e_mon","e_day");
     }
     $temp_html .= preg_replace("/{%(\w+)%}/ee", "$\\1",skin_html("afisha_add_interval.htm",0));



}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if($_POST['afisha_method']=='lenta') {

	if (isset($_POST['firm_id'])) {	// Data already sent
		
		$firm_id = $_POST['firm_id'];
		
		$b_day = $_POST['b_day'];
		$b_mon = $_POST['b_mon'];
		$b_year = $_POST['b_year'];
		$e_day = $_POST['e_day'];
		$e_mon = $_POST['e_mon'];
		$e_year = $_POST['e_year'];
		
		$errors = array();

		if($_POST['firm_id']=='')
			$errors[] = "Не указано заведение";	
		
		$price = $_POST['price'];
		$time = $_POST['time'];
		$action = $_POST['action'];
		$date_day = $_POST['date_day'];		
		$date_mon = $_POST['date_mon'];		
		$date_year = $_POST['date_year'];		
		
		$good_records = 0;
		
		for ($i=0;$i<count($time);$i++) {
			
			if(!(($time[$i]!='' && $price[$i]!='' && $action[$i]!='') || ($time[$i]=='' && $price[$i]=='' && $action[$i]==''))) {
				$errors[] = "В записи #".($i+1)." указаны не все поля";
			}
			else {
				if ($time[$i]!='') {
					$time_split = explode(":",$time[$i]);

					if(sizeof($time_split)!=2 || strlen($time[$i])!=5)
						$errors[] = "Неверный формат времени у записи #".($i+1)." - требуется ММ:ЧЧ";
					else
						if($time_split[0]>23 || $time_split[0]<0 || $time_split[1]>59 || $time_split[1]<0)
							$errors[] = "Время у записи #".($i+1)." неверно";
						else
							$good_records++;
					}

				if(!checkdate($date_mon[$i],$date_day[$i],$date_year[$i]))
					$errors[] = "Дата у записи #".($i+1)." неверна";
			}
					
		}
		
		
		if($good_records==0 && sizeof($errors)==0)
			$errors[] = "Нет записей для добавления";
				
		if(sizeof($errors)>0 && $errors[0]!='') {
			$errors_html = "<p>Обнаружены следующие ошибки:</p>\n<ul>\n";
			
			foreach($errors as $error)
				$errors_html .= "<li>".$error."</li>";
			
			$errors_html .= "</ul>\n<hr>";
			

		}
		else {
			$added_records = 0;
			$edited_records = 0;
			for ($i=0;$i<count($time);$i++) {
				if ($time[$i]!='') {
					
					$currentdate = mktime(5,0,0,$date_mon[$i],$date_day[$i],$date_year[$i]);
					if ($time[$i]<"05:00")
						$date=date("Y-m-d",$currentdate+86400);
					else
						$date=date("Y-m-d",$currentdate);

					$result = query("SELECT `id` FROM `shedule` WHERE `fid`='".$firm_id."' AND `datetime`='".$date." ".$time[$i]."' LIMIT 1;");
					if(mysql_num_rows($result)==1) {
						$edited_records++;
						$data = mysql_fetch_array($result);
						query("UPDATE `shedule` SET `aid`='".$action[$i]."', `price`='".$price[$i]."' WHERE `id`='".$data['id']."';");
					}
					else {
						$added_records++;
						query("INSERT INTO `shedule` ( `id` , `fid` , `aid` , `datetime` , `price`, `added`) VALUES ('', '".$firm_id."', '".$action[$i]."', '".$date." ".$time[$i]."', '".$price[$i]."', NOW());");
					}
				}
			}
			$temp_html = "<p><b>".$added_records."</b> записи(-ей) добавлено, <b>".$edited_records."</b> заменено.</p>\n";
			skin_html_design($temp_html);
			exit();
		}
	}			
	
		
     $firms = "";
     $firms_query = query("SELECT `id`, `title` FROM `firms` WHERE `type`=".$_POST['firms_types']." ORDER BY `id`;");
     while ($data = mysql_fetch_array($firms_query)) {
     		if (isset($_POST['firm_id'])) {
     			if ($_POST['firm_id']==$data['id'])
     				$firms .= "<option value=\"".$data['id']."\" selected>".$data['title']."\n";
     			else
     				$firms .= "<option value=\"".$data['id']."\">".$data['title']."\n";
     		}
     		else
            	$firms .= "<option value=\"".$data['id']."\">".$data['title']."\n";
            }

     if($_POST['actions_number']=="last")
     	$result=query("SELECT `id`,`title` FROM `actions` WHERE `type`=".$_POST['actions_types']." ORDER BY `id` DESC LIMIT 15;");
     else
     	$result=query("SELECT `id`,`title` FROM `actions` WHERE `type`=".$_POST['actions_types']." ORDER BY `title`;");

    $actions = array();
     	
	while($data = mysql_fetch_array($result)) {
		$actions[] = array($data['id'],$data['title']);
	}
     	
     $actions_rows = "";
     
     for($i=0;$i<20;$i++) { // Generating afisha list
     	
     	$actions_rows .= "<tr>\n<td><input name=\"time[]\" value=\"".$time[$i]."\" type=\"text\" size=\"6\" maxlength=\"5\"></td>\n";
     	
     	if(isset($_POST['date_day'], $_POST['date_mon'], $_POST['date_year'])) {
     		if (checkdate($date_mon[$i],$date_day[$i],$date_year[$i]))
     			$actions_rows .= "<td>".skin_date_select($date_year[$i],$date_mon[$i],$date_day[$i],"date_year[]","date_mon[]","date_day[]")."</td>\n";
     		else
     			$actions_rows .= "<td>".skin_date_select(date("Y", TIME),date("m", TIME),date("d", TIME),"date_year[]","date_mon[]","date_day[]")."</td>\n";
     	}
     	else 
     		$actions_rows .= "<td>".skin_date_select(date("Y", TIME),date("m", TIME),date("d", TIME),"date_year[]","date_mon[]","date_day[]")."</td>\n";
     	
     	$actions_rows .= "<td><select name=\"action[]\">\n<option value=\"\">Выберите событие..\n";   
     	foreach($actions as $one_action) {
     		if($one_action[0]==$action[$i])
     			$actions_rows .= "<option value=\"".$one_action[0]."\" selected>".$one_action[1]."\n";
     		else
     			$actions_rows .= "<option value=\"".$one_action[0]."\">".$one_action[1]."\n";
     	}
     	$actions_rows .= "</select></td>\n";

     	$actions_rows .= "<td><input name=\"price[]\" type=\"text\" size=\"14\" maxlength=\"13\" value=\"".$price[$i]."\"></td>\n</tr>\n";

     }

     $firms_types = $_POST['firms_types'];
     $actions_types = $_POST['actions_types'];
     $actions_number = $_POST['actions_number'];
     $afisha_method = $_POST['afisha_method'];

     if(!isset($date_select_begin,$date_select_end)) {
     	$date_select_begin=skin_date_select(date("Y", TIME),date("m", TIME),date("d", TIME),"b_year","b_mon","b_day");
     	$date_select_end=skin_date_select(date("Y", TIME),date("m", TIME),date("d", TIME),"e_year","e_mon","e_day");
     }
     $temp_html .= preg_replace("/{%(\w+)%}/ee", "$\\1",skin_html("afisha_add_lenta.htm",0));

	
	
}

skin_html_design($temp_html);

?>