Programacion- No se si va aqui !

  • Iniciador del tema Iniciador del tema Klaudox
  • Fecha de inicio Fecha de inicio

Klaudox

Usuario Nuevo nvl. 1
6 Nov 2009
854
3
17
Toesca
HOLA COMPAÑERO NECESITO UNA MANO LLEVO DIAS INTENTADO RESOLVER QUE PUEDE SER PERO NO SE CUAL ES EL PROBLEMA

Tengo un codigo que genera backups de mi base de datos diarios eso todo bien , pero para tener mas seguridad, cuando se generen los backups tambien me lleguen a mi correo pero el problema es que llegan pesando 0kb alguien sabe porque sucede eso? , le dejo el codigo para que me ayuden gracias..

function backup ($filename){

//$mailto = "[email protected]";
$from_name = "ENVIO DE RESPALDO";
//$from_mail = "[email protected]";
$replyto = $replyto;
$uid = md5(uniqid(time()));
//$subject = '[email protected]';
$message = 'Envio de Respaldo';

// $filename2 = 'Reporte2.pdf';
$header = "From: ".$from_name." <".$from_mail.">\r\n";
$header .= "Reply-To: ".$replyto."\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type: application/sql; name=\"".$filename."\"\r\n"; //Muestr el cotenido
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n"; //toma el contenido

// $header .= "Content-Type: application/pdf; name=\"".$filename2."\"\r\n";
// $header .= "Content-Transfer-Encoding: base64\r\n";
// $header .= "Content-Disposition: attachment; filename=\"".$filename2."\"\r\n\r\n";

$header .= $content."\r\n\r\n";
$header .= "--".$uid."--";
@mail($mailto, $subject, "", $header);
}
?>
<hr size="1">
<h3><? echo $url; ?></h3>
<?
$resultado = mysql_query("SHOW DATABASES");


while ($fila = mysql_fetch_array($resultado)) {
$bd = $fila['Database'];
if($bd <> "information_schema"){

mysql_select_db ($bd,$enlace);
//get all of the tables
$tables = array();
$result = mysql_query('SHOW TABLES');
while($row = mysql_fetch_row($result)){
$tables[] = $row[0];
}

$return = "";
//cycle through
foreach($tables as $table){

$sql = 'SELECT * FROM '.$table;
$result = mysql_query($sql);
$num_fields = mysql_num_fields($result);

$return.= 'DROP TABLE '.$table.';';
$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
$return.= "\n\n".$row2[1].";\n\n";

for ($i = 0; $i < $num_fields; $i++)
{
while($row = mysql_fetch_row($result))
{
$return.= 'INSERT INTO '.$table.' VALUES(';
for($j=0; $j<$num_fields; $j++)
{
$row[$j] = addslashes($row[$j]);
$row[$j] = ereg_replace("\n","\\n",$row[$j]);
if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
if ($j<($num_fields-1)) { $return.= ','; }
}
$return.= ");\n";
}
}
$return.="\n\n\n";
}

//save file
$archivo = 'db-'.$bd.'.sql';
$handle = fopen("_backups/".$tiempo.'/'.$archivo,'w+');
fwrite($handle,$return);
fclose($handle);
$url_final = $url."_backups/".$tiempo.'/'.$archivo;

?><a href="<? echo $url_final; ?>" target="_blank"><? echo $url_final; ?></a><br><?

}
backup('db-'.$bd.'.sql');


}



?>
 
Ese código ni dan ganas de leerlo, es demasiado procedural para mi gusto.

verifica los siguentes puntos:

1.- Guardar el respaldo como archivo en el server en vez de enviarlo por correo y verificar que se crea correctamente
2.- Enviar un archivo cualquiera por correo y ver si se envia correctamente.

El problema lo puedes tener o en la creación del respaldo o en el envío del archivo, cuando determines cual es la fuente del problema entonces podrás solucionarlo.

Saludos.!