1KA_F2F/frontend/drupal.php

117 lines
2.7 KiB
PHP
Raw Normal View History

2022-05-03 15:24:29 +02:00
<?php
//ini_set('display_errors', 1);
//ini_set('display_startup_errors', 1);
//error_reporting(E_ALL);
// V koliko ni POST request
if(empty($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest')
{
die();
}
require($_SERVER['DOCUMENT_ROOT'] . '/settings.php');
$api_url = $site_url . 'frontend/api/api.php';
$parts = explode("/", $_SERVER['REQUEST_URI']);
$action = end($parts);
// V kolikor nimamo get parametra pri naši poizvedbi
if(empty($_GET) && empty($action)) {
echo json_encode([
'type' => 'error',
'message' => 'Prišlo je do napake.'
]);
die();
}
/* $sporocilo = [
'type' => 'success',
'text' => 'Prijava'
];
echo json_encode($sporocilo);
die();
*/
// GET params
$params = 'action='. $action; // Funkcija, ki jo želimo izvesti
$post_data = $_POST;
if(!empty($post_data) && sizeof($post_data) > 0){
$request_method = 'POST';
$raw_post_data = http_build_query($post_data);
$post_data['method'] = "AJAX";
$raw_post_data .= '&method=AJAX';
} else {
$request_method = 'GET';
$raw_post_data = '';
}
// Pripravimo stvari za izdelavo tokena
$request_url = $api_url.'?'.$params;
$data = $request_method . $request_url .$raw_post_data;
// Nastavimo identifier in key userja
$private_key = 'NLFYb67/[pUE%W-s';
// Izracunamo hash (token)
$token = hash_hmac('sha256', $data, $private_key);
// Pripravimo klic dodamo parametra »identifikator« in »token«
$ch = curl_init($request_url.'&token='.$token);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $request_method);
if($request_method == 'POST') {
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_data)); // JSON string za POST
curl_setopt($ch, CURLOPT_POST, TRUE);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($ch, CURLOPT_HEADER ,1);
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
//curl_setopt($ch, CURLINFO_HEADER_OUT, true); //Vrne header, kar ni ok, ker drual direktno sprejmo echo
// Izvedemo klic
$result = curl_exec($ch);
curl_close($ch);
$result = json_decode($result);
if(!empty($result->data->piskotek))
{
$piskotki = piskotekDecode($result->data->piskotek);
foreach($piskotki as $piskotek){
setcookie($piskotek['ime'], $piskotek['vrednost'], $piskotek['opcije']);
}
unset($result->data->piskotek);
unset($piskotki);
}
//setcookie('testni_1ka', 'testni-vnos');
echo json_encode($result);
die();
function piskotekDecode($piskotek)
{
return unserialize(base64_decode($piskotek));
}