Me ayudan con esta linea de PHP

  • Autor Autor Poka
  • Fecha de inicio Fecha de inicio
Poka

Poka

VIP
Iota
Social Media
Verificación en dos pasos activada
¡Ha verificado su Paypal!
Verificado por Binance
Suscripción a IA
Hola, tengo el siguiente código que estaba funcionando bien pero ahora dejo de funcionar sin que haya tocado algo.

Lo unico que quite aqui en el codigo es "URL DONDE TRAIGO EL JSON". Eso esta funcionando bien, ya lo probé y te devuelve un JSON. El problema es que el código no esta trayendo bien la data de ese JSON. Alguna idea de porque dejo de funcionar? PHP se actualizó o algo así?

PHP:
$numero_de_identificacion = filter_input(INPUT_POST, 'numero', FILTER_SANITIZE_NUMBER_INT);


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'URL DONDE TRAIGO EL JSON'. $numero_de_identificacion);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
curl_close($ch);


$data = json_decode( $data,true );

Gracias
 
Hola, tengo el siguiente código que estaba funcionando bien pero ahora dejo de funcionar sin que haya tocado algo.

Lo unico que quite aqui en el codigo es "URL DONDE TRAIGO EL JSON". Eso esta funcionando bien, ya lo probé y te devuelve un JSON. El problema es que el código no esta trayendo bien la data de ese JSON. Alguna idea de porque dejo de funcionar? PHP se actualizó o algo así?

PHP:
$numero_de_identificacion = filter_input(INPUT_POST, 'numero', FILTER_SANITIZE_NUMBER_INT);


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'URL DONDE TRAIGO EL JSON'. $numero_de_identificacion);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
curl_close($ch);


$data = json_decode( $data,true );

Gracias
puede ser por falta de algun headers en la solicitud pero no estoy seguro habria que analizar la url para saber con exactitud
 
Y qué te aparece en el error.log?
 
Tienes la documentación actualizada del servicio?
Qué mensaje sale si haces la llamada con Postman?
 
PHP Notice: Trying to access array offset on value of type null in RUTA

Eso me sale
debes validar en el json que si RUTA es null te le asigne algun valor, RUTA trae null.
Creo que el curl está bien.
Yo hice la prueba con un api publica
JavaScript:
$numero_de_identificacion = '33162';


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.zippopotam.us/us/'. $numero_de_identificacion);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
// Agregue esto por que no me dejaba en local
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
// Agregue esto por que no me dejaba en local

$data = curl_exec($ch);
curl_close($ch);

$data = json_decode( $data,true );
1672245684578.png


Ahora, tienes la documentación actualizada?? te recomiendo agregues un var_dump($data) despues del json_decode y un die(); para ver si te trae ruta o si la estructura del Json es igual. Ademas mira el error log, ahi te puede decir la linea donde esta fallando el proceso
 
debes validar en el json que si RUTA es null te le asigne algun valor, RUTA trae null.
Creo que el curl está bien.
Yo hice la prueba con un api publica
JavaScript:
$numero_de_identificacion = '33162';


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.zippopotam.us/us/'. $numero_de_identificacion);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
// Agregue esto por que no me dejaba en local
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
// Agregue esto por que no me dejaba en local

$data = curl_exec($ch);
curl_close($ch);

$data = json_decode( $data,true );
Ver el archivo adjunto 921152

Ahora, tienes la documentación actualizada?? te recomiendo agregues un var_dump($data) despues del json_decode y un die(); para ver si te trae ruta o si la estructura del Json es igual. Ademas mira el error log, ahi te puede decir la linea donde esta fallando el proceso
Me devuelve NULL. Es como si no estuviese pudiendo llamar a la url, pero si entro yo directo o desde postman si me hace bien el llamado. Puede ser que el servidor este bloqueando la ip y por eso no me trae la información?
 
Me devuelve NULL. Es como si no estuviese pudiendo llamar a la url, pero si entro yo directo o desde postman si me hace bien el llamado. Puede ser que el servidor este bloqueando la ip y por eso no me trae la información?
Si tienes acceso por consola, le haria un curl directo, poniendo estatico el numero de identificacion, para ver si me devuelve algo
algo asi como esto

Insertar CODE, HTML o PHP:
curl -o test.json URL.com/IDENTIFICACION
y luego
Insertar CODE, HTML o PHP:
cat test.json
 
Al parecer el servidor esta bloqueando las curl request que hago desde otro dominio. No sé cómo hacer para pasar ese bloqueo
 
sigues con el error?
 
si podes pasa el link de donde traes el json o alguna documentacion para poder cual es el problema.
 
El mensaje de error "PHP Notice: Trying to access array offset on value of type null" indica que estás tratando de acceder a un elemento de un array (un "offset") que es null (es decir, no está definido o no tiene valor). Esto puede ocurrir porque el array en el que estás tratando de acceder no existe o porque el elemento del array que estás tratando de acceder no existe.

Para solucionar este problema, puedes comprobar si el array existe y si el elemento del array existe antes de intentar acceder a ellos. Por ejemplo:

Insertar CODE, HTML o PHP:
if (isset($data) && isset($data['offset'])) {
// El array existe y el elemento del array también, por lo que se puede acceder a ellos sin problemas
$offset = $data['offset'];
} else {
// El array o el elemento del array no existen, por lo que no se pueden acceder a ellos
$offset = null;
}

Además, también debes asegurarte de que la variable $data tenga un valor válido antes de intentar acceder a sus elementos. Por ejemplo, si $data es null o una cadena vacía, no podrás acceder a sus elementos y se producirá este error.

Espero que esto te ayude a solucionar el problema. Si tienes más dudas, no dudes en volver a preguntar.
 
quizá te bloquearon el acceso por ip, intenta usar proxies
 
Sí, me bloquearon. Lo cual es raro porque es mi propio servidor. Estoy viendo con banahosting como resolverlo.
no es cosa de servidor, porque así te cambien de servidor/ip podría pasar lo mismo. Si tiene políticas de evitar muchas peticiones seguidas desde una misma ip seguirá el mismo curso.
 
Atrás
Arriba