TransWikia.com

curl php comparar resultado

Stack Overflow en español Asked on December 28, 2021

gracias por leer mi post, bueno:

Tengo un php con curl el cual hace una consulta y devuelve un resultado.


{"Consultar":{"Apellidos":"FRANCISCO ","vip":false,"Nombre":"nombre "}}

Actualmente tengo que comparar el numero de usuario y si es vip hacer una redirección a una página, y si no lo es a otra diferente.

¿Cómo comparo si es VIP con el resultado que me devuelve arriba?

y en caso de que el resultado sea "false" haga una redireccion y si es "true" haga otra redirección diferente?


<?php 
$user= $_GET['user'];

    $curl = curl_init();
        $request =  '';
    curl_setopt($curl, CURLOPT_URL, 'login');
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($curl, CURLOPT_HTTPHEADER, ['content-type: application/json']);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $request); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($curl);
    $err = curl_error($curl);
    if($err) {
        echo 'Curl Error: ' . $err;
    } else {
        // header('content-type: application/json');
        $response = json_decode($result, true);
        $token = $response['AuthenticateResult']['AuthToken']; 
        curl_close($curl);




        
/* *************************************************************************************************************************************************** */




        /*SEGUNDA LLAMADA PARA OBTENER EL USUARIO*/
        $curl = curl_init();
            curl_setopt_array($curl, array(
              CURLOPT_URL => "consultarusuario",
              CURLOPT_RETURNTRANSFER => true,
              CURLOPT_ENCODING => "",
              CURLOPT_MAXREDIRS => 10,
              CURLOPT_TIMEOUT => 30,
              CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
              CURLOPT_CUSTOMREQUEST => "GET",
              CURLOPT_POSTFIELDS => "{ "usuario":"" .$user. "" }",
              CURLOPT_HTTPHEADER => array(
                    "authorization: Bearer $token",
                    "content-type: application/json",
                  ),
            ));
            $response = curl_exec($curl);
            $err = curl_error($curl);

            if ($err) {
              echo "cURL Error #:" . $err;
            } else {
              echo $response;
            }
            curl_close($curl);
        }
?>

he intentado algo pero se lo salta, gracias por la ayuda, un saludo.

One Answer

Asumiendo que $response vale esto:

$response='{"Consultar":{"Apellidos":"FRANCISCO ","vip":false,"Nombre":"nombre "}}';

Puedes aplicarle json_decode() para trabajar con un JSON y buscar los datos.

Por ejemplo:

        if ($err) {
          echo "cURL Error #:" . $err;
        } else {
          $json=json_decode($response);
          #Asignas la URL con un ternario
          $url=($json->Consultar->vip) ? "www.url.cuando.sea.true" : "www.url.cuando.sea.false";
          #Rediriges usando $url
          header("Location: $url");
          exit();
        }

PD: Para que tu código no quede en el limbo en caso de error, si estás trabajando con redirecciones, deberías considerar aplicarlas también en caso de que haya errores de cURL.

Por ejemplo:

        if ($err) {
          $url="www.url.cuando.error";
        } else {
          $json=json_decode($response);
          #Asignas la URL con un ternario
          $url=($json->Consultar->vip) ? "www.url.cuando.sea.true" : "www.url.cuando.sea.false";
        }
        #Rediriges usando $url, fuera del if
        header("Location: $url");
        exit();

Answered by A. Cedano on December 28, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP