Foros del Web » Programando para Internet » PHP »

Ftp ?

Estas en el tema de Ftp ? en el foro de PHP en Foros del Web. Estoy realizando una funcion para que los usuarios puedan hacer login mediante un form para un FTP. Mi duda es si despues que yo haga ...
  #1 (permalink)  
Antiguo 26/01/2004, 00:39
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Ftp ?

Estoy realizando una funcion para que los usuarios puedan hacer login mediante un form para un FTP. Mi duda es si despues que yo haga login y siga navegando por el sitio se mantiene la sesion FTP hasta que yo la cierre o se cierra sola.?
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 26/01/2004, 06:29
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 .. si tu servidor FTP no desconecta al usuario bajo su configuración no desconectaría hasta que el usuario haga un ftp_close().

Eso se referiría a un script completo (flujo) .. pero si vas a ir "saltando" entre scripts .. creo que PHP cierra la conexión al terminar el script (por lo menos con Base de datos lo hace).

En las funciones de "FTP" no he visto ninguna tipo "conexión persistente" .. (buscala por si a caso).

Pero, lo normal es que tus scripts usen el FTP (login) ... y desconecten al terminar tu script y así liberar una conexión FTP de ese servidor FTP.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 26/01/2004, 10:10
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Mira lo que quiero hacer es esto

Mira Cluster esto es básicamente lo que quiero hacer es que el usuario se logee en el FTP y entonces si el login y el password es correcto darle acceso a todas las descargas del FTP pero estas están en una BD organizadas por categorías y sería imposible mostrarlas todas en una sola página. Me hago entender?
__________________
Ing. Reynier Pérez Mira
  #4 (permalink)  
Antiguo 26/01/2004, 11:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Creo que estás enfocando mal la solución ...

Tu usuario se autentifica en tu sistema .. hace las consultas a tu BD por esos registros que contienen los nombres de tus archivos y/o ruta donde estén ...

PHP será el que descarge el archivo ..ya sea obteniendolo desde un servidor FTP o desde el sistema de archivos del servidor y lo entregue a descarga al navegador con las cabeceras HTTP adecuadas.

Si PHP y esos archivos están en el mismo Servidor .. la conexión FTP está de más, es más rápido acceder al sistema de archivo.

Si usas PHP para conectar por FTP .. estás usando PHP como "cliente" FTP y como "interface" usas a un navegador (para entregarlo a tu usuario que navega por tu sitio).

Lo que tienes que preocuparte es de autentificar a tu usuario en los scripts que hagan ese proceso de conectar o pedir el archivo a descargar.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 26/01/2004, 12:34
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Mira esta es la funcion ...

Mira esta es la funcion que he creado para realizar el proceso de autentificación.
Código PHP:
 function conectaftp($server,$usuario,$passwd,$ficherolocal,$fileid){
     
$conecta ftp_connect($server,21,300);
     
$login ftp_login($conecta,$usuario,$passwd);
     if ((!
$conecta) or (!$login)){
         echo 
"La conexión al Servidor FTP ha fallado<br>";
         echo 
"Debes introducir un nombre de usuario y contraseña correctos";
         exit();
     }else{
         echo 
"Conexión realizada exitosamente";
          if (
ftp_get($conecta,$ficherolocal,$fileid,FTP_BINARY)){
              echo 
"Descarga completada correctamente";
          }else{
              echo 
"Ocurrio un error mientras se intentaba descargar el fichero:&nbsp;".$fileid;
          }
     }
     
ftp_close($conecta);
 } 
Ahora lo que no se si funciona correctamente pues no la he probado. En la escuela mia no tengo ningún servidor FTP para poder probarla. Además no sabía lo de si se mantenía abierta o no la sessión del FTP mientras se navegaba por las categorías de las descargas existentes en el FTP.

Me ayudas?
__________________
Ing. Reynier Pérez Mira
  #6 (permalink)  
Antiguo 26/01/2004, 15:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tu función ya cierra la conexión (ftp_close()) .. así que si tu usuario cambia de "script" (pàgina) y realiza otra acción sobre el servidor .. va a tener que autentificarse nuevamente. Incluso si usas esa función para "conectar" y luego quieres hacer alguna operación con tu servidor .. debes de sacar fuera de esa función el ftp_close() y hacer global el $conecta o que la función lo devuelva (return) para poder usarlo en otras funciones ftp_xxx()

Ya te he comentado en el anterior mensaje como va a funcionar tu aplicación .. El hecho de que uses un servidor FTP y este a su vez requiera autentificación para interactuar con el .. no te va a evitar crear esas variables de "usuario/password" para ese servidor en alguna sesión para usarlas cada vez que requieras atuentificarte en ese servidor FTP para realizar alguna acción sobre el ..

Ademas, recuerda lo que te he comentado: Si tu servidor FTP va a ser el mismo que corre PHP ... mejor usa el sistema de archivos (copy() .. etc .. funciones).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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:43.