View file games/question.php

File size: 9.58Kb
<?php
/***************************************************************************
 *                                mides.ru
 *                            -------------------
 ***************************************************************************/
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/constants.' . $phpEx);

$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

$user_lang = ($userdata['user_id'] != ANONYMOUS) ? $userdata['user_lang'] : $board_config['default_lang'];
if( file_exists($phpbb_root_path . 'language/lang_' . $user_lang . '/lang_quizzz.php') )
{
include_once($phpbb_root_path . 'language/lang_' . $user_lang . '/lang_quizzz.php');
}
else
{
$user_lang = 'english';
include_once($phpbb_root_path . 'language/lang_english/lang_quizzz.php');
}
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
global $db , $lang , $phpEx , $phpbb_root_path;

define('QUESTIONS_TABLE', $table_prefix.'question');
define('QUESTIONS_CONFIG_TABLE', $table_prefix.'questions_config');
define('QUESTIONS_TEMP_TABLE', $table_prefix.'questions_temp');
define('QUESTIONS_ACTIVE_TABLE', $table_prefix.'questions_active');
define('USERS_TABLE', $table_prefix.'users');

$time_now = date("U");
$user_id = $userdata['user_id'];

if (!$userdata['session_logged_in'] && $user_id == ANONYMOUS)
{
	$header_location = ( @preg_match("/Microsoft|WebSTAR|Xitami/", getenv("SERVER_SOFTWARE")) ) ? "Refresh: 0; URL=" : "Location: ";
	header($header_location . append_sid("login.$phpEx?redirect=quizzz.$phpEx", true));
	exit;
}

$user_points = $userdata['user_points'];

	$sql="SELECT *
	FROM " . QUESTIONS_CONFIG_TABLE;
	
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."301", "", __LINE__, __FILE__, $sql);
	}

		while( $row = $db->sql_fetchrow($result) )
		{
			$quiz_conf[$row['config_name']] = $row['config_value'];
		}

		$conf_on_off = $quiz_conf['on_off'];
		$conf_cost_right = $quiz_conf['cost_right'];
		$conf_min_time = $quiz_conf['min_time'];
		$conf_otv_time = $quiz_conf['otv_time'];
		$conf_snd_on = $quiz_conf['snd_on'];

	$points_name = ($board_config['points_name']) ? $board_config['points_name'] : 'points';

	$template->set_filenames(array( 'body' => 'quiz_act_body.tpl'));

if (!$conf_on_off)
{
	message_die(GENERAL_MESSAGE, $lang['qz_is_off']);
}

if( isset($_GET['id']) AND isset($_GET['otvet']))
{
	$no_vo = $_GET['id'];
	$no_otv = $_GET['otvet'];

$sql= "SELECT * 
	FROM " . QUESTIONS_ACTIVE_TABLE . "
	WHERE user_id = $user_id";
		if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, $lang['qz_obloms']."302", "", __LINE__, __FILE__, $sql);
			}
		$row = $db->sql_fetchrow($result);
		$no_vo_re = $row['vop_id'];
		$no_otv_re = $row['real_otvet'];
		$start_time = $row['start_time'];

if ($no_vo != $no_vo_re)
{
$shtraf = ($user_points > $conf_cost_right*10) ? $conf_cost_right*10 : $user_points;
$sql = "UPDATE " . USERS_TABLE . "
SET user_points = user_points - $shtraf
WHERE user_id = $user_id";
	if ( !$db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."303", "", __LINE__, __FILE__, $sql);
	}
	$message = $lang['qz_vzlom1'] . $conf_cost_right*10 . ' ' . 'монет' . $lang['qz_vzlom2'] . sprintf($lang['qz_return2forum'], '<a href="index.php">', '</a>');
	message_die(GENERAL_MESSAGE, $message);	
}

if ( ($time_now - $start_time) > $conf_otv_time*2)
{
$shtraf = ($user_points > $conf_cost_right) ? $conf_cost_right : $user_points;
$sql = "UPDATE " . USERS_TABLE . "
SET user_points = user_points - $shtraf
WHERE user_id = $user_id";
	if ( !$db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."304", "", __LINE__, __FILE__, $sql);
	}
	$time_old = date("U")-$start_time+$conf_otv_time*2;
	$message = $lang['qz_timeout1'] . $time_old . $lang['qz_timeout2'] . $conf_cost_right . ' монет!'.'<br />' . sprintf('<a href="question.php">'.'Продолжить'.'</a>');
	message_die(GENERAL_MESSAGE, $message);
}

if (!$no_otv_re)
{
$shtraf = ($user_points > $conf_cost_right*10) ? $conf_cost_right*10 : $user_points;
$sql = "UPDATE " . USERS_TABLE . "
SET user_points = user_points - $shtraf
WHERE user_id = $user_id";
	if ( !$db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."305", "", __LINE__, __FILE__, $sql);
	}
	$message = $lang['qz_vzlom3'] . $conf_cost_right*10 . ' ' . 'монет' . $lang['qz_cry'] . sprintf('<a href="index.php">'.'пошел(ла) вон!'.'</a>');
	message_die(GENERAL_MESSAGE, $message);	
}

if ($no_otv == $no_otv_re)
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_points = user_points + $conf_cost_right
WHERE user_id = $user_id";
	if ( !$db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."306", "", __LINE__, __FILE__, $sql);
	}
