mirror of
https://github.com/AlexKrunch/AnonIB-3D.git
synced 2024-11-16 09:31:05 -05:00
199 lines
4.7 KiB
PHP
199 lines
4.7 KiB
PHP
|
<?php
|
||
|
/*
|
||
|
|
||
|
__ __ __
|
||
|
/ / / /__ / /___ ___ __________
|
||
|
/ /_/ / _ \/ / __ \/ _ \/ ___/ ___/
|
||
|
/ __ / __/ / /_/ / __/ / (__ )
|
||
|
/_/ /_/\___/_/ .___/\___/_/ /____/
|
||
|
/_/
|
||
|
Static function to help
|
||
|
|
||
|
*/
|
||
|
|
||
|
require_once "./Utils/Constants.php";
|
||
|
|
||
|
class Helpers
|
||
|
{
|
||
|
/**
|
||
|
* Construct won't be called inside this class and is uncallable from
|
||
|
* the outside. This prevents instantiating this class.
|
||
|
* This is by purpose, because we want a static class.
|
||
|
*/
|
||
|
private function __construct() {}
|
||
|
private static $initialized = false;
|
||
|
|
||
|
private static function initialize()
|
||
|
{
|
||
|
if (self::$initialized)
|
||
|
return;
|
||
|
|
||
|
self::$initialized = true;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Serialize the LarZer data in Array.
|
||
|
*/
|
||
|
public static function getDataFromLazer($lazerObj)
|
||
|
{
|
||
|
self::initialize();
|
||
|
|
||
|
$lazerObj = (array) $lazerObj;
|
||
|
if(array_key_exists ( '' . "\0" . '*' . "\0" . 'data' , $lazerObj ) && $lazerObj[ '' . "\0" . '*' . "\0" . 'data'] != null){
|
||
|
|
||
|
$lazerObj = (array) $lazerObj[ '' . "\0" . '*' . "\0" . 'data'];
|
||
|
|
||
|
} else if(array_key_exists ( '' . "\0" . '*' . "\0" . 'set' , $lazerObj ) && $lazerObj[ '' . "\0" . '*' . "\0" . 'set'] != null){
|
||
|
|
||
|
$lazerObj = (array) $lazerObj[ '' . "\0" . '*' . "\0" . 'set'];
|
||
|
|
||
|
}
|
||
|
|
||
|
return $lazerObj;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the dead line to consider a player as inactive.
|
||
|
* (surival of a video game version of the forum)
|
||
|
*/
|
||
|
public static function getDeadline()
|
||
|
{
|
||
|
self::initialize();
|
||
|
|
||
|
$currentTimeStamp = time();
|
||
|
$deadLine = $currentTimeStamp - 3600;
|
||
|
|
||
|
return $deadLine;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the dead line to consider a player should be deleted.
|
||
|
* (surival of a video game version of the forum)
|
||
|
*/
|
||
|
public static function getDeletionline()
|
||
|
{
|
||
|
self::initialize();
|
||
|
|
||
|
$currentTimeStamp = time();
|
||
|
$deadLine = $currentTimeStamp - 3600*24;
|
||
|
|
||
|
return $deadLine;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* make a generic response for Web services
|
||
|
*/
|
||
|
public static function makeGenericResponse($isOk, $result, $error)
|
||
|
{
|
||
|
self::initialize();
|
||
|
|
||
|
//prepare the result
|
||
|
$response = array(
|
||
|
'ok' => $isOk,
|
||
|
'result' => $result,
|
||
|
'error' => $error
|
||
|
);
|
||
|
|
||
|
header("Content-type: application/json");
|
||
|
echo json_encode($response);
|
||
|
exit();
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the user IP
|
||
|
*/
|
||
|
public static function getClientIp() {
|
||
|
// IP si internet partagé
|
||
|
if (isset($_SERVER['HTTP_CLIENT_IP'])) {
|
||
|
return $_SERVER['HTTP_CLIENT_IP'];
|
||
|
}
|
||
|
// IP derrière un proxy
|
||
|
elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
||
|
return $_SERVER['HTTP_X_FORWARDED_FOR'];
|
||
|
}
|
||
|
// Sinon : IP normale
|
||
|
else {
|
||
|
return (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* CHECK IF BASE64 code is an image
|
||
|
*/
|
||
|
public static function check_base64_image($base64) {
|
||
|
|
||
|
$img = imagecreatefromstring(base64_decode($base64));
|
||
|
if (!$img) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
imagepng($img, 'tmp.png');
|
||
|
$info = getimagesize('tmp.png');
|
||
|
|
||
|
unlink('tmp.png');
|
||
|
|
||
|
if ($info[0] > 0 && $info[1] > 0 && $info['mime']) {
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Check Base64 size
|
||
|
*/
|
||
|
public static function getBase64ImageSize($base64Image){ //return memory size in B, KB, MB
|
||
|
try{
|
||
|
$size_in_bytes = (int) (strlen(rtrim($base64Image, '=')) * 3 / 4);
|
||
|
$size_in_kb = $size_in_bytes / 1024;
|
||
|
|
||
|
return $size_in_kb;
|
||
|
}
|
||
|
catch(Exception $e){
|
||
|
return $e;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Generate random Token
|
||
|
*/
|
||
|
public static function generateToken(){
|
||
|
//Generate a random string.
|
||
|
$token = openssl_random_pseudo_bytes(16);
|
||
|
|
||
|
//Convert the binary data into hexadecimal representation.
|
||
|
return bin2hex($token);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Hash password
|
||
|
*/
|
||
|
public static function hash_pw($plain_pw)
|
||
|
{
|
||
|
// (optional) change logic here for different hash algorithm
|
||
|
//return password_hash($plain_pw, PASSWORD_DEFAULT);
|
||
|
return md5($plain_pw);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Verify hashed password
|
||
|
*/
|
||
|
public static function verify_pw($plain_pw, $hashed_pw)
|
||
|
{
|
||
|
// (optional) change logic here for different hash algorithm
|
||
|
//return password_verify($plain_pw, $hashed_pw);
|
||
|
return (md5($plain_pw)==$hashed_pw);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Get Real File Name
|
||
|
*/
|
||
|
public static function getRealFileName($fileName_)
|
||
|
{
|
||
|
|
||
|
return md5($fileName_.'_'.Constants::CONST_IMAGE_SALT);
|
||
|
}
|
||
|
|
||
|
}
|