1KA_F2F/frontend/drupal.php
2023-01-12 13:49:06 +01:00

117 lines
2.7 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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, TRUE);
//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));
}