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.
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
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP