acracb admin subirlogs

{source}
<?php    
    
    $db = JFactory::getDbo();      
    
    // tabla de rankings
    $usertable_ranking_participantes = «logs_ranking_participantes»;
        
    // tablas de logs
    $usertable = «logs»;
    //$fechatable = «afecha»;
    
    // password
    $uploadpassword = «acracbpuntoorg»;       
    
    $dir_articulo=’/index.php?option=com_content&view=article&id=828′;  
    //$dir_articulo=’/acracb/index.php/acracb-prueba2′;  
    
    $dir_imagenes_corto=’/images/’;
    $dir_imagenes=$dir_imagenes_corto.’bancomu/’;
 
    if (!isset($_POST[«acracb_form_admin_subir_logs_accion»])) { $accion=»»; } else {$accion=$db->escape($_POST[«acracb_form_admin_subir_logs_accion»]);}

    if (!isset($_POST[«pref»])) { $pref=»»; } else {$pref=$db->escape($_POST[«pref»]);}
    if (!isset($_POST[«Actividad»])) { $Actividad=»»; } else {$Actividad=$db->escape($_POST[«Actividad»]);}
    //if (!isset($_POST[«act»])) { $act=»»; } else {$act=$db->escape($_POST[«act»]);}
    //if (!isset($_POST[«act2″])) { $act2=»»; } else {$act2=$db->escape($_POST[«act2»]);}
    if (!isset($_POST[«ref»])) { $ref=»»; } else {$ref=$db->escape($_POST[«ref»]);}
    if (!isset($_POST[«dia»])) { $dia=»»; } else {$dia=$db->escape($_POST[«dia»]);}
    if (!isset($_POST[«mes»])) { $mes=»»; } else {$mes=$db->escape($_POST[«mes»]);}
    if (!isset($_POST[«ano»])) { $ano=»»; } else {$ano=$db->escape($_POST[«ano»]);}
    if (!isset($_POST[«operador»])) { $operador=»»; } else {$operador=$db->escape($_POST[«operador»]);}
    if (!isset($_POST[«otro_operador»])) { $otro_operador=»»; } else {$otro_operador=$db->escape($_POST[«otro_operador»]);}
    if (!isset($_POST[«password»])) { $password=»»; } else {$password=$db->escape($_POST[«password»]);}
    
    if (!isset($_POST[«tipo_diploma»])) { $tipo_diploma=»»; } else {$tipo_diploma=$db->escape($_POST[«tipo_diploma»]);}
    
    $accion=trim($accion);
    $Pref=trim($Pref);
    $Actividad=trim($Actividad);
    //$act=trim($act);
    //$act2=trim($act2);
    $ref=trim($ref);
    $dia=trim($dia);
    $mes=trim($mes);
    $ano=trim($ano);
    $operador=trim($operador);
    $otro_operador=trim($otro_operador);
    $password=trim($password);
    
    $tipo_diploma=trim($tipo_diploma);
    
    $Pref=str_replace(‘%’,», $Pref);
    $Actividad=str_replace(‘%’,», $Actividad);
    //$act=str_replace(‘%’,», $act);
    //$act2=str_replace(‘%’,», $act2);
    $ref=str_replace(‘%’,», $ref);
    $dia=str_replace(‘%’,», $dia);
    $mes=str_replace(‘%’,», $mes);
    $ano=str_replace(‘%’,», $ano);
    $operador=str_replace(‘%’,», $operador);
    $otro_operador=str_replace(‘%’,», $otro_operador);
    $password=str_replace(‘%’,», $password);    
    
    $tipo_diploma=str_replace(‘%’,», $tipo_diploma);  
    
    list($Actividad_temp,$act,$act2) = explode(«/»,$Actividad);
    $Actividad=$Actividad_temp;
    if (isset($act)){ $act = «/$act»; } else {}
    if (isset($act2)){ $act2 = «/$act2»; } else {}
    
    $valid_file = 0;    
    $duplicateQSO = 0;
    $qso_count = 0;
    $errorQSO = 0;
 
    if (!isset($_FILES[‘Filename’]))
    {
        $browser_name=»»;
        $temp_name=»»;
        $filesize = «»;
    }
    else
    {
        $browser_name=$_FILES[‘Filename’][‘name’];
        $temp_name = $_FILES[‘Filename’][‘tmp_name’];
        $filesize = $_FILES[‘Filename’][‘size’];
    }

?>

