<?php

// Ryzom Core MMORPG framework - Error Reporter
//
// Copyright (C) 2015 Laszlo Kis-Adam
// Copyright (C) 2010 Ryzom Core <http://ryzomcore.org/>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

require_once( 'config.inc.php' );
require_once( 'log.inc.php' );

/// Example web application that takes bug reports from the bug reporter Qt app
class BugReportGatherApp
{
	private $db = NULL;
	private $logger = NULL;

	function __construct()
	{
		$this->logger = new Logger();
	}

	private function logPOSTVars()
	{
		$report = "";
		$descr = "";
		$email = "";

		if( isset( $_POST[ 'report' ] ) )
			$report = $_POST[ 'report' ];

		if( isset( $_POST[ 'descr' ] ) )
			$descr = $_POST[ 'descr' ];

		if( isset( $_POST[ 'email' ] ) )
			$email = $_POST[ 'email' ];

		$this->logger->log( 'report: ' . "\n" . $report );
		$this->logger->log( 'description: ' . "\n" . $descr );
		$this->logger->log( 'email: ' . "\n" . $email );
	}

	private function buildQuery()
	{
		$report = "";
		$descr = "";
		$email = "";

		if( isset( $_POST[ 'report' ] ) )
			$report = $_POST[ 'report' ];

		if( isset( $_POST[ 'descr' ] ) )
			$descr = $_POST[ 'descr' ];

		if( isset( $_POST[ 'email' ] ) )
			$email = $_POST[ 'email' ];

		$report = $this->db->real_escape_string( $report );
		$descr  = $this->db->real_escape_string( $descr );
		$email  = $this->db->real_escape_string( $email );


		$q = "INSERT INTO `bugs` (`report`,`description`,`email`) VALUES (";
		$q .= "'$report',";
		$q .= "'$descr',";
		$q .= "'$email')";

		return $q;
	}

	public function exec()
	{
		//$this->logPOSTVars();

		$this->db = new mysqli( BugReportConfig::$dbhost, BugReportConfig::$dbuser, BugReportConfig::$dbpw, BugReportConfig::$dbdb, BugReportConfig::$dbport );
		if( mysqli_connect_error() )
		{
			$this->logger->log( "Connection error :(" );
			$this->logger->log( mysqli_connect_error() );
			return;
		}

		$q = $this->buildQuery();
		$result = $this->db->query( $q );
		if( $result !== TRUE )
		{
			$this->logger->log( "Query failed :(" );
			$this->logger->log( 'Query: ' . $q );
			$this->logPOSTVars();
		}		

		$this->db->close();
	}
}


$app = new BugReportGatherApp();
$app->exec();

?>