Ver Mensaje Individual
  #34 (permalink)  
Antiguo 19/08/2006, 17:59
DarioDario
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 19 años, 8 meses
Puntos: 2
Cita:
Iniciado por DarkXNightmare
ATENTOS!!!! NUEVAS NOTICIAS!!!!

MySQLBackUP tiene acceso para FTP!

En este preciso momento lo acabo de terminar y luego voy a crear la documentación para que puedan usar toda su tecnología ;D.

Atte... DarkXNightmare ;D.
No lo puedo creer!!!! . Justo en este mismo momento (en el que has hecho el post) termine de hacer esto mismo para aportar al proyecto. Esto me pasa por no abrir la boca antes.

De todos modos lo comparto. No creo que sea mejor que lo tu has hecho, pero aqui va.

ACLARACION: No soy bueno con POO asique seguramente le encontraran muchos detalles, y en la manera que esta hecho es la unica que se me ocurrio.

Hay una nueva variable en el objeto es la siguiente:
Código PHP:
    /**
     * Guarda el error, si lo hay, de la funcion que intenta guardar el backup en un ftp.
     *
     * @var string
     * @access private
     */
    
private $errorFTP ""
Y dos nuevas funciones:
Código PHP:
     /**
     * Transfiere el archivo creado localmente a un FTP.
     * 
     * @param string $servFTP
     * @param string $userFTP
     * @param string $passFTP
     * @param integer $portFTP
     * @access public
     * @return bool
     */
     
public function DoFTPBackUp($servFTP$userFTP$passFTP$portFTP 21)
     {
        
$ftp_con ftp_connect($servFTP$portFTP);
        
        if(!
$ftp_con)
        {
                
$this->errorFTP 'No se pudo conectar al servidor ftp ( '.$servFTP.').';
                return 
FALSE;
        }
        
        
$ftp_login = @ftp_login($ftp_con$userFTP$passFTP);
        
        if(!
$ftp_login)
        {
                
$this->errorFTP 'Problemas con el login.';
                return 
FALSE;
        }
        
        
$fl = @fopen($this->file_path $this->database ".sql""r");
        
        if(!
$fl)
        {
                
$this->errorFTP 'Problemas al abrir el archivo. Asegurece de haber ejecutado DoFilaBackUp() antes de esta funcion';
                return 
FALSE;
        }
        
        if(
ftp_fput($ftp_con$this->database ".sql"$flFTP_ASCII))
        {
               
$resultado TRUE;
         }else{
                
$this->errorFTP "Hubo un problema durante la carga del archivo al FTP.";
                
$resultado FALSE;
          }
        
          
ftp_close($ftp_con);
          
fclose($fl);
        
        return 
$resultado;
     }
     
    
/**
     * Devuelve el error de la funcion DoFTPBackUp, si la hay.
     * 
     * @access public
     * @return string
     */
     
public function GetErrorFTP()
     {
             return 
$this->errorFTP;
     } 
Este es el ejemplo de como se usaria:
Código PHP:
include("class.MySQLBackUP.inc.php");
$backup = new MySQLBackUP("servidor_mysql""usuario_mysql""contraseña_mysql""basededatos_a_respaldar");
$backup->file_path "C:\\";
$backup->DoFileBackUp();
if(!
$backup->DoFTPBackUp('servidor''usuario''password'21)) #El puerto es opcional
{
      echo 
$backup->GetErrorFTP();

Saludos.