<?php
    /*funcionaes auxiliares*/
    function validar_fichero($file)
    {
        $string =»»;
        $valid_file = 2;
        $desc_error=»»;
        $encontrado_call=0;
        
        $log=0;
        $log_html=0;
        
        while ($string = fgets ($file, 1024))
        {
            $string = strtoupper ($string);
            
            if ($log_html==1) {echo «html1-> «.htmlentities($string).»<br>»;}
            
            if (stristr($string, «<EOH>») || stristr($string,»<CALL») || stristr($string,»<BAND») || stristr($string,»<FREQ») || stristr($string,»<MODE»))
            {
                if (stristr($string,»<CALL»)){
                    $encontrado_call=$encontrado_call+1;
                    if ($log==1) {    echo «log01->  «.$encontrado_call.»<br>»;}
                } elseif (stristr($string,»<EOH>»)){
                    $encontrado_call=0;
                    if ($log==1) {echo «log02-> «.$encontrado_call.»<br>»;}
                }
                
                $EOR = 0;
                
                if ($log_html==1) {echo «html2-> «.htmlentities($string).»<br>»;}
                
                // inicializamos el array
                $qso_data = array (‘MyCallsign’ => », ‘Date’ => », ‘Time’ => », ‘Callsign’ => », ‘Band’ => », ‘Frequency’ => », ‘Mode’ => », ‘RSTS’ => », ‘RSTR’ => »);
                
                while (!$EOR)
                {
                    readADIFQSO ($string, $qso_data);                        
                    
                    /*buscamos el final de cada registro del ADIF*/
                    if (stristr($string,»<EOR>»)) {
                        $EOR = 1;
                        
                        if (strlen(trim($qso_data[‘Callsign’]))<=0) {
                            $valid_file=0;
                            $desc_error=»CALL NO ENCONTRADO»;
                            if ($log==1) {echo «log03-> «.$desc_error.»<br>»;}
                        } else {
                            if ($valid_file<>0) {
                                $valid_file=1;
                            }
                        }
                        if ($encontrado_call>1){
                            $valid_file=0;
                            $desc_error=»1. FALTA EOR («.$encontrado_call.»)»;
                            if ($log==1) {echo «log04-> «.$desc_error.»<br>»;}
                        }
                        $encontrado_call=0;
                        if ($log==1) {echo «log05-> «.$encontrado_call.»<br>»;}
                        
                        
                    } else {
                        $string = fgets($file,1024);
                        if (stristr($string,»<CALL»)){
                            $encontrado_call=$encontrado_call+1;
                            if ($log==1) {echo «log06-> «.$encontrado_call.»<br>»;}
                        }
                        if (stristr($string,»<EOH>»)){
                            // inicializamos el array
                            $qso_data = array (‘MyCallsign’ => », ‘Date’ => », ‘Time’ => », ‘Callsign’ => », ‘Band’ => », ‘Frequency’ => », ‘Mode’ => », ‘RSTS’ => », ‘RSTR’ => »);
                            $encontrado_call=0;
                            if ($log==1) {echo «log07-> «.$encontrado_call.»<br>»;}
                        }
                        
                        if ($log_html==1) {echo «html3-> «.htmlentities($string).»<br>»;}

                    }
                }
            }            
        }    
        
        if ($valid_file<>0) {$valid_file=1;}
        if ($log==1) {
            if ($valid_file==0) {echo «log08-> «.$desc_error.»<br>»;}
        }
        
        return $valid_file;    
    }
    
    
    function readADIFQSO ($string, &$qso_data)
    {
        $string = strtoupper ($string);
                
        // Read Date
        if ($s = stristr($string,»<QSO_DATE»))
        {
            $values = sscanf ($s, «<QSO_DATE:%d>%s «, $length,$qso_data[‘Date’]);
            $qso_data[‘Date’] = substr($qso_data[‘Date’], 0 , $length);
            if ($values != 2)
                sscanf ($s, «<QSO_DATE:%d:%c>%s «, $length,$dummy,$qso_data[‘Date’]);
        }
      
        // Read Time
        if ($s = stristr($string,»<TIME_ON»))
        {
            $values = sscanf ($s, «<TIME_ON:%d>%s «, $length,$qso_data[‘Time’]);
            $qso_data[‘Time’] = substr($qso_data[‘Time’], 0 , $length);
            if ($values != 2)
                sscanf ($s, «<TIME_ON:%d:%c>%s «, $length,$dummy,$qso_data[‘Time’]);

            if (strlen($qso_data[‘Time’]) > «4»)
            {
                $qso_data[‘Time’] = substr($qso_data[‘Time’], 0, 4);
            }   
        }      
              
        // Read Callsign
        if ($s = stristr($string,»<CALL»))
        {
            $values = sscanf ($s, «<CALL:%d>%s «, $length,$qso_data[‘Callsign’]);
            $qso_data[‘Callsign’] = explode(«<«,$qso_data[‘Callsign’]);
            $qso_data[‘Callsign’] = $qso_data[‘Callsign’][0];

            if ($values != 2)
                sscanf ($s, «<CALL:%d:%c>%s «, $length,$dummy,$qso_data[‘Callsign’]);
        }

        // Read Band
        if ($s = stristr($string,»<BAND»))
        {            
            $values = sscanf ($s, «<BAND:%d>%s «, $length,$qso_data[‘Band’]);
            $qso_data[‘Band’] = substr($qso_data[‘Band’], 0 , $length);
            
            if ($values != 2)
                sscanf ($s, «<BAND:%d:%c>%s «, $length,$dummy,$qso_data[‘Band’]);
          
            if (($pos = strpos ($qso_data[‘Band’], ‘M’)) != NULL)
                $qso_data[‘Band’][$pos] = ‘ ‘;

            $qso_data[‘Band’]=trim($qso_data[‘Band’]);
        }

        // Read Frequency
        if ($s = stristr($string,»<FREQ»))
        {
            $values = sscanf ($s, «<FREQ:%d>%s «, $length,$qso_data[‘Frequency’]);
            $qso_data[‘Frequency’] = substr($qso_data[‘Frequency’], 0 , $length);
        }

        // Read Mode
        if ($s = stristr($string,»<MODE»))
        {
            $values = sscanf ($s, «<MODE:%d>%s «, $length,$qso_data[‘Mode’]);
            $qso_data[‘Mode’] = substr($qso_data[‘Mode’], 0 , $length);
            if ($values != 2)
                sscanf ($s, «<MODE:%d:%c>%s «, $length,$dummy,$qso_data[‘Mode’]);

            switch ($qso_data[‘Mode’])
            {
                case «USB»:
                case «LSB»:
                    $qso_data[‘Mode’] = «SSB»;
            }
        }

    }
    
     // Function to read an ADIF file and insert each QSO into the database
    function processADIFFile($file,&$qso_count,&$duplicateQSO,&$errorQSO,$usertable,$pref,$Actividad,$act,$act2,$ref,$dia,$mes,$ano,$operador,$otro_operador,&$duplicados,&$insertados,$tipo_diploma)
    {
        $string =»»;
        
        while ($string = fgets ($file, 1024))
        {
            $string = strtoupper ($string);
            
            if (stristr($string, «<EOH>») || stristr($string,»<CALL») || stristr($string,»<BAND») || stristr($string,»<FREQ») || stristr($string,»<MODE»))
            {                                
                $EOR = 0;
            
                // inicializamos el array
                $qso_data = array (‘MyCallsign’ => », ‘Date’ => », ‘Time’ => », ‘Callsign’ => », ‘Band’ => », ‘Frequency’ => », ‘Mode’ => », ‘RSTS’ => », ‘RSTR’ => »);
                
                while (!$EOR)
                {
                    readADIFQSO ($string, $qso_data);    

                    /*buscamos el final de cada registro del ADIF*/
                    if (stristr($string,»<EOR>»)) {
                        $EOR = 1;
                        
                        /*ahora ya hemos leido el registro entero que puede
                        tener varias lineas hasta encontrar el <EOR>*/
                        if (strlen(trim($qso_data[‘Band’]))<=0)
                        {
                            if (strlen(trim($qso_data[‘Frequency’]))>0)
                            {
                                $qso_data[‘Frequency’]=substr($qso_data[‘Frequency’],0,-2);
                                $frecuencia_temp=strval(str_replace(array(‘,’,’.’),array(»,»),trim($qso_data[‘Frequency’])));
                                $frecuencia_valor=»»;
                                
                                if ($frecuencia_temp>=1830 and $frecuencia_temp<=1850) {$frecuencia_valor=»160″;}
                                if ($frecuencia_temp>=3500 and $frecuencia_temp<=3800) {$frecuencia_valor=»80″;}
                                if ($frecuencia_temp>=7000 and $frecuencia_temp<=7200) {$frecuencia_valor=»40″;}
                                if ($frecuencia_temp>=10100 and $frecuencia_temp<=10150) {$frecuencia_valor=»30″;}
                                if ($frecuencia_temp>=14000 and $frecuencia_temp<=14350) {$frecuencia_valor=»20″;}
                                if ($frecuencia_temp>=18068 and $frecuencia_temp<=18168) {$frecuencia_valor=»17″;}
                                if ($frecuencia_temp>=21000 and $frecuencia_temp<=21450) {$frecuencia_valor=»15″;}
                                if ($frecuencia_temp>=24890 and $frecuencia_temp<=24990) {$frecuencia_valor=»12″;}
                                if ($frecuencia_temp>=28000 and $frecuencia_temp<=29700) {$frecuencia_valor=»10″;}
                                if ($frecuencia_temp>=50000 and $frecuencia_temp<=52000) {$frecuencia_valor=»6″;}
                        
                                if (strlen($frecuencia_valor)>0) {
                                    $qso_data[‘Band’]=$frecuencia_valor;
                                } else {
                                    $qso_data[‘Band’]=’40’;
                                }                
                            }
                            else
                            {
                                $qso_data[‘Band’]=’40’;
                            }
                        }
                
                        $qso_data[‘Callsign’] = trim($qso_data[‘Callsign’]);
                        $qso_data[‘Band’] = trim($qso_data[‘Band’]);
                        $qso_data[‘Mode’] = trim($qso_data[‘Mode’]);
                
                        if (strlen(trim($qso_data[‘Mode’]))<=0) {$qso_data[‘Mode’]=’SSB’;}                    
                        /*
                        comprobamos que:
                            – concat(pref,Actividad,act,act2) like concat(‘$pref’,’$Actividad’,’$act’,’$act2′)
                            – Qrz like $qso_data[‘Callsign’]
                            – ref like ‘$ref’
                            – concat(dia,’/’,mes,’/’,ano) like concat(‘$dia’,’/’,’$mes’,’/’,’$ano’)
                            – banda like $qso_data[‘Band’]
                            – modo like $qso_data[‘Mode’]
                        */
                        $sql = «SELECT count(*) as total FROM $usertable where concat(pref,Actividad,act,act2) like concat(‘$pref’,’$Actividad’,’$act’,’$act2′) and Qrz like ‘» . $qso_data[‘Callsign’] . «‘ and ref like ‘$ref’ and concat(dia,’/’,mes,’/’,ano) like concat(‘$dia’,’/’,’$mes’,’/’,’$ano’) and banda like ‘».$qso_data[‘Band’].»‘ and modo like ‘».$qso_data[‘Mode’].»‘»;  
                        $db = JFactory::getDbo();
                        $db->setQuery($sql);   
                        $total = $db->loadResult();

                        if ($total<=0 and strlen($Actividad)>0 and strlen($qso_data[‘Callsign’])>0 and strlen($ref)>0 and strlen($qso_data[‘Band’])>0 and strlen($qso_data[‘Mode’])>0 and strlen($dia)>0 and strlen($mes)>0 and strlen($ano)>0 ){
                            // Insert QSO into the database
                            $sql = «INSERT INTO $usertable (pref,Actividad,act,act2,Qrz,ref,banda,modo,dia,mes,ano,operador,otro_operador,tipo_diploma) values (‘».$pref.»‘,'».$Actividad.»‘,'».$act.»‘,'».$act2.»‘,'».$qso_data[‘Callsign’].»‘,'».$ref.»‘,'».$qso_data[‘Band’].»‘,'».$qso_data[‘Mode’].»‘,'».$dia.»‘,'».$mes.»‘,'».$ano.»‘,'».$operador.»‘,'».$otro_operador.»‘,'».$tipo_diploma.»‘)»;
                            $db = JFactory::getDbo();
                            $db->setQuery($sql);                 
                            $result=$db->execute();

                            if ($result) {  
                                $qso_count++;
                                
                                $insertados[$qso_count][‘actividad’] = trim($pref.$Actividad.$act.$act2);
                                $insertados[$qso_count][‘qrz’] = trim($qso_data[‘Callsign’]);
                                $insertados[$qso_count][‘fecha’] = trim($dia.’/’.$mes.’/’.$ano);
                                $insertados[$qso_count][‘banda’] = trim($qso_data[‘Band’]);
                                $insertados[$qso_count][‘modo’] = trim($qso_data[‘Mode’]);                            
                            
                            } else {                                
                                $errorQSO++;
                            }
                        } else {
                            $duplicateQSO++;
                            
                            $duplicados[$duplicateQSO][‘actividad’] = trim($pref.$Actividad.$act.$act2);
                            $duplicados[$duplicateQSO][‘qrz’] = trim($qso_data[‘Callsign’]);
                            $duplicados[$duplicateQSO][‘fecha’] = trim($dia.’/’.$mes.’/’.$ano);
                            $duplicados[$duplicateQSO][‘banda’] = trim($qso_data[‘Band’]);
                            $duplicados[$duplicateQSO][‘modo’] = trim($qso_data[‘Mode’]);                    
                        }

                    /*si no hemos encontrado el EOR seguimos*/    
                    } else {
                        $string = fgets($file,1024);
                        $string = strtoupper ($string);
                        if (stristr($string,»<EOH>»))
                        {
                            // inicializamos el array
                            $qso_data = array (‘MyCallsign’ => », ‘Date’ => », ‘Time’ => », ‘Callsign’ => », ‘Band’ => », ‘Frequency’ => », ‘Mode’ => », ‘RSTS’ => », ‘RSTR’ => »);
                        }
                    }
                }
            }            
        }    

    }  

?>

<script language=»javascript» type=»text/javascript»>
    function accion(tipo)
    {           
        document.getElementById(«acracb_form_admin_subir_logs_accion»).value  = tipo;                      
        document.getElementById(«acracb_form_admin_subir_logs»).submit();
    }
 
    function inicializar()
    {          
        document.getElementById(«acracb_form_admin_subir_logs_accion»).value  = «»;                      
        document.getElementById(«acracb_form_admin_subir_logs»).submit();
    }
</script>

<?php
if (strlen($accion)<=0)
{
?>
    <div style=’margin-left:30px;’>
        <h3 class=»titulo_anunciar_actividad»>&nbsp;&nbsp;SUBIDA LOGS acracb&nbsp;&nbsp;</h3>
        <p align=left>
            <font size=2>
                <br>
                Analizemos esta actividad EA7/IK9XXX/P/QRP :
                <ul>
                    <li><b>Prefijo</b> es EA7/</li>
                    <li><b>Actividad</b> es IK9XXX</li>
                    <li><b>Act</b> es /P</li>
                    <li><b>Act2</b> es /QRP</li>
                </ul>
                Solamente es aceptado el formato ADIF, los campos que seran necesarios son:
                <ul>
                    <li><b>QSO_DATE</b> tipo 20140413 donde 2014 es el año 04 el mes y 13 el día</li>
                    <li><b>MODE</b> por defecto SSB</li>
                    <li><b>CALL</b> el Qrz de la actividad</li>
                    <li><b>BAND</b> por defecto 40</li>
                    <li>
                        <b>FREQ</b> si no existe <b>BAND</b> se tendrá en cuenta <b>FREQ</b> según la tabla de equivalencias siguiente:
                        <table border=0 width=45%>
                        <tr>
                            <td width=15%>&nbsp;</td>
                            <td width=15%>&nbsp;</td>
                            <td width=15%>&nbsp;</td>
                        </tr>
                        <tr>
                            <td width=15%>FREQ ENTRE</td>
                            <td width=15%>FREQ HASTA</td>
                            <td width=15%>BAND EQUIVALENTE</td>
                        </tr>
                        <tr>
                            <td>1830</td>
                            <td>1850</td>
                            <td>160</td>
                        </tr>
                        <tr>
                            <td>3500</td>
                            <td>3800</td>
                            <td>80</td>
                        </tr>
                        <tr>
                            <td>7000</td>
                            <td>7200</td>
                            <td>40</td>
                        </tr>
                        <tr>
                            <td>10100</td>
                            <td>10150</td>
                            <td>30</td>
                        </tr>
                        <tr>
                            <td>14000</td>
                            <td>14350</td>
                            <td>20</td>
                        </tr>
                        <tr>
                            <td>18068</td>
                            <td>18168</td>
                            <td>17</td>
                        </tr>
                        <tr>
                            <td>21000</td>
                            <td>21450</td>
                            <td>15</td>
                        </tr>
                        <tr>
                            <td>24890</td>
                            <td>24990</td>
                            <td>12</td>
                        </tr>
                        <tr>
                            <td>28000</td>
                            <td>29700</td>
                            <td>10</td>
                        </tr>
                        <tr>
                            <td>50000</td>
                            <td>52000</td>
                            <td>6</td>
                        </tr>
                        </table>
                    </li>
                    <li>SI no existe ni <b>BAND</b> ni <b>FREQ</b> por defecto será <b>BAND</b> 40</li>
                </ul>
                Comentaremos algunas consideraciones que se tendrán en cuenta con el fichero ADIF:
                <ul>
                    <li>Los registros duplicados que se detecten no se tendrán en cuenta.</li>
                    <li>
                        La estructura del fichero ADIF será válida SI contiene la siguiente información:
                        <ul>
                            <li>0, 1 o más lineas con cualquiera información, como comentarios, lineas en blanco, ect…</li>
                            <li>a continuación debe existir EOH</li>
                            <li>a continuación puede existir 0, 1 o más lineas con cualquiera información, como comentarios, lineas en blanco, ect…</li>
                            <li>una vez encontrado EOH por cada logs será necesario las etiquetas QSO_DATE, CALL , BAND (FREQ), MODE y EOR</li>
                        </ul>
                    </li>
                </ul>
                Los campos con el <span style=»color:red»><b>*</b></span> son datos obligatorios que son necesario rellenar.
            </font>
        </p>
        <center>
        <p align=center>
            <form name=»acracb_form_admin_subir_logs» id=»acracb_form_admin_subir_logs» action=»<?php echo $dir_articulo; ?>» method=post enctype=»multipart/form-data»>
                <input size=25 type=hidden id=»acracb_form_admin_subir_logs_accion» name=»acracb_form_admin_subir_logs_accion» value=»<?php echo $accion;?>»>
        
                <table border=»0″ width=»65%» align=center>
                <tr>
                    <td width=»15%» align=left><b>Diploma ACRACB</b>&nbsp;<span style=»color:red»><b>*</b></span></td>
                    <td width=»50%» align=left>
                    <select name=»tipo_diploma»>
                    <option value=»»>Seleccione un diploma</option>    
                    <?php
                        $sql=’SELECT codigo,descripcion FROM acracb_lista_diplomas where funcion=1 order by codigo desc’;
                        $db->setQuery($sql);
                        $rows = $db->loadObjectList();
                        foreach ( $rows as $row )
                        {
                            $codigo = $row->codigo;
                            $descripcion = $row->descripcion;
                            echo ‘<option value=»‘.$codigo.'»>’.$descripcion.'</option>’;
                        
                        }                        
                    ?>                 
                    </select>
                    </td>
                </tr>
                <hr>
                <tr>
                    <td width=»15%» align=left><b>Prefijo</b></td>
                    <td width=»50%» align=left><input type=»text» name=»pref» size=»3″ maxlength=»3″>&nbsp;Tipo EA1 a EA9 <b><u>SOLO EN CASO DE Estaciones NO-EA</u></b></td>
                </tr>
                <tr>
                    <td width=»15%» align=left><b>Actividad</b>&nbsp;<span style=»color:red»><b>*</b></span></td>
                    <td width=»50%» align=left><input type=»text» name=»Actividad» size=»10″ maxlength=»15″>&nbsp;Tipo IK9XXX /P /QRP</td>
                </tr>
                <!–<tr>
                    <td width=»15%» align=left><b>Act</b></td>
                    <td width=»50%» align=left><input type=»text» name=»act» size=»5″ maxlength=»5″>&nbsp;Tipo /P</td>
                </tr>
                <tr>
                    <td width=»15%» align=left><b>Act 2</b></td>
                    <td width=»50%» align=left><input type=»text» name=»act2″ size=»5″ maxlength=»5″>&nbsp;Tipo /QRP</td>
                </tr>–>
                <tr>
                    <td width=»15%» align=left><b>Referencia</b>&nbsp;<span style=»color:red»><b>*</b></span></td>
                    <td width=»50%» align=left><input  size=»10″ maxlength=»15″ name=»ref» type=»text»>&nbsp;Tipo CSE-001</td>
                </tr>                
                <tr>
                    <td width=»15%» align=left><b>Fecha</b>&nbsp;<span style=»color:red»><b>*</b></span></td>
                    <td width=»50%» align=left>
                    <select name=»dia»>
                    <option value=»»>Dia</option>
                    <option value=»01″>01</option>
                    <option value=»02″>02</option>
                    <option value=»03″>03</option>
                    <option value=»04″>04</option>
                    <option value=»05″>05</option>
                    <option value=»06″>06</option>
                    <option value=»07″>07</option>
                    <option value=»08″>08</option>
                    <option value=»09″>09</option>
                    <option value=»10″>10</option>
                    <option value=»11″>11</option>
                    <option value=»12″>12</option>
                    <option value=»13″>13</option>
                    <option value=»14″>14</option>
                    <option value=»15″>15</option>
                    <option value=»16″>16</option>
                    <option value=»17″>17</option>
                    <option value=»18″>18</option>
                    <option value=»19″>19</option>
                    <option value=»20″>20</option>
                    <option value=»21″>21</option>
                    <option value=»22″>22</option>
                    <option value=»23″>23</option>
                    <option value=»24″>24</option>
                    <option value=»25″>25</option>
                    <option value=»26″>26</option>
                    <option value=»27″>27</option>
                    <option value=»28″>28</option>
                    <option value=»29″>29</option>
                    <option value=»30″>30</option>
                    <option value=»31″>31</option>
                    </select>&nbsp;&nbsp;             
                    <select name=»mes»>
                    <option value=»»>Mes</option>
                    <option value=»01″>01</option>
                    <option value=»02″>02</option>
                    <option value=»03″>03</option>
                    <option value=»04″>04</option>
                    <option value=»05″>05</option>
                    <option value=»06″>06</option>
                    <option value=»07″>07</option>
                    <option value=»08″>08</option>
                    <option value=»09″>09</option>
                    <option value=»10″>10</option>
                    <option value=»11″>11</option>
                    <option value=»12″>12</option></select>&nbsp;&nbsp;
                    <select name=»ano»>
                    <option value=»»>Año</option>    
                    <?php
                        $sql=’SELECT min(ano) FROM logs’;
                        $db->setQuery($sql);   
                        $anio_inicio = $db->loadResult();
                        $sql=’SELECT max(ano) ano_max FROM logs’;
                        $db->setQuery($sql);   
                        $anio_max = $db->loadResult();
                        $ano_actual=date(«Y»);
                        $mes_actual=date(«m»);
                        $dia_actual=date(«d»);
                        if (strlen($anio_inicio)<=0) {
                            $anio_inicio=$ano_actual;
                            $anio_max=$ano_actual;
                        }
                        if ($mes_actual>=12) {$anio_max=$ano_actual+1;}
                        $indice_array=1;
                        for ($var_ano=$anio_inicio;$var_ano<=$anio_max;$var_ano++)
                        {
                            echo ‘<option value=»‘.$var_ano.'»>’.$var_ano.'</option>’;
                            $array_ano[$indice_array]=$var_ano;
                            $indice_array++;
                        }                        
                        if (in_array($ano_actual,$array_ano)==false) {
                            echo ‘<option value=»‘.$ano_actual.'»>’.$ano_actual.'</option>’;
                        }
                    ?>
                    </select>
                    </td>
                </tr>   
                <tr>
                    <td width=»15%» align=left><b>Fichero ADIF</b>&nbsp;<span style=»color:red»><b>*</b></span></td>
                    <td  width=»50%» align=left><input type=»file» name=»Filename» id=»Filename» size=»15″></td>
                </tr>
                <tr>
                    <td width=»15%» align=left><b>Operador</b></td>
                    <td width=»50%» align=left><input size=»10″ maxlength=»10″ name=»operador» type=»text»></td>
                </tr>
                <tr>
                    <td width=»15%» align=left><b>Otros Operadores</b></td>
                    <td width=»50%» align=left><input size=»10″ maxlength=»50″ name=»otro_operador» type=»text»>&nbsp;&nbsp;EA5RK1,EA5RK2,EA5RK3</td>
                </tr>
                <tr>
                    <td width=»15%» align=left><b>Password</b>&nbsp;<span style=»color:red»><b>*</b></span></td>
                    <td  width=»50%» align=left><input type=»text» name=»password» id=»password» size=»15″></td>
                </tr>
                </table>
                <br>
                <table border=»0″ width=»60%» align=center>
                <tr>
                    <td align=center>
                        <input type=»button» name=»upload» value=»SUBIR LOG» onclick=»accion(‘paso01’);»>
                    </td>
                </tr>    
                </table>
            </form>
        </p>
        </center>
    </div>

<?php
}
elseif ($accion==»paso01″)
{
    ?>
    <div style=’margin-left:30px;’>
        <h3 class=»titulo_anunciar_actividad»>&nbsp;&nbsp;SUBIDA LOGS acracb&nbsp;&nbsp;</h3>
        <p align=left>
            <font size=2>
                <br>
                
                <form name=»acracb_form_admin_subir_logs» id=»acracb_form_admin_subir_logs» action=»<?php echo $dir_articulo; ?>» method=post enctype=»multipart/form-data»>
                <input size=25 type=hidden id=»acracb_form_admin_subir_logs_accion» name=»acracb_form_admin_subir_logs_accion» value=»<?php echo $accion;?>»>
                </form>
    <?php
 
    /*nos aseguramos que ha intentado subir un archvivo*/
    if (strlen($temp_name)>0 && strlen($browser_name)>0 )
    {
        /*nos aseguramos que el fichero se ha subido*/
        if (is_uploaded_file ($temp_name))
        {
            /*los datos introducidos por el usuario son validos*/
            if (($Actividad != «») && ($ref!=»») && ($dia!=»») && ($mes!=»») && ($ano!=»») && ($tipo_diploma!=»»))
            {
                /*el dato de la fecha es correcta*/
                if ((is_numeric($dia)) && (is_numeric($mes)) && (is_numeric($ano)))
                {    
                    /*el password es correcto*/
                    if (strlen($password)>0 and $password == $uploadpassword)
                    {
                        /*el fichero subido se puede abrir para manipularlo*/
                        if (($file1 = fopen ($temp_name, «r»)) and ($file2 = fopen ($temp_name, «r»)))
                        {
                            $valid_file=validar_fichero($file1);                            
                            
                            $duplicateQSO = 0;
                            $qso_count = 0;
                            $errorQSO = 0;
                            $insertados = array(0 => array (‘actividad’ => », ‘qrz’ => », ‘fecha’ => », ‘banda’ => », ‘modo’ => »));
                            $duplicados = array(0 => array (‘actividad’ => », ‘qrz’ => », ‘fecha’ => », ‘banda’ => », ‘modo’ => »));

                            if ($valid_file)
                            {
                                processADIFFile($file2,$qso_count,$duplicateQSO,$errorQSO,$usertable,$pref,$Actividad,$act,$act2,$ref,$dia,$mes,$ano,$operador,$otro_operador,$duplicados,$insertados,$tipo_diploma);                                
                                
                            }
                            
                            if (!$valid_file)
                            {
                                ?>
                                <font size=3>
                                <p align=left>
                                    <b>Se ha encontrado un error en el archivo:&nbsp;<?php echo $browser_name; ?></b>
                                    <br><br>Ningún QSO cargado<br><br>
                                    <a href=’javascript:inicializar();’>Volver</a>
                                </p>
                                </font>
                                <?php
                            }
                            else
                            {
                                echo «<br><center><font size=3><b>$errorQSO errores</b> encontrados.</font></center>»;
                                echo «<br><center><font size=3><b>$duplicateQSO QSOs</b> QSOs duplicados que no se han tenido en cuenta.</font></center>»;
                                
                                if ($duplicateQSO>0) {
                                    ?>
                                    <br>
                                    <center>
                                    <table border=»0″ cellpadding=»0″ cellspacing=»0″ width=»45%» class=’tabla_acracb’>  
                                    <tr class=’tr_cab_acracb’>
                                        <td width=»10%» align=»center»><b>Actividad</b></td>
                                        <td width=»15%» align=»center»><b>Qrz</b></td>
                                        <td width=»10%» align=»center»><b>Fecha</b></td>
                                        <td width=»10%» align=»center»><b>Banda/Modo</b></td>
                                    </tr>
                                    <?php
                                    $tr_impar=’tr_impar_acracb’;
                                    $tr_par=’tr_par_acracb’;
                                    for ($i = 1; $i <= $duplicateQSO; $i++) {
                                    
                                        $tr_class = ($i % 2) ? $tr_impar : $tr_par;
                                        
                                        echo «<tr class='».$tr_class.»‘>
                                        <td width=10% align=left><b>».$duplicados[$i][‘actividad’].»</b></td>
                                        <td width=15% align=left><b>».$duplicados[$i][‘qrz’].»</b></td>
                                        <td width=10% align=left><b>».$duplicados[$i][‘fecha’].»</b></td>
                                        <td width=10% align=left><b>».$duplicados[$i][‘banda’].» – «.$duplicados[$i][‘modo’].»</b></td>
                                        </tr>»;
                                        
                                    }
                                    ?>
                                    </table>
                                    </center>
                                    <?php
                                }
                                
                                
                                echo «<br><center><font size=3><b>$qso_count QSOs</b> subidos a la base de datos en la Referencia:<b> $ref</b></font></center>»;
                                if ($qso_count>0) {
                                    ?>
                                    <br>
                                    <center>
                                    <table border=»0″ cellpadding=»0″ cellspacing=»0″ width=»45%» class=’tabla_acracb’>  
                                    <tr class=’tr_cab_acracb’>
                                        <td width=»10%» align=»center»><b>Actividad</b></td>
                                        <td width=»15%» align=»center»><b>Qrz</b></td>
                                        <td width=»10%» align=»center»><b>Fecha</b></td>
                                        <td width=»10%» align=»center»><b>Banda/Modo</b></td>
                                    </tr>
                                    <?php
                                    $tr_impar=’tr_impar_acracb’;
                                    $tr_par=’tr_par_acracb’;
                                    for ($i = 1; $i <= $qso_count; $i++) {
                                    
                                        $tr_class = ($i % 2) ? $tr_impar : $tr_par;
                                        
                                        echo «<tr class='».$tr_class.»‘>
                                        <td width=10% align=left><b>».$insertados[$i][‘actividad’].»</b></td>
                                        <td width=15% align=left><b>».$insertados[$i][‘qrz’].»</b></td>
                                        <td width=10% align=left><b>».$insertados[$i][‘fecha’].»</b></td>
                                        <td width=10% align=left><b>».$insertados[$i][‘banda’].» – «.$insertados[$i][‘modo’].»</b></td>
                                        </tr>»;
                                        
                                    }
                                    ?>
                                    </table>
                                    </center>
                                    <?php
                                }
                                /*
                                $sql=»update $usertable set qrz=trim(upper(qrz)), actividad=trim(upper(actividad)), operador=trim(upper(operador)) where 1=1 «;
                                $db->setQuery($sql);    
                                $db->execute();  

                                $sql = «delete from $usertable_ranking_participantes where tipo_diploma=’$tipo_diploma'»;
                                $db->setQuery($sql);    
                                $db->execute();
                                
                                $sql = «insert into $usertable_ranking_participantes «;
                                $sql .= » SELECT Qrz,SUM(c_ref) c_ref,0,0,0,$tipo_diploma FROM ( SELECT case when instr(qrz,’/’)>1 then substring(qrz,1,instr(qrz,’/’)-1) else qrz end Qrz, count(distinct case when instr(qrz,’/’)>1 then substring(qrz,1,instr(qrz,’/’)-1) else qrz end) c_ref from $usertable where tipo_diploma=’$tipo_diploma’ group by 1,dia,mes,ano ) t group by 1 order by 1 «;
                                echo $sql;
                                $db->setQuery($sql);    
                                $db->execute();  
                                
                                $sql=»delete from $usertable_ranking_participantes where qrz like ‘%/%’ and tipo_diploma=’$tipo_diploma'»;
                                $db->setQuery($sql);    
                                $db->execute();
                                
                                $sql=»delete from acracb_diplomas_conseguidos where tipo_diploma=’$tipo_diploma'»;
                                $db->setQuery($sql);    
                                $db->execute();
                                
                                $sql=»INSERT INTO acracb_diplomas_conseguidos (cod_diploma,indicativo,tipo_diploma)
                                select xd.cod_diploma,x.actividad,».$tipo_diploma.» from
                                ( select distinct tt.actividad,tt.cod_diploma,ifnull(aa.numero,») numero from
                                (
                                SELECT a.qrz actividad,a.c_ref,d.cod_diploma,a.tipo_diploma FROM logs_ranking_participantes a join
                                ( select cod_diploma,condicion,condicion2 from acracb_diplomas where 1=1 and cod_diploma like ‘%pdf%’ )
                                d on a.c_ref>=d.condicion where a.tipo_diploma=’$tipo_diploma’ and (a.qrz like ‘EA%’ or a.qrz like ‘EB%’ or a.qrz like ‘EC%’ or a.qrz like ‘ED%’)
                                UNION
                                SELECT a.qrz actividad,a.c_ref,d.cod_diploma,a.tipo_diploma FROM logs_ranking_participantes a join
                                ( select cod_diploma,condicion,condicion2 from acracb_diplomas where 1=1 and cod_diploma like ‘%pdf%’ )
                                d on a.c_ref>=d.condicion2 where a.tipo_diploma=’$tipo_diploma’ and (a.qrz not like ‘EA%’ and a.qrz not like ‘EB%’ and a.qrz not like ‘EC%’ and a.qrz not like ‘ED%’)
                                ) tt left join awards aa on aa.qrz=tt.actividad and aa.diplomatipe=tt.cod_diploma     
                                )  x join acracb_diplomas xd on x.cod_diploma=xd.cod_diploma
                                where 1=1 and length(x.actividad)>0″;
                                $db->setQuery($sql);    
                                $db->execute();
                                */
                                ?>
                                <font size=3>
                                    <p align=left>
                                        <br>
                                        <center><a href=’javascript:inicializar();’>Volver Subir logs</a></center>
                                    </p>
                                </font>
                                <?php
                            }
                            
                        }
                        else
                        {
                            ?>
                            <font size=3>
                                <p align=left>
                                    <b>Error al abrir el fichero ADIF</b><br><br>
                                    <a href=’javascript:inicializar();’>Volver</a>
                                </p>
                            </font>
                            <?php
                        }
                    }
                    else
                    {
                        ?>
                        <font size=3>
                            <p align=left>
                                <b>El Password que has introducido no es valido.<br>Por favor vuelve a intentarlo!</b><br><br>
                                <a href=’javascript:inicializar();’>Volver</a>
                            </p>
                        </font>
                        <?php
                    }
                }
                else
                {
                    ?>
                    <font size=3>
                        <p align=left>
                            <b>Fecha incorrecta.</b><br><br>
                            <a href=’javascript:inicializar();’>Volver</a>
                        </p>
                    </font>
                    <?php
                }
            }
            else
            {
                ?>
                <font size=3>
                    <p align=left>
                        <b>Hay que completar todos los campos necesarios</b><br><br>
                        <a href=’javascript:inicializar();’>Volver</a>
                    </p>
                </font>
                <?php
            }
        }
        else
        {
            ?>
            <font size=3>
                <p align=left>
                    <b>Error al subir el fichero ADIF</b><br><br>
                    <a href=’javascript:inicializar();’>Volver</a>
                </p>
            </font>
            <?php
        }
    }
    else
    {
        ?>
        <font size=3>
            <p align=left>
                <b>Error al subir el fichero ADIF</b><br><br>
                <a href=’javascript:inicializar();’>Volver</a>
            </p>
        </font>
        <?php
    }
    ?>
            </font>
        </p>
    </div>
    
    <?php
 
}
?>
{/source}

Scroll al inicio