Error al hacer file_get_contents ¿Error de código o el servidor hosting?

  • Autor Autor Grimmjow
  • Fecha de inicio Fecha de inicio
Grimmjow

Grimmjow

1
Sigma
Diseñador
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Suscripción a IA
Buen día betas, tengo un problemilla que es raro... bueno sucede que la pagina que se ha codificado con php se muestra cierto tiempo de forma correcta y luego en horas aleatorias ya no se ve, todo se pone en blanco y comienza a generar errores_log. El error generado es el siguiente:
Insertar CODE, HTML o PHP:
23-Apr-2018 04:57:50 UTC] PHP Warning:  file_get_contents(http://aquivaelsitioweb.com/): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/website/public_html/carpetanueva/index.php on line 22
Lo curioso es que el código aparentemente esta bien, porque ha sido probado en otro servidor ajeno al que estoy alojado actualmente. En otro servidor este code funciona correctamente y no genera los errores_log... puedo concluir que el problema esta en mi servidor hosting? espero me puedan dar una mano con este problema.

P.D. En local todo funciona correctamente sin problemas, pero al subirlo al host es cuando da errores.
 
Última edición:
¿Y si usas cURL?
 
Puedes probar añadiendo un user-agent a tu petición

$options = array('http' => array('user_agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'));
$context = stream_context_create($options);
$response = file_get_contents('http://aquivaelsitioweb.com/', false, $context);


o también puedes probar con CURL , que por experiencia anda fino fino cuando file_get se pone nena :encouragement:
 
¿Y si usas cURL?

Puedes probar añadiendo un user-agent a tu petición

$options = array('http' => array('user_agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'));
$context = stream_context_create($options);
$response = file_get_contents('http://aquivaelsitioweb.com/', false, $context);

o también puedes probar con CURL , que por experiencia anda fino fino cuando file_get se pone nena :encouragement:

Gracias por sus comentarios! probare con CURL y estaré contando como me fue. Buscando por la red, encontré que la mayoría de proveedores de hostings tienen deshabilitada la función allow_url_open necesaria para el funcionamiento de file_get_contents().
 
Ya se te soluciono con php curl?
En parte podría decir que si soluciono, pero se ha vuelto a generar otro error...
Insertar CODE, HTML o PHP:
PHP Warning:  Invalid argument supplied for foreach() in /home/mistioweb/public_html/carpetanueva/index.php on line 35
La verdad ya no se que mas hacer ahora :'v, pienso que es el servidor hosting. [MENTION=34717]irwin238[/MENTION] [MENTION=79928]Adrián Freecss[/MENTION] [MENTION=9679]cicklow[/MENTION]
 
En parte podría decir que si soluciono, pero se ha vuelto a generar otro error...
Insertar CODE, HTML o PHP:
PHP Warning:  Invalid argument supplied for foreach() in /home/mistioweb/public_html/carpetanueva/index.php on line 35
La verdad ya no se que mas hacer ahora :'v, pienso que es el servidor hosting. [MENTION=34717]irwin238[/MENTION] [MENTION=79928]Adrián Freecss[/MENTION] [MENTION=9679]cicklow[/MENTION]

Me parece hay un problema con el array que estás tratando de usar con foreach, comprueba que sea válido.
 
En parte podría decir que si soluciono, pero se ha vuelto a generar otro error...
Insertar CODE, HTML o PHP:
PHP Warning:  Invalid argument supplied for foreach() in /home/mistioweb/public_html/carpetanueva/index.php on line 35
La verdad ya no se que mas hacer ahora :'v, pienso que es el servidor hosting. [MENTION=34717]irwin238[/MENTION] [MENTION=79928]Adrián Freecss[/MENTION] [MENTION=9679]cicklow[/MENTION]

como te dicen el problema es con tu array... con solo mostrar el error no se puede hacer nada... pon un print_r antes del foreach a evr si el array esta bien, o verifica con is_array a ver si esta bien antes de meterlo en el foreach
 
Atrás
Arriba