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']-&gt;login;
    $var = R::findOne('users', 'WHERE `login`=?', [$login]);
    
    $ch = curl_init();
    
    $data = array(); 
    
    $arOptions = [
        CURLOPT_SSL_VERIFYPEER =&gt; false,
        CURLOPT_SSL_VERIFYHOST =&gt; false,
        CURLOPT_HEADER =&gt; true,
        CURLOPT_RETURNTRANSFER =&gt; true,
        CURLOPT_HTTPHEADER =&gt; [
            'x-inclo-token:' . $token,
            'Accept: application/json',
            'Content-Type: application/json'
        ],
    ];
    
    if (isset($_POST)){ 
        foreach($_POST as $key =&gt; $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-&gt;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.



Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2