Foros del Web » Programando para Internet » PHP »

fopen hosteado en otro servidor(No anda, por lo tanto no carga el resto de la pagina)

Estas en el tema de fopen hosteado en otro servidor(No anda, por lo tanto no carga el resto de la pagina) en el foro de PHP en Foros del Web. Bueno.... Gracias a ustedes ya está casi terminada la página... La verdad que es este foro una base de datos enorme que te ayuda a ...
  #1 (permalink)  
Antiguo 16/11/2004, 07:59
Avatar de Terminator ®  
Fecha de Ingreso: julio-2004
Ubicación: San Isidro, Buenos Aires
Mensajes: 176
Antigüedad: 13 años, 5 meses
Puntos: 0
fopen hosteado en otro servidor(No anda, por lo tanto no carga el resto de la pagina)

Bueno....
Gracias a ustedes ya está casi terminada la página...
La verdad que es este foro una base de datos enorme que te ayuda a resolver muchísimos problemas.

Agradecimientos especiales a Cluster ya que estoy utilizando el Autentificator para acceder al panel de control y jpinedo por el Paginator.

Pueden echarle un vistazo a la página aquí:
http://24.232.102.73/index.php

Rápidamente prodrán localizar el problema: salvo el index, todas las demás páginas tienen asociado un fopen hosteado en otro sitio que en este momento no se puede acceder y es por eso que no permite terminar la descarga de toda la página hasta que pasen 2 minutos (lo cual es mucho tiempo).

PHP está configurado default con el tema del execution time y derivados.
Sin embargo hasta que no pasan 2 minutos no termina de cargar...

Lo que me gustaría saber es si existe alguna función/manera para que si cuando pasaron 15 segundos (tiempo razonable) no se pudo abrir ese archivo, lo cancele y continue con el resto...

El archivo es de Mercadolibre que hace poquito implementó XML para poder ofrecer las ofertas en los sitios.

Error:
Cita:
Warning: fopen(http://www.mercadolibre.com.ar/jm/se...kia&as_qshow=5): failed to open stream: HTTP request failed!  in C:\Archivos de programa\Apache Group\Apache2\htdocs\shop.php on line 243

Fatal error: Maximum execution time of 30 seconds exceeded in C:\Archivos de programa\Apache Group\Apache2\htdocs\shop.php on line 243
Gracias pos su tiempo.
  #2 (permalink)  
Antiguo 16/11/2004, 08:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En principio lo que veo son multitud de errores de Mysql de conexión ..

No sé que código usas para tu conexión (mysql_connec() ) .. pero al parecer usas el "host" para conectarte como la IP (o resolviendo la IP) del cliente conectado: REMOTE_ADDR ? .. por qué ahí veo la IP (resuelta) de mi proveedor de acceso a internet .. Tienes que verficar eso .. usa como "host" .. "localhost" en tus mysql_connect().

El tema del archivo externo .. podrías usar fsockopen() y usar el protocolo HTTP para hacer la conexión a esa página (u XML). Con ese grupo de funciones puedes controlar los time-out de la conexión en sí a esa fuente de datos y hasta de la transmisión en sí de los datos para determinar si ya pasó tus 15 segundos o no.

Un saludo,
  #3 (permalink)  
Antiguo 16/11/2004, 08:46
Avatar de Terminator ®  
Fecha de Ingreso: julio-2004
Ubicación: San Isidro, Buenos Aires
Mensajes: 176
Antigüedad: 13 años, 5 meses
Puntos: 0
Es muy raro realmente...
Historia:
Todo venía muy bien hasta hace unos días... yo podía visualizar muy bien mi pagina (hosteada en mi máquian) tanto tipeando "localhost" o mi IP en el navegador.
Pero en un momento cuando intentaba acceder con mi IP (usando la ip sirve para ver que contenido agrega google con AdSense) me tiraba todos los errores a los que debés estar haciendo referencia vos... o sea, no podés ver nada del conenido.
Esto lo solucioné (o por lo menos yo creí haberlo solucionado) agregando un nuevo usuario con todos los privilegios a través de phpMyAdmin pero en lugar de usar "localhost" de ubicación, puse el nombre de mi máquina "terminator" y esto a mi me solucionó este problema que apareció de la nada, ya que pude volver a visualizar todo el contenido en forma correcta utilizando mi IP en el navegador.

Eliminé nuevamente al usuario que se conectaba mediante "terminator" pero me aparecen esos errores otra vez...
phpMyAdmin cita el siguiente error al pie de página:
"The $cfg['PmaAbsoluteUri'] directive MUST be set in your configuration file!"
Tal vez tenga algo que ver...

ACTUALIZACION:
1 usuario autorizado: Terminator (localhost)
Información en los archivos php: la misma: Terminator, localhost, pass

Ahora YO puedo ver correctamente el sitio tanto por "ip" como por "localhost", sin embargo un amigo dice que los problemas persisten... no se me ocurre nada porque probé muchas combinaciones ya...
Tambien setee el $cfg['PmaAbsoluteUri'] a "localhost/phpmyadmin" y desaparecio el error.


Gracias por la respuesta...pronto le echaré un vistazo al fsockopen() para solucionar el problema...

Última edición por Terminator ®; 16/11/2004 a las 09:42
  #4 (permalink)  
Antiguo 16/11/2004, 12:44
Avatar de Terminator ®  
Fecha de Ingreso: julio-2004
Ubicación: San Isidro, Buenos Aires
Mensajes: 176
Antigüedad: 13 años, 5 meses
Puntos: 0
Estuve viendo un poquito fsockopen() y se presenta el siguiente problema:

www.mercadolibre.com funciona bien...
Lo que no funciona es el archivo XML y por lo visto no deja pasar como parámetro algo del estilo "www.mercadolibre.com.ar/jm/searchXml?as_categ_id=1648".

La idea sería obtener la ip de este archivo y ese dato meterlo en el fsockopen().
Al no existir, la ip no va a generarse y por lo tanto el fscokopen() tiraría FALSE...

Ahora bien... se puede obtener la IP de una dirección de ese estilo?
O algún otro método que permita saber si existe...

Última edición por Terminator ®; 16/11/2004 a las 12:45
  #5 (permalink)  
Antiguo 16/11/2004, 13:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si que puedes pasar parámetros con una conexión por sockets .. eso sí .. tendrás que fijarte más en como usar el protocolo HTTP. Ejemplos tienes en los comentarios de esa función .. fijate:

http://www.php.net/fsockopen

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:17.