$sql = "UPDATE " . QUESTIONS_ACTIVE_TABLE . "
SET real_otvet = 0,
right_otv = right_otv+1
WHERE user_id = $user_id";
	if ( !$db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."307", "", __LINE__, __FILE__, $sql);
	}
	$m8 = ($conf_min_time) ? $lang['qz_time2next'] . $conf_min_time . $lang['qz_minutes'] : '';
		$message = $lang['qz_win'] . $conf_cost_right . ' монет!' . $m8 . sprintf("<a href=\"" . append_sid("question.$phpEx") . "\">".'<br/> Продолжить'."</a>");
		message_die(GENERAL_MESSAGE, $message);	
}
else
{
	$m9 = ($conf_min_time) ? $lang['qz_dontcry'] . $conf_min_time . $lang['qz_once_again'] : $lang['qz_your_can'];
		$message = $lang['qz_your_wrong'] . $m9 . sprintf("<a href=\"" . append_sid("question.$phpEx") . "\">".'<br/> Продолжить'."</a>") . sprintf("<a href=\"" . append_sid("index.$phpEx") . "\">".'<br/>Перейти на сайт'."</a>");
		message_die(GENERAL_MESSAGE, $message);	

}

}

$sql = "SELECT start_time, vop_id
	FROM " . QUESTIONS_ACTIVE_TABLE . "
	WHERE user_id = $user_id";
		if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, $lang['qz_obloms']."308", "", __LINE__, __FILE__, $sql);
			}
		$row = $db->sql_fetchrow($result);
		$time_prev = $row['start_time'];
		$vop_id = $row['vop_id'];
if ( (date("U")-$time_prev)/60 < $conf_min_time AND $conf_min_time)
{ 
$sql = "UPDATE " . USERS_TABLE . "
SET user_points = user_points - $conf_cost_right*2
WHERE user_id = $user_id";
	if ( !$db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."309", "", __LINE__, __FILE__, $sql);
	}

	$message = $lang['qz_wait'] . $conf_min_time . $lang['qz_vzlom4'] . $conf_cost_right*2 . ' ' . $points_name . '!<br /><br />' . sprintf($lang['qz_return1forum'], '<a href="index.php">', '</a>');
	message_die(GENERAL_MESSAGE, $message);	
}

$script_pop = '';
if( isset($_GET['pop']) AND $_GET['pop']==2)
{
	$pop = $_GET['pop'];
	$script_pop = "if (!confirm(" . $lang['qz_confirm'] . ") ) {self.close();} else {parent.location='question.php';}";

}

$sql= "SELECT * 
	FROM " . QUESTIONS_TABLE . "
	WHERE moder = 1 ORDER BY RAND() LIMIT 1";

if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."310", "", __LINE__, __FILE__, $sql);
	}
$row = $db->sql_fetchrow($result);
$numb_q = $row['id'];
$quest = $row['question'];
$otv1 = $row['otvet_1'];
$otv2 = $row['otvet_2'];
$otv3 = $row['otvet_3'];
$otv4 = $row['otvet_4'];
$real = $row['otvet_verno'];
$autor = $row['author'];

if (!$quest)
{
	$message = $lang['qz_base_empty'] . sprintf($lang['qz_send_q2b'], "<a href=\"" . append_sid("add_question.$phpEx") . "\">", "</a>") . $lang['qz_your_q2'] . sprintf($lang['qz_return2forum2'], '<a href="index.php">', '</a>');
	message_die(GENERAL_MESSAGE, $message);	
}

if ($numb_q==$vop_id AND !isset($_GET['pop']))
{
	$message = $lang['qz_second'] . sprintf($lang['qz_return1forum'], "<a href=\"" . append_sid("index.$phpEx") . "\">", "</a>");
	message_die(GENERAL_MESSAGE, $message);	
}

	$sql = "SELECT COUNT(*) as count_user FROM " . QUESTIONS_ACTIVE_TABLE . " WHERE user_id = $user_id";
	if(!$result = $db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."311", "", __LINE__, __FILE__, $sql);

	}
	$row = $db->sql_fetchrow($result);
	$count_user = $row['count_user'];

$k4=3; // addition time for download page
$d= date("U")+$k4;
if ($count_user == 0 AND $pop!=2)
{
$sql = "INSERT INTO " . QUESTIONS_ACTIVE_TABLE . " 
(user_id, vop_id, real_otvet, start_time, zad_vop)
VALUES ($user_id, $numb_q, $real, $d, '1')";
	if (!$db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."312", '', __LINE__, __FILE__, $sql);
	}
}
elseif ($pop!=2)
{
$sql= "UPDATE " . QUESTIONS_ACTIVE_TABLE . "
	SET vop_id = $numb_q,
	real_otvet = $real,
	start_time = $d,
	zad_vop = zad_vop+1
	WHERE user_id = $user_id LIMIT 1";

if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."313", "", __LINE__, __FILE__, $sql);
	}
}
	$template->assign_vars(array(
			'L_SCR1' => $lang['qz_inscript1'],
			'L_SCR2' => $lang['qz_inscript2'],
			'L_SCR3' => $lang['qz_inscript3'],
			'L_VOP' => $lang['qz_quest'],
			'L_AVTOR' => $lang['qz_autor_q'],
			'L_COPYR' => $lang['qz_co'],

			'SCRIPT_POP' => $script_pop,
			'NUMB' => $numb_q,
			'VOP' => $quest,
			'OTV1' => $otv1,
			'OTV2' => $otv2,
			'OTV3' => $otv3,
			'OTV4' => $otv4,
			'AVTOR' => $autor,
			'OTV_TIME' => $conf_otv_time
	));

	$template->assign_block_vars('', array());

$template->pparse('body');

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>