<?php
$dbhost = "localhost";
$dbuname = "root";
$dbpass = "jeff89!";
$dbname = "manosala_edccmo";
$prefix = "";
$user_prefix = "";
$dbtype = "MySQL";
$sitekey = "SdFk*fa28367-dm56w69.3a2fDS+e9";
$gfx_chk = 7;
$op="backup";
$lang="spanish";


//if (!eregi("backup.php", $_SERVER['PHP_SELF'])) { die ("Access Denied"); }
//$result = mysql_query("select name, radminsuper from ".$prefix."_authors where aid='$aid'");
//list($name, $radminsuper) = mysql_fetch_row($result);

if ($_GET["passwd"]=="zwy7y2e2!") {
$fecha=date("YmdHis");
$archivo=fopen("./tmp/cp_cargosv2.sql","w+");

        switch($op) {

                case "backup":
                @set_time_limit(600);
                $crlf="\n";

                switch($lang)
                {
                        case spanish:
                                // French Text
                                $strNoTablesFound        = "No se encontró ninguna tabla en la BD.";
                                $strHost                = "Servidor";
                                $strDatabase                = "Base de datos";
                                $strTableStructure        = "Estructura de la tabla";
                                $strDumpingData                = "Contenido de la tabla";
                                $strError                = "Error";
                                $strSQLQuery                = "SQL-query";
                                $strMySQLSaid                = "MySQL a dicho:";
                                $strBack                = "Atras";
                                $strFileName                = "Copia de Respaldo";
                                $strName                = "Base de datos guardada";
                                $strDone                = "On";
                                $strat                        = "a las";
                                $strby                        = "por";
                                $date_jour = date ("d-m-Y");
                                break;

                        default :
                                // English Text
                                $strNoTablesFound = "No tables found in database.";
                                $strHost = "Host";
                                $strDatabase = "Database ";
                                $strTableStructure = "Table structure for table";
                                $strDumpingData = "Dumping data for table";
                                $strError = "Error";
                                $strSQLQuery = "SQL-query";
                                $strMySQLSaid = "MySQL said: ";
                                $strBack = "Back";
                                $strFileName = "Backup";
                                $strName = "Database saved";
                                $strDone = "On";
                                $strat = "at";
                                $strby = "by";
                                $date_jour = date ("d-m-Y");
                                break;
                }

                //header("Content-disposition: filename=$strFileName $dbname$date_jour.sql");
                //header("Content-type: application/octetstream");
                //header("Pragma: no-cache");
                //header("Expires: 0");

                
                //ob_start();
                // doing some DOS-CRLF magic...                
                $client = $_SERVER["HTTP_USER_AGENT"];
                if(ereg('[^(]*\((.*)\)[^)]*',$client,$regs))
                {
                $os = $regs[1];
                // this looks better under WinX
                if (eregi("Win",$os))
                    $crlf="\r\n";
                }


                function my_handler($sql_insert)
                {
                    global $archivo, $crlf;
                    fwrite($archivo,"$sql_insert;$crlf");
                }

                // Get the content of $table as a series of INSERT statements.
                // After every row, a custom callback function $handler gets called.
                // $handler must accept one parameter ($sql_insert);
                function get_table_content($db, $table, $handler)
                {
                    $result = mysql_db_query($db, "SELECT * FROM $table") or mysql_die();
                    $i = 0;
                    while($row = mysql_fetch_row($result))
                    {
                //        set_time_limit(60); // HaRa
                        $table_list = "(";

                        for($j=0; $j<mysql_num_fields($result);$j++)
                            $table_list .= mysql_field_name($result,$j).", ";

                        $table_list = substr($table_list,0,-2);
                        $table_list .= ")";

                        if(isset($GLOBALS["showcolumns"]))
                            $schema_insert = "INSERT INTO $table $table_list VALUES (";
                        else
                            $schema_insert = "INSERT INTO $table VALUES (";

                        for($j=0; $j<mysql_num_fields($result);$j++)
                        {
                            $row[$j]=str_replace("\n","",$row[$j]);
                            $row[$j]=str_replace(chr(13),"",$row[$j]);
                            if(!isset($row[$j]))
                                $schema_insert .= " NULL,";
                            elseif($row[$j] != "")
                                $schema_insert .= " '".addslashes($row[$j])."',";
                            else
                                $schema_insert .= " '',";
                        }
                        $schema_insert = ereg_replace(",$", "", $schema_insert);
                        $schema_insert .= ")";
                        $handler(trim($schema_insert));
                        $i++;
                    }
                    return (true);
                }

                // Return $table's CREATE definition
                // Returns a string containing the CREATE statement on success
                function get_table_def($db, $table, $crlf)
                {
                    $schema_create = "";
                    //$schema_create .= "DROP TABLE IF EXISTS $table;$crlf";
                    $schema_create .= "CREATE TABLE $table ($crlf";

                    $result = mysql_db_query($db, "SHOW FIELDS FROM $table") or mysql_die();
                    while($row = mysql_fetch_array($result))
                    {
                        $schema_create .= "   $row[Field] $row[Type]";

                        if(isset($row["Default"]) && (!empty($row["Default"]) || $row["Default"] == "0"))
                            $schema_create .= " DEFAULT '$row[Default]'";
                        if($row["Null"] != "YES")
                            $schema_create .= " NOT NULL";
                        if($row["Extra"] != "")
                            $schema_create .= " $row[Extra]";
                        $schema_create .= ",$crlf";
                    }
                    $schema_create = ereg_replace(",".$crlf."$", "", $schema_create);
                    $result = mysql_db_query($db, "SHOW KEYS FROM $table") or mysql_die();
                    while($row = mysql_fetch_array($result))
                    {
                        $kname=$row['Key_name'];
                        if(($kname != "PRIMARY") && ($row['Non_unique'] == 0))
                            $kname="UNIQUE|$kname";
                         if(!isset($index[$kname]))
                             $index[$kname] = array();
                         $index[$kname][] = $row['Column_name'];
                    }

                    while(list($x, $columns) = @each($index))
                    {
                         $schema_create .= ",$crlf";
                         if($x == "PRIMARY")
                             $schema_create .= "   PRIMARY KEY (" . implode($columns, ", ") . ")";
                         elseif (substr($x,0,6) == "UNIQUE")
                            $schema_create .= "   UNIQUE ".substr($x,7)." (" . implode($columns, ", ") . ")";
                         else
                            $schema_create .= "   KEY $x (" . implode($columns, ", ") . ")";
                    }

                    $schema_create .= "$crlf)";
                    return (stripslashes($schema_create));
                }

                function mysql_die($error = "")
                {
                global $archivo;
                
                    fwrite($archivo, "<b> $strError </b><p>");
                    if(isset($sql_query) && !empty($sql_query))
                    {
                        fwrite($archivo, "$strSQLQuery: <pre>$sql_query</pre><p>");
                    }
                    if(empty($error))
                        fwrite($archivo, $strMySQLSaid.mysql_error());
                    else
                        fwrite($archivo, $strMySQLSaid.$error);
                        fwrite($archivo, "<br><a href=\"javascript:history.go(-1)\">$strBack</a>");
                    exit;
                }

                global $dbhost, $dbuname, $dbpass, $dbname, $archivo;
                mysql_pconnect($dbhost, $dbuname, $dbpass);
                @mysql_select_db("$dbname") or die ("Imposible abrir la BD");

                $tables = mysql_list_tables($dbname);

                $num_tables = @mysql_numrows($tables);
                if($num_tables == 0)
                {
                    fwrite($archivo, $strNoTablesFound);
                }
                else
                {
                    $i = 0;
                    $heure_jour = date ("H:i");
                    fwrite($archivo, "# ========================================================$crlf");
                    fwrite($archivo, "#$crlf");
                    fwrite($archivo, "# $strName : $dbname$crlf");
                    fwrite($archivo, "# $strDone $date_jour $strat $heure_jour $strby Efren !$crlf");
                    fwrite($archivo, "#$crlf");
                    fwrite($archivo, "# ========================================================$crlf");
                    fwrite($archivo, "$crlf");

                    while($i < $num_tables)
                    {
                        $table = mysql_tablename($tables, $i);
                        if(!eregi("cp_cargos", $table) && !eregi("cp_recibos", $table) && !eregi("cp_detalle_recibos", $table)){
                          $i++;
                          continue;
                        }

                        fwrite($archivo, $crlf);
                        fwrite($archivo, "# --------------------------------------------------------$crlf" );
                        fwrite($archivo, "#$crlf" );
                        fwrite($archivo, "# $strTableStructure '$table'$crlf");
                        fwrite($archivo, "#$crlf");
                        fwrite($archivo, $crlf);

                        //fwrite($archivo, get_table_def($dbname, $table, $crlf).";$crlf$crlf");

                        fwrite($archivo, "#$crlf");
                        fwrite($archivo, "# $strDumpingData '$table'$crlf");
                        fwrite($archivo, "#$crlf");
                        fwrite($archivo, $crlf );

                        get_table_content($dbname, $table, "my_handler");

                        $i++;
                    }
                }

                //Header("Location: admin.php?op=adminMain");
                
                //$backup=ob_get_contents();
                //ob_get_clean();
                //$fecha=date("YmdHis");
                //$archivo=fopen("./backup_".$dbname."_".$fecha.".txt","w+");
                //fwrite($archivo,$backup);
                //
                
                //
                
                //cerrar el archivo aquí
                  fclose($archivo);
                  chmod("./tmp/cp_cargosv2.sql",0777);
                  exec("zip -j ./tmp/backup_$dbname"."_".$fecha."v2.zip "."./tmp/cp_cargosv2.sql");
                  //exec("tar --create --gzip --file ./tmp/backup_$dbname"."_".$fecha."v2.tar.gz ./tmp/backup_".$dbname."_".$fecha."v2.sql");
                  //chmod("./tmp/backup_".$dbname."_".$fecha."v2.tar.gz",0777);
                //
                
/*
                require("class.phpmailer.php");
                $mail = new PHPMailer();
                $mail->IsSMTP();                                      // set mailer to use SMTP
                $mail->Host = "localhost";  // specify main and backup server
                $mail->SMTPAuth = true;     // turn on SMTP authentication
                $mail->Username = "soporte@manosalaobra.edu.gt";  // SMTP username
                $mail->Password = "jeff89!"; //SMTP password
                
                $mail->From = "soporte@manosalaobra.edu.gt";
                $mail->FromName = "Soporte Manos a la obra";
                $mail->AddAddress("hhernandez@e-ducativo.com", "Lic. Hector Hernandez");
                $mail->AddAddress("efrenmonterroso@e-ducativo.com", "Lic. Efren Monterroso");
                $mail->AddAddress("evaluanet@galileo.edu", "Lic. Efren Monterroso");
                $mail->WordWrap = 70;                                 // set word wrap to 50 characters
                $mail->AddAttachment("./tmp/backup_$dbname"."_$fecha".".zip");         // add attachments
                $mail->Subject = "Backup de BD de $fecha";
                $mail->Body    = "Adjunto encuentra el backup de la estructura y contenido de la BD $dbname";
                $mail->Send();
                
                //unlink("./tmp/backup_$dbname"."_$fecha".".sql");
                */
                break;
        }






$servidor_ftp="coactemalan.com";
$ftp_nombre_usuario="coactema";
$ftp_contrasenya="jeff89!";
$fechal=date("Ymd H:i:s");

echo $fechal;

//exec ("unzip ./tmp/backup_$dbname"."_$fecha"."v2.zip");

$log=fopen("./tmp/log.txt","a+");
$id_con = ftp_connect($servidor_ftp) or fwrite($log,"$fechal - No se conecto al servidor FTP\n");

if($id_con){
    $resultado_login = ftp_login($id_con, $ftp_nombre_usuario, $ftp_contrasenya) or fwrite($log,"$fechal - No se inició sesion en el servidor FTP\n");
    
    $origen="./tmp/backup_$dbname"."_$fecha"."v2.zip";
    //$origen="./tmp/backup_$dbname"."_$fecha"."v2.tar.gz";
    //$destino = "/public_html/educativo/actualizacion/data_import/cp_cargosv2.tar.gz";
    $destino = "/public_html/educativo/actualizacion/data_import/cp_cargosv2.zip";
    
    //$aupload= fopen($origen, 'r');
    $aupload=$origen;
    ftp_put($id_con, $destino, $aupload, FTP_BINARY) or fwrite($log,"$fechal - No se cargó el archivo al servidor FTP");  
   
    //fclose($aupload);

}

fclose($log);

exec("curl http://www.coactemalan.com/educativo/actualizacion/data_import/importar_trns.php?passwd=zwy7y2e2!");

} else {
        //msgbox(0,"login.php","Usuario desconectado");
        //header("Location: ../");
        echo "NOP";
}
?>
