2021-03-22 12:20:39 +01:00
< ? php
2021-03-23 20:26:52 +01:00
if ( ! isset ( $site ) )
{
require_once ( " config.inc.php " );
header ( 'Location: ' . $accueil );
}
require_once " config.inc.php " ;
require_once " log.php " ;
2021-04-07 21:08:08 +02:00
require_once " envoi_courriel.inc.php " ;
2021-03-23 20:26:52 +01:00
2021-03-22 12:20:39 +01:00
$table_prefix = " " ;
class db
{
private $server = " db351634-avionpoeme.sql-pro.online.net " ;
private $port = 3306 ;
private $user = " db120904 " ;
private $passwd = " AvionPoème*DB " ;
private $database = " db351634_avionpoeme " ;
public $connect ;
public $result ;
2021-03-29 21:50:41 +02:00
// avion
2021-03-22 12:20:39 +01:00
public $uid ;
public $message ;
public $expeMail ;
public $expeKnown ;
public $expeLang ;
public $destLang ;
public $startLat ;
public $startLon ;
public $startName ;
public $startTime ;
2021-03-25 10:26:40 +01:00
public $startTZ ;
2021-03-22 12:20:39 +01:00
public $destMail ;
public $destLat ;
public $destLon ;
public $destName ;
2021-03-23 20:26:52 +01:00
public $public ;
2021-03-22 12:20:39 +01:00
public $color ;
public $deliveryTime ;
public $deliveryTZ ;
public $deliveryTimeServer ;
2021-03-29 21:50:41 +02:00
public $deliveryMethod ;
// peripeties
public $idPeripetie ;
public $datePeripetie ;
public $effetPeripetie ;
2021-03-22 12:20:39 +01:00
function __construct ()
{
$this -> open ();
}
function open ()
{
if ( ! $this -> connect )
{
$this -> connect = new mysqli ( $this -> server , $this -> user , $this -> passwd , $this -> database );
if ( $this -> connect -> connect_errno )
{
log_error ( " Échec de la connexion : => " . $this -> connect -> connect_error . " <br /> " . __file__ . ' ligne ' . __line__ );
return false ;
}
}
$this -> connect -> set_charset ( " utf8 " );
return true ;
}
function close ()
{
$this -> connect -> close ();
$this -> connect = 0 ;
}
function protect ( $string )
{
return $this -> connect -> real_escape_string ( $string );
}
function query ( $string )
{
//log_write( $string );
if ( empty ( $this -> connect ) ) $this -> open ();
$this -> result = $this -> connect -> query ( $string ) ;
if ( $this -> connect -> error ) log_error ( " Échec de la commande query => " . $this -> connect -> error . " <br /> " . __file__ . ' ligne ' . __line__ . " \n " . $string , true , true );
//print_r( $this );
}
2021-03-24 21:26:05 +01:00
function newPlane () //return 0 on error
2021-03-22 12:20:39 +01:00
{
2021-03-23 20:26:52 +01:00
$query = " INSERT INTO avionpoeme VALUES ('0',' " ;
$query .= $this -> protect ( $this -> message ) . " ', ' " ;
$query .= $this -> protect ( $this -> expeMail ) . " ', " ;
$query .= $this -> protect ( $this -> expeKnown ) . " , ' " ;
$query .= $this -> protect ( $this -> expeLang ) . " ', ' " ;
$query .= $this -> protect ( $this -> destLang ) . " ', ' " ;
$query .= $this -> protect ( $this -> startLat ) . " ', ' " ;
$query .= $this -> protect ( $this -> startLon ) . " ', ' " ;
2021-03-25 10:26:40 +01:00
$query .= $this -> protect ( $this -> startName ) . " ', " ;
$query .= " FROM_UNIXTIME( " . $this -> protect ( $this -> startTime ) . " ), ' " ;
$query .= $this -> protect ( $this -> startTZ ) . " ', ' " ;
2021-03-23 20:26:52 +01:00
$query .= $this -> protect ( $this -> destMail ) . " ', ' " ;
$query .= $this -> protect ( $this -> destLat ) . " ', ' " ;
$query .= $this -> protect ( $this -> destLon ) . " ', ' " ;
$query .= $this -> protect ( $this -> destName ) . " ', " ;
$query .= $this -> protect ( $this -> public ) . " , ' " ;
2021-03-25 10:26:40 +01:00
$query .= $this -> protect ( $this -> color ) . " ', " ;
$query .= " FROM_UNIXTIME( " . $this -> protect ( $this -> deliveryTime ) . " ), ' " ;
$query .= $this -> protect ( $this -> deliveryTZ ) . " ', " ;
2021-03-29 21:50:41 +02:00
$query .= " FROM_UNIXTIME( " . $this -> protect ( $this -> deliveryTimeServer ) . " ), ' " ;
2021-04-07 21:08:08 +02:00
$query .= $this -> protect ( $this -> deliveryMethod ) . " ',' " ;
$query .= " 0') " ;
2021-03-29 21:50:41 +02:00
//print_r($this);
2021-03-23 20:26:52 +01:00
$this -> query ( $query );
2021-03-29 21:50:41 +02:00
$this -> uid = $this -> connect -> insert_id ;
echo " { 'uid':' " . $this -> uid . " '} " ;
2021-04-07 21:08:08 +02:00
courrielEnvoi ( $this );
$this -> newPeripetie ();
2021-03-22 12:20:39 +01:00
}
2021-03-23 20:26:52 +01:00
function getCurrentPlanes ()
{
2021-03-29 21:50:41 +02:00
$query = " SELECT idAvion as uid, UNIX_TIMESTAMP(deliveryTime) as deliveryTime, deliveryTZ, destLat, destLon, destName, UNIX_TIMESTAMP(startTime) as startTime, startTZ, startLon, startLat, startName, color FROM avionpoeme WHERE deliveryTimeServer>NOW() " ;
2021-03-24 21:26:05 +01:00
$this -> query ( $query );
$planes = $this -> result -> fetch_all ( MYSQLI_ASSOC );
2021-03-23 20:26:52 +01:00
print json_encode ( $planes );
2021-03-29 21:50:41 +02:00
return $planes ;
2021-03-23 20:26:52 +01:00
}
function getAnthology ( $page = 0 )
{
2021-03-29 21:50:41 +02:00
$query = " SELECT COUNT(*) as count FROM avionpoeme WHERE deliveryTimeServer<NOW() AND public='1' " ;
2021-03-24 21:26:05 +01:00
$this -> query ( $query );
$result = $this -> result -> fetch_assoc ();
2021-03-29 21:50:41 +02:00
$n_pages = floor (( $result [ " count " ] / RESULTS_BY_PAGE )) + 1 ;
2021-03-24 21:26:05 +01:00
if ( $page <= 0 ) //renvoie le nombre de ligne d'anthologie
2021-03-23 20:26:52 +01:00
{
2021-03-24 21:26:05 +01:00
print '{"nAnthology":"' . $result [ " count " ] . '","nPages":"' . $n_pages . '"}' ;
2021-03-26 20:21:38 +01:00
return $n_pages ;
2021-03-23 20:26:52 +01:00
} else //renvoie les lignes d'anthologie
{
2021-03-24 21:26:05 +01:00
if ( $page > $n_pages ) $page = $n_pages ;
2021-04-07 21:08:08 +02:00
$query = " SELECT UNIX_TIMESTAMP(startTime) as startTime, startTZ, startName, message, UNIX_TIMESTAMP(deliveryTime) as deliveryTime , deliveryTZ, destName FROM avionpoeme WHERE deliveryTimeServer<NOW() AND public='1' ORDER BY startTime DESC LIMIT " . ( $page - 1 ) * RESULTS_BY_PAGE . " , " . RESULTS_BY_PAGE ;
2021-03-24 21:26:05 +01:00
$this -> query ( $query );
$planes = $this -> result -> fetch_all ( MYSQLI_ASSOC );
print json_encode ( $planes , JSON_FORCE_OBJECT );
2021-03-26 20:21:38 +01:00
return $planes ;
2021-03-23 20:26:52 +01:00
}
}
2021-03-29 21:50:41 +02:00
function savePeripetie ()
{
global $db ;
$query = " INSERT INTO avionPeripetie VALUES ('0',' " ;
2021-04-07 21:08:08 +02:00
$query .= $this -> protect ( $this -> uid ) . " ',' " ;
$query .= $this -> protect ( $this -> idPeripetie ) . " ', " ;
$query .= " FROM_UNIXTIME( " . $this -> protect ( $this -> datePeripetie ) . " )) " ;
//$query .= $this->protect($this->effetPeripetie) . "', '";
//$query .= $this->protect($this->expeMail) . "', '";
//$query .= $this->protect($this->destMail) . "')"; echo $query . EOL;
$this -> query ( $query );
2021-03-29 21:50:41 +02:00
}
function newPeripetie ()
{
global $db ;
2021-04-07 21:08:08 +02:00
$query = " SELECT *, DATEDIFF(quand,CURDATE()) as datePeripetie FROM peripeties WHERE quand IS NULL " ;
echo $query . EOL ;
$this -> query ( $query );
$this -> startTime = 1616584838 ;
$this -> deliveryTime = 1617469941 ;
while ( ( $result = $this -> result -> fetch_assoc ()) )
{
print_r ( $result [ " idPeripetie " ]);
$this -> idPeripetie = $result [ " idPeripetie " ];
if (( mt_rand ( 0 , 100 ) <= $result [ " probabilite " ])) //calcul de la probabilité de la péripétie
{
print $this -> startTime . " => " . $this -> deliveryTime . " ===> " ;
$this -> datePeripetie = mt_rand ( $this -> startTime , $this -> deliveryTime ); //ajustement de l'effet
print $this -> datePeripetie . " EOL " ;
$this -> savePeripetie ();
break ; //une seule péripétie par avionpoème. Enlever le break si pas de limites sur le nombre de péripéties
}
}
2021-03-29 21:50:41 +02:00
}
2021-03-22 12:20:39 +01:00
}
2021-03-23 20:26:52 +01:00
2021-03-22 12:20:39 +01:00
?>