Nueva pregunta

Pregunta:

Fecha: 14-06-2023 13:25:23 (En Español)

Error curl a partir de php7.2 en Hosting[No resuelta]

Hola buenas Noches, estoy teniendo inconveniente con Curl en PHP a partir de 7,2.El inconveniento lo tengo en el Hosting, tengo Xampp y php 8 en local y todo funciona normal, lo subo al Hosting y solo en 7.1 funciona, contacte al hosting y dicen que ellos tienen todo bien configurado, hasta el momento no me dieron respuesta. Estoy buscando por todos lados y no encuentro la posible falla.
Como dato el valor me devuelve NULL. Desde ya muchas Gracias
Etiquetas: cURL - Hosting - PHP Votos: 0 - Respuestas: 13 - Vistas: 10 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 20-06-2023 20:17:08 deberias publicar algo de codigo por lo menos para guiarme   Votos: 0 - Link respuesta
     
  • Fecha: 21-06-2023 07:48:27 ¿Puedes colocar el texto del error que te produce y el código que te da problemas? También puedes consultar en la página de PHP cuáles son los cambios que son incompatibles con versiones anteriores (consulta la versión de php 8 a la cual quieres migrar y busca la sección 'Upgrade')   Votos: 0 - Link respuesta
     
  • Fecha: 21-06-2023 12:55:48 Hola Juan gracias por contestar, en php 8 local me funciona en el hosting no, el error es clooud front y valor null. El hosting no sabe qué extensión pudo haber cambiado y no me dan respuesta. Solo al obtener el token el resto funciona.   Votos: 0 - Link respuesta
     
  • Fecha: 21-06-2023 13:54:07 es la version de php en tu hosting solo tienes que cambiarlo a php 8 y listo... ahora por lo que veo si no eso mandame el codigo en donde te sale error... quisas estas utilizando variables de php antiguo version por eso no te va a permitir acceder al sistema ....   Votos: 0 - Link respuesta
     
  • Fecha: 21-06-2023 17:00:56 Hola gracias por responder, en el hosting tiene todas las versiones pero a partir de 7.2 el token no lo genera. El error es valor nulo pero en php 8 en local si me funciona
    Otro error no me devuelve, coloque un vardump y nada
      Votos: 0 - Link respuesta
     
  • Fecha: 22-06-2023 08:00:23 Sería bueno que colocaras tu código y el texto exacto del error que estas recibiendo (si es que ves alguno). Las descripciones genéricas no ayudan a ayudarte. Decir "el error es valor nulo" no dice nada que pueda ayudar a saber qué puede estar pasando (es un índice de array que no existe? una variable con valor NULL? Un objeto al cual le falta una propiedad? O solo es algo mal escrito?). Los detalles son lo más importante en estos casos.   Votos: 0 - Link respuesta
     
  • Fecha: 22-06-2023 09:03:39 Hola juan esto lo que me devuelve.
    400 ERROR

    The request could not be satisfied.

    Bad request. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.
    If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.
    Generated by cloudfront (CloudFront)
    Request ID: 0hceBZvJJV-TZPXvcs83JnV3GTaaYBXqVPxyMHbIdl8d_g9kn1be_Q==
    " 400

    el link de prueba es https://ingenieriaenprevencionsa.com/token.php


    este es el código php que en php8 funciona pero no en el hosting.
    APP_ID="****************";
    $Key_secret="*************";
    $refresh_Token="*****************";
    
    $url="https://api.mercadolibre.com/oauth/token?grant_type=refresh_token&client_id=".$APP_ID."&client_secret=".$Key_secret."&refresh_token=".$refresh_Token.""; 
    
    			$cabecalho = array('Content-Type: application/json','Accept: application/json'); 
    
    //Iniciamos cURL junto con la URL 
    			$ch = curl_init(); 
    			curl_setopt($ch, CURLOPT_URL, $url); 
    			curl_setopt($ch, CURLOPT_HTTPHEADER, $cabecalho); 
    //curl_setopt($ch, CURLOPT_POSTFIELDS, $campos); 
    			curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); 
    //Agregamos opciones necesarias para leer
    			curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    			curl_setopt($ch, CURLOPT_POST, true); 
    			curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); 
    // Capturamos la URL
    			$respuesta = curl_exec($ch); 
    
    			$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
    			curl_close($ch);
    //Descodificamos para leer
    			$getData = json_decode($respuesta,true);
    
    			$nuevo_Token = $getData['access_token'];
    			echo $nuevo_Token."<br>";
    
    			print_r($getData );
    
    
    ?>
    
      Votos: 0 - Link respuesta
     
  • Fecha: 22-06-2023 09:17:59 Hola Seba, he tenido problemas con cURL de lo más extraños, y el problema la mayoría de las veces venia dado por el protocolo diferente... me hice un script básico para comprobar la configuración de cURL, te lo comparto:

      $curl_info = curl_version();
      echo "protocolo: " . $curl_info['ssl_version'];
      echo '<br/>';
      echo '<br/>';
      echo '<pre>';
      print_r($curl_info);
      echo '</pre>';
      echo '<br/>';
      echo '<br/>';
      echo 'PHP VERSION: ',PHP_VERSION;
    


    Ejecutalo en ambos servidores y compartí aquí los resultados.

    Saludos y buen código!
      Votos: 0 - Link respuesta
     
  • Fecha: 22-06-2023 10:02:24 Viendo la URL que mandaste hay tres cosas: 1) el error está en la línea 39 (o antes) del archivo llamado 'token.php'; 2) se trata de que estas pasando un índice de array que no tiene valor (por ejemplo: $variable = $array['']); 3) Si miras la parte superior izquierda de la página, dice "string(915)". Eso podría ser lo último que imprimió tu código antes de generar el error, tal vez debías buscar en tu código qué es lo que genera ese texto y ver si el error anda cerca.

    ¿Podrías colocar algunas líneas alrededor de la línea 39 del archivo token.php? (30 a 50, o algo así, para tener contexto)

    Mira lo que marqué aqui (es una imagen en imgur): https://imgur.com/a/4V908oW
      Votos: 0 - Link respuesta
     
  • Fecha: 22-06-2023 13:21:41 entiendo.. !! veo muchos Errores .. te lo he corregido y debería ser así https://www.mediafire.com/file/gb63xsx5ra2d1sq/solucion.txt/file

    SUERTE ..!! y que la FUERZA te ACOMPAÑE :)
      Votos: 0 - Link respuesta
     
  • Fecha: 22-06-2023 15:06:24 Hola buenas noches, bueno gracias a todos por la respuesta, con ambas cosas pude ver las diferencias. con los ajustes de bananero no me tiro error. Ahora comprando con la info de Fer es correcto trabaja en protocolos diferentes. Adjunto lo que me dio.

    protocolo: NSS/3.53.1

    Array
    (
    [version_number] => 466176
    [age] => 3
    [features] => 558781
    [ssl_version_number] => 0
    [version] => 7.29.0
    [host] => x86_64-redhat-linux-gnu
    [ssl_version] => NSS/3.53.1
    [libz_version] => 1.2.7
    [protocols] => Array
    (
    [0] => dict
    [1] => file
    [2] => ftp
    [3] => ftps
    [4] => gopher
    [5] => http
    [6] => https
    [7] => imap
    [8] => imaps
    [9] => ldap
    [10] => ldaps
    [11] => pop3
    [12] => pop3s
    [13] => rtsp
    [14] => scp
    [15] => sftp
    [16] => smtp
    [17] => smtps
    [18] => telnet
    [19] => tftp
    )

    [ares] =>
    [ares_num] => 0
    [libidn] => 1.28
    [iconv_ver_num] => 0
    [libssh_version] => libssh2/1.8.0
    )


    PHP VERSION: 8.0.12

    Mi código no funciona.

    *****************************************
    con este Liu funciona, ahora a mirar
    protocolo: OpenSSL/1.0.1e

    Array
    (
    [version_number] => 470272
    [age] => 3
    [features] => 558621
    [ssl_version_number] => 0
    [version] => 7.45.0
    [host] => x86_64-pc-linux-gnu
    [ssl_version] => OpenSSL/1.0.1e
    [libz_version] => 1.2.7
    [protocols] => Array
    (
    [0] => dict
    [1] => file
    [2] => ftp
    [3] => ftps
    [4] => gopher
    [5] => http
    [6] => https
    [7] => imap
    [8] => imaps
    [9] => ldap
    [10] => ldaps
    [11] => pop3
    [12] => pop3s
    [13] => rtsp
    [14] => smb
    [15] => smbs
    [16] => smtp
    [17] => smtps
    [18] => telnet
    [19] => tftp
    )

    )


    PHP VERSION: 7.0.33
      Votos: 0 - Link respuesta
     
  • Fecha: 22-06-2023 15:59:20 El problema que estás experimentando parece estar relacionado con las diferencias en las versiones de PHP y las extensiones utilizadas en cada ambiente. Es posible que la versión de PHP 8.0.12 junto con la extensión NSS/3.53.1 no sea compatible con el servidor al que estás intentando acceder.

    por lo que veo versión modificada del código que vi fue la extensión OpenSSL en lugar de NSS. Esto debería ser compatible con PHP 8.0.12 y OpenSSL/1.0.1..

    Ok.. ya entendí donde esta el error ... déjame hacer unas correcciones al código

    https://www.mediafire.com/file/hye16mmopljlz12/solucion_2.txt/file
      Votos: 0 - Link respuesta
     
  • Fecha: 23-06-2023 08:16:32 Hola Seba, si, cURL con NSS tiene diferencias a la implementación con OpenSSL

    Vas a tener que ver cual es el error puntual utilizando la función curl_error que te devuelve una cadena que contiene el último error de la sesión actual.

    Scá te dejo el link a la documentación oficial para que veas ejemplos de implementación https://www.php.net/manual/es/function.curl-error.php

    Saludos y buen código!
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com