Foros del Web » Programando para Internet » PHP »

Manejo de archivos remoto

Estas en el tema de Manejo de archivos remoto en el foro de PHP en Foros del Web. Hola a todos, les cuento mi problema, estoy tratando de hacer una aplicacion de administración de solicitudes, y la idea es que cada vez que ...
  #1 (permalink)  
Antiguo 21/01/2015, 13:05
 
Fecha de Ingreso: enero-2013
Mensajes: 12
Antigüedad: 11 años, 3 meses
Puntos: 0
Manejo de archivos remoto

Hola a todos, les cuento mi problema, estoy tratando de hacer una aplicacion de administración de solicitudes, y la idea es que cada vez que el administrador inicia sesión, la aplicación busque por nuevas solicitudes y las agregue a la base de datos, esto por solicitud del cliente.

El tema es, que las nuevas solicitudes se guardan en un archivo que se encuentra en otro equipo de la red.
Inicialmente intente actualizar automaticamente mediante el comando SQL "LOAD DATA INFILE", pero despues de revisar arto ya me quedo claro que solo es util si el archivo esta localmente.
Despues pense en probar leer el archivo directamente y hacer un update, pero con "fopen" no hay caso.
Ahora, no se si el problema sera con PHP, porque probando la función:

Código PHP:
if (file_exists($ruta)) 
Siempre me devuelve FALSE, pero a la vez usando la ruta en html

Código PHP:
?> <a href="<?php echo $ruta;?>" >click aqui</a><?php
Me genera sin problemas un enlace que abre el archivo directamente en el navegador, el archivo es un txt por si acaso.

Entonces no se si alguien conoce alguna forma de copiar o mover el archivo al equipo local mediante PHP o si debo implementar un nuevo lenguaje.

Gracias de antemano.
  #2 (permalink)  
Antiguo 21/01/2015, 13:27
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Manejo de archivos remoto

Primero que nada que sistema operativo tienen los dos servidores involucrados en tu problema ?
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 21/01/2015, 13:29
 
Fecha de Ingreso: enero-2013
Mensajes: 12
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Manejo de archivos remoto

Ambos equipos funcionan con Windows XP
y viendo un poco más detenidamente, parece ser tema de permisos, ya que el error que aparece es

Cita:
Warning: file_get_contents(): failed to open stream: Permission denied in
  #4 (permalink)  
Antiguo 21/01/2015, 13:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Manejo de archivos remoto

Pues el error dice claramente "Permission denied", so, tienes que corregir los permisos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 21/01/2015, 14:45
 
Fecha de Ingreso: enero-2013
Mensajes: 12
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Manejo de archivos remoto

Y como lo chequeas en Windows?

Porque revisando las propiedades de las carpetas, para todos estan habilitadas todos los permisos, de lectura, acceso, escritura, control total, etc

y aun asi no es posible leer el archivo mediante php, tambien intente usar el "fileperms();", para ver los permisos y me arroja un error:

Warning: fileperms(): stat failed
  #6 (permalink)  
Antiguo 21/01/2015, 15:16
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Manejo de archivos remoto

Cita:
Y como lo chequeas en Windows?
Eso te corresponde a ti, que trabajas sobre windows.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 21/01/2015, 15:23
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Manejo de archivos remoto

El problema esta en que cuando llamas al archivo si no es texto plano, no lo mostrara como texto.
Por ejemplo
index.php en servidor 1
Cita:
<?php $sql = 'SENTENCIA SQL COMPLETA';
index.php en servidor 2
Cita:
$a = mysql_query(file_get_contens('http://servidor1/index.php));
esto no cargara nada en mysql_query
para que lo mostrara tendriamos que hacer lo siguiente
index.php en servidor 1
Cita:
<?php echo 'SENTENCIA SQL COMPLETA';
esto hara que servidor1 procese el archivo php y muestre su salida, asi cuando servidor2 intente acceder a la pagina lo hara como un archivo de texto.
No es posible procesar un archivo php desde otro servidor.
No te aconsejo este tipo de uso, por problemas de seguridad.
__________________
http://www.roglastudios.es
  #8 (permalink)  
Antiguo 21/01/2015, 15:26
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Manejo de archivos remoto

una opcion mas acertada es que hicieras un sistema por FTP para obtener los archivos y que luego sean procesados por servidor2
otra mas facil que que creo que deberia ser la primera que uses, es usar rutas absolutas.
En windows las funciones de archivos da problemas con rutas de directorios fuera del directorio de instalacion y con rutas relativas del web server.
Dicho de otra forma, hay veces que aunque tengas definido por ejemplo tu root en
Cita:
C:\xampp\htdocs
puede que no sea igual esto
Cita:
C:\xampp\htdocs\archivo_a_buscar.txt != archivo_a_bucar.txt
Casi seguro que estas usando algo asi
Cita:
fopen('test.txt','a+');
prueba a cambiarlo por algo asi
Cita:
fopen('C:\xampp\htdocs\test.txt','a+');
Comprueba primero las cabeceras que te lanza tu navegador cuando lo abres tu archivo por web, para comprobar que no hay ningún redireccionamiento, y despues comprueba las rutas que esten bien definidas.

Si aun asi no quieres hacerlo de esta manera, tienes opciones FTP en el manual de php.

Suerte y comenta las cabeceras para poder pedir mas ayuda
__________________
http://www.roglastudios.es

Última edición por Dalam; 21/01/2015 a las 18:49

Etiquetas: html, manejo, remoto, sql
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 22:21.