webshit
This commit is contained in:
73
web/model.php
Normal file
73
web/model.php
Normal file
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
include('lib/httpful.phar');
|
||||
|
||||
class Statics
|
||||
{
|
||||
public static $DB = NULL;
|
||||
public static $CFG = NULL;
|
||||
}
|
||||
|
||||
function getConfig()
|
||||
{
|
||||
if (Statics::$CFG !== NULL) return Statics::$CFG;
|
||||
|
||||
return Statics::$CFG = require "config.php";
|
||||
}
|
||||
|
||||
function getDatabase()
|
||||
{
|
||||
if (Statics::$DB !== NULL) return Statics::$DB;
|
||||
|
||||
$_config = getConfig()['database'];
|
||||
|
||||
$dsn = "mysql:host=" . $_config['host'] . ";dbname=" . $_config['database'] . ";charset=utf8";
|
||||
$opt = [
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||
PDO::ATTR_EMULATE_PREPARES => false,
|
||||
];
|
||||
|
||||
return Statics::$DB = new PDO($dsn, $_config['user'], $_config['password'], $opt);
|
||||
}
|
||||
|
||||
function generateRandomAuthKey()
|
||||
{
|
||||
$random = '';
|
||||
for ($i = 0; $i < 64; $i++)
|
||||
|
||||
try {
|
||||
switch (random_int(1, 3)) {
|
||||
case 1:
|
||||
$random .= chr(random_int(ord('0'), ord('9')));
|
||||
break;
|
||||
case 2:
|
||||
$random .= chr(random_int(ord('A'), ord('Z')));
|
||||
break;
|
||||
case 3:
|
||||
$random .= chr(random_int(ord('a'), ord('z')));
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
die(json_encode(['success' => false, 'message' => 'Internal error - no randomness']));
|
||||
}
|
||||
return $random;
|
||||
}
|
||||
|
||||
function sendPOST($url, $body, $header)
|
||||
{
|
||||
$builder = \Httpful\Request::post($url);
|
||||
|
||||
$builder->body($body);
|
||||
|
||||
foreach ($header as $k => $v) $builder->addHeader($k, $v);
|
||||
|
||||
$response = $builder->send();
|
||||
|
||||
if ($response->code != 200) throw new Exception("Repsponse code: " . $response->code);
|
||||
|
||||
return $response->body;
|
||||
}
|
||||
Reference in New Issue
Block a user