Tell me why this code doesn't work?
-
require "../db.php";
$urlApi = 'http://xx.xxx.xxx.x:xxxx/api'; $token = 'mytoken'; // Забираем пользователя и изменяем его id, чтобы нельзя было обратится за другого $login = $_SESSION['logged_user']->login; $var = R::findOne('users', 'WHERE `login`=?', [$login]); $data = array(); $arOptions = [ CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HEADER => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'x-inclo-token:' . $token, 'Accept: application/json', 'Content-Type: application/json' ], ]; if (isset($_POST)){ foreach($_POST as $key => $value){ // Разбираем массив $_POST if ($key == 'url_api'){ $urlApi = $urlApi . $value; $arOptions['CURLOPT_URL'] = $urlApi; } if ($key == 'type'){ if ($value == 'post'){ $arOptions['CURLOPT_POST'] = true; $MyFlag = 1; }else if($value == 'get'){ $arOptions['CURLOPT_GET'] = true; $MyFlag = 0; } } $data[$key] = $value; // $a[$key]=$value; } $data['id'] = $var->id; } if ($MyFlag == 1){ $arOptions['CURLOPT_POSTFIELDS'] = json_encode($data, JSON_UNESCAPED_UNICODE); } $ch = curl_init(); curl_setopt_array($ch, $arOptions); // $res = curl_exec($ch); // curl_close($ch); // $res = json_encode($res, JSON_UNESCAPED_UNICODE); // echo ($res);</code></pre></div></div></p><p>Debbaging showed that a mistake in the line:
curl_setopt_array($ch, $arOptions);
Calling him like this:
$.ajax({
url: "./Scripts/Interaction_Api.php",
type: 'POST',
data: 'dataString',
datatype: 'json',
data: {
type: 'post',
url_api: '/set',
setname: array[0],
clo: array[1],
geo: ['ru'],
trafficsource: array[3],
paranoia: true,
streamlink: array[5],
},success: function(data) {
alert(data);} }); </code></pre></div></div></p>
-
There's been a mistake, a mistake, that I'm not adding the elements wrong to the $arOptions, and I finally decided to give up this whole thing, and I'm just making a direct request to CUrl, the final work code:
<?php require "../db.php";
$urlApi = 'http://my_ip/api'; $token = 'mytoken'; // Забираем пользователя и изменяем его id, чтобы нельзя было обратится за другого $login = $_SESSION['logged_user']->login; $var = R::findOne('users', 'WHERE `login`=?', [$login]); $ch = curl_init(); $data = array(); $arOptions = [ CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HEADER => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'x-inclo-token:' . $token, 'Accept: application/json', 'Content-Type: application/json' ], ]; if (isset($_POST)){ foreach($_POST as $key => $value){ // Разбираем массив $_POST if ($key == 'url_api'){ $urlApi = $urlApi . $value; curl_setopt($ch, CURLOPT_URL, $urlApi); } if ($key == 'type'){ if ($value == 'post'){ curl_setopt($ch, CURLOPT_POST, true); $MyFlag = 1; }else if($value == 'get'){ curl_setopt($ch, CURLOPT_GET, true); $MyFlag = 0; } } $data[$key] = $value; // $a[$key]=$value; } $data['id'] = $var->id; } if ($MyFlag == 1){ curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data, JSON_UNESCAPED_UNICODE)); } curl_setopt_array($ch, $arOptions); $res = curl_exec($ch); curl_close($ch); $res = json_encode($res, JSON_UNESCAPED_UNICODE); echo ($res);
?>
I'd be very grateful for your ideas optimizing the code.