Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] cURL ha dejado de funcionar: Unrecognized Object Identifier.

Estas en el tema de cURL ha dejado de funcionar: Unrecognized Object Identifier. en el foro de PHP en Foros del Web. Hola a todos, utilizo desde hace más de un año el comando cURL para abrir una url, extraer un parámetro y vuelvo abrir otra url ...
  #1 (permalink)  
Antiguo 25/07/2020, 00:04
 
Fecha de Ingreso: febrero-2003
Mensajes: 762
Antigüedad: 17 años, 6 meses
Puntos: 2
cURL ha dejado de funcionar: Unrecognized Object Identifier.

Hola a todos, utilizo desde hace más de un año el comando cURL para abrir una url, extraer un parámetro y vuelvo abrir otra url con file_get_contents utilizando ese parámetro para poder guardar la finalmente la información deseada así:

Código PHP:
$curl curl_init();

curl_setopt_array($curl, array(
  
CURLOPT_URL => "https://url_funciona_ok.com",
  
CURLOPT_RETURNTRANSFER => true,
  
CURLOPT_ENCODING => "",
  
CURLOPT_MAXREDIRS => 10,
  
CURLOPT_TIMEOUT => 30,
  
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  
CURLOPT_CUSTOMREQUEST => "GET",
  
CURLOPT_HTTPHEADER => array(
    
"cache-control: no-cache"
  
),
));

$response curl_exec($curl);
$err curl_error($curl);

curl_close($curl);

if (
$err) {

echo 
"cURL Error #:" $err;



} else {

$palabra "sh/";

$str substr($response, (strpos($response$palabra) + strlen($palabra)));

$urlentera "https://url_funciona_ok.com/sh/".substr($str08);

$cadenaentera file_get_contents($urlentera);


Me muestra este error: cURL Error #:Unrecognized Object Identifier.

Lo primero que pensé fue: "han cambiado algo en las web que ya no responde a los parámetros iniciales o simplemente están caídos"

Pero si los abro desde mi navegador: https://url_funciona_ok.com funciona perfectamente, la cadena a extraer está en la misma posición y cuando uno manualmente la segunda url con el parámetro funciona también perfectamente mostrándome toda la información deseada. No ha cambiado nada.

He comprobado y mi servidor sigue conservando la versión 5.3 de PHP y las web su certificado de seguridad sigue siendo el mismo sin caducar. Lo único peculiar que he visto que el certificado fue renovado el pasado 15 de julio pero a mi me ha empezado a fallar hace dos días, el día 15, 16, 17... funcionaba perfectamente. Es más, todos esos días tengo guardado en mi base de datos la información satisfactoriamente.

Gracias

un saludo
  #2 (permalink)  
Antiguo 25/07/2020, 08:22
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.129
Antigüedad: 16 años, 2 meses
Puntos: 820
Respuesta: cURL ha dejado de funcionar: Unrecognized Object Identifier.

Puedes probar añadiendo estas líneas a tu request CURL:
Código PHP:
curl_setopt($curl CURLOPT_SSL_VERIFYHOST0);
curl_setopt($curl CURLOPT_SSL_VERIFYPEER0); 
Pero también es posible que hayan añadido más controles de acceso y eso no te sirva. De todas maneras, nada pierdes con intentarlo
  #3 (permalink)  
Antiguo 26/07/2020, 04:57
 
Fecha de Ingreso: febrero-2003
Mensajes: 762
Antigüedad: 17 años, 6 meses
Puntos: 2
Respuesta: cURL ha dejado de funcionar: Unrecognized Object Identifier.

Cita:
Iniciado por Panino5001 Ver Mensaje
Puedes probar añadiendo estas líneas a tu request CURL:
Código PHP:
curl_setopt($curl CURLOPT_SSL_VERIFYHOST0);
curl_setopt($curl CURLOPT_SSL_VERIFYPEER0); 
Pero también es posible que hayan añadido más controles de acceso y eso no te sirva. De todas maneras, nada pierdes con intentarlo
Muchísimas gracias! habrá algo que no sepáis vosotros... ha funciona perfectamente. Se ve entonces que han cambiado el tipo de seguridad y pesar de empezar el día 15 se aplicó más tarde.

un saludo
  #4 (permalink)  
Antiguo 26/07/2020, 12:28
 
Fecha de Ingreso: abril-2006
Mensajes: 453
Antigüedad: 14 años, 3 meses
Puntos: 100
Respuesta: cURL ha dejado de funcionar: Unrecognized Object Identifier.

Cita:
Iniciado por escan_0 Ver Mensaje
Muchísimas gracias! habrá algo que no sepáis vosotros... ha funciona perfectamente. Se ve entonces que han cambiado el tipo de seguridad y pesar de empezar el día 15 se aplicó más tarde.

un saludo
CURL tiende a verificar mediante certificados locales, cuando realizas un HTTPS verifica primero si la validez del certificado es correcta, pero eso lo compara con su registro interno, si alguno de los 2 esta desactualizado habra un error, eso es para evitar que CURL sea victima de MITM , bueno en resumen es para seguridad.
Código PHP:
curl_setopt($curl CURLOPT_SSL_VERIFYHOST0);
curl_setopt($curl CURLOPT_SSL_VERIFYPEER0); 
lo que hace esos parametros estas desactivando esa seguridad. pero a casi nadie le toma importancia, almenos que hagas transacciones monetarias.
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9



La zona horaria es GMT -6. Ahora son las 18:36.