Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - yoelrodguez

#11
Hola buenas tardes, gracias por la respuesta. Coloque el proyecto en mi servidor local y sin problema me trabaja pero cuando lo coloco en el servidor en de producción me produce el siguiente error:



Server Error
403
Forbidden
You do not have permission to access this document.



Este error se me esta produciendo cuando me hace la redirección a la página oauth2callback.php que la tengo junto al index.php en la raíz del sitio.

Gracias
#12
Hola a todos, estoy presentando este error, cuando trato de crear el token de mi api de gloogle drive :

Error:
PHP Fatal error:  Uncaught InvalidArgumentException: missing the required redirect URI in /var/www/vhosts/abcmultimedia.mx/cuadernos.abcmultimedia.mx/lib/gdriver/vendor/google/auth/src/OAuth2.php:675
Stack trace:
#0 /var/www/vhosts/abcmultimedia.mx/cuadernos.abcmultimedia.mx/lib/gdriver/vendor/google/apiclient/src/Client.php(396): Google\Auth\OAuth2->buildFullAuthorizationUri(Array)
#1 /var/www/vhosts/abcmultimedia.mx/cuadernos.abcmultimedia.mx/lib/gdriver/uploaddriver.php(36): Google\Client->createAuthUrl()
#2 /var/www/vhosts/abcmultimedia.mx/cuadernos.abcmultimedia.mx/lib/gdriver/uploaddriver.php(60): getClient()
#3 {main}
  thrown in /var/www/vhosts/abcmultimedia.mx/cuadernos.abcmultimedia.mx/lib/gdriver/vendor/google/auth/src/OAuth2.php on line 675


Código

function getClient()
{
    $client = new Google_Client();
    $client->setApplicationName('Google Drive API PHP Quickstart');
    $client->setScopes(Google_Service_Drive::DRIVE);
    $client->setAuthConfig('credentials.json');
    $client->setAccessType('offline');
    $client->setPrompt('select_account consent');

    // Load previously authorized token from a file, if it exists.
    $tokenPath = 'token.json';
    if (file_exists($tokenPath)) {
        $accessToken = json_decode(file_get_contents($tokenPath), true);
        $client->setAccessToken($accessToken);
    }

    // If there is no previous token or it's expired.
    if ($client->isAccessTokenExpired()) {
        // Refresh the token if possible, else fetch a new one.
        if ($client->getRefreshToken()) {
            $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
        } else {
            // Request authorization from the user.
            $authUrl = $client->createAuthUrl();
            printf("Open the following link in your browser:\n%s\n", $authUrl);
            print 'Enter verification code: ';
            $authCode = trim(fgets(STDIN));

            // Exchange authorization code for an access token.
            $accessToken = $client->fetchAccessTokenWithAuthCode($authCode);
            $client->setAccessToken($accessToken);

            // Check to see if there was an error.
            if (array_key_exists('error', $accessToken)) {
                throw new Exception(join(', ', $accessToken));
            }
        }
        // Save the token to a file.
        if (!file_exists(dirname($tokenPath))) {
            mkdir(dirname($tokenPath), 0700, true);
        }
        file_put_contents($tokenPath, json_encode($client->getAccessToken()));
    }
    return $client;
}


La ejecución del script, la estoy haciendo desde la linea de comando.

Gracias
#13
Hola a todos, ya logre resolver el problema que tenia a continuación les dejo el código por si alguien lo necesita.

Gracias

javascript

const input = document.getElementById('uploadfiles[]');
if(input.files && input.files[0])
datos = input.files;
$.each(datos,function (index, value) {

console.log(index+" "+value.name);

var dataString = new FormData($("#form-polizam")[0]);
dataString.append('uploadfile', value);

$.ajax({
url: 'index.php?c=gpagar&f=setgdrive',
type: 'POST',
data: dataString,
cache: false,
contentType: false,
processData: false,
dataType: 'json',
beforeSend: function () {
$("div#idsubiendo").html('<div class="alert alert-success"><b>Subiendo ... </b></div>');
},
//una vez finalizado correctamente
success: function (data) {
console.log(data);
$("div#idsubiendo").html('<div class="alert alert-success"><b>El fichero ha sido subido al Google Drive: '+data.error+' </b></div>');
},
//si ha ocurrido un error
error: function (data) {
console.log(data);
$("div#idsubiendo").html('');
bootbox.alert("A ocurrido un error por favor contacte con  el administrador");
}
});
});

Php

                               $datos = upload_file($config);
unset($_SESSION['idPol']);
$nombre = $datos['name'];
$ext = pathinfo($nombre, PATHINFO_EXTENSION);
$aNombre = explode("-",$nombre);
$fecha = $aNombre[0]."-".$aNombre[1]."-".$aNombre[2];
//Traemos el id del movimiento.
$idmov = preg_replace('/[^0-9]+/','', $aNombre[4]);
$objMov = $gpa->get_movAutoId($idmov, $fecha);
$_SESSION['idPol'] = $objMov->id;
//Conformamos el nombre del fichro
$nameFile = $gpa->set_namefile($objMov->id_mov);

$path = "lib/gdriver/files/";
$nom = $path.$nombre;
$nom2 = $path.$nameFile.".".$ext;
rename($nom, $nom2);
//Extraemos el id de la empresa.
$obj = $emp->get_empresaNomId($aNombre[3]);
$fileid = $gpa->set_datagdrive($nameFile.".".$ext, $obj->id, $fecha);
$jdata['error'] = $nameFile.".".$ext;
echo json_encode($jdata);
#14
Hola, tengo la siguiente situación. Estoy subiendo múltiples archivos al servidor pero necesito que una ves que el archivo este en el servidor me muestra el nombre y así sucesivamente con los que siguen. El proceso lo esto haciendo mediante ajax y php. Los archivos me suben sin problema pero el mensaje que recibo es el del último archivo y no mientras están subiendo. Les dejo el código para ver si me pueden ayudar.

Gracias

HTML

<div id="myModalmultpl" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
   <div class="modal-header">
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
       <h3 id="myModalLabel">Subir doctumento</h3>
   </div>
   <div class="modal-body">
       <?php echo for_open('#', array('class' => 'form-signin''id' =>'form-polizam')); ?>
       <div id="idsubiendo"></div>
       <input type="file" name="uploadfile[]" id="uploadfile[]" multiple />
       <input type="hidden" name="tipoupload" id="tipoupload" value="1" >
       <input type="button" name="submit" id="idsubmit" value="Subir">
       <?php echo for_close(); ?>
   </div>
   <div class="modal-footer">
       <button class="btn" data-dismiss="modal" aria-hidden="true">Cerrar</button>
   </div>
</div>


javascript


$("#idsubmit").on('click', function () {

try {

//obtenemos un array con los datos del archivo
var dataString = new FormData($("#form-polizam")[0]);
$.ajax({
url: 'index.php?c=gpagar&f=setgdrive',
type: 'POST',
data: dataString,
cache: false,
contentType: false,
processData: false,
dataType: 'json',
beforeSend: function () {
$("div#idsubiendo").html('<div class="alert alert-success"><b>Subiendo ...</b></div>');
},
//una vez finalizado correctamente
success: function (data) {
console.log(data);
bootbox.alert("<h6>El fichero ha sido subido al Google Drive: "+data.error+"</h6>");
location.reload();
},
//si ha ocurrido un error
error: function (data) {
console.log(data);
$("div#idsubiendo").html('');
bootbox.alert("A ocurrido un error por favor contacte con  el administrador");
}
});

} catch (err) {
bootbox.alert(err);
}
});


Php


foreach($datos as $val){
unset($_SESSION['idPol']);
$nombre = $val['name'];
$ext = pathinfo($nombre, PATHINFO_EXTENSION);
$aNombre = explode("-",$nombre);
$fecha = $aNombre[0]."-".$aNombre[1]."-".$aNombre[2];
//Traemos el id del movimiento.
$idmov = preg_replace('/[^0-9]+/','', $aNombre[4]);
$objMov = $gpa->get_movAutoId($idmov, $fecha);
$_SESSION['idPol'] = $objMov->id;
//Conformamos el nombre del fichro
$nameFile = $gpa->set_namefile($objMov->id_mov);

$path = "lib/gdriver/files/";
$nom = $path.$nombre;
$nom2 = $path.$nameFile.".".$ext;
rename($nom, $nom2);
//Extraemos el id de la empresa.
$obj = $emp->get_empresaNomId($aNombre[3]);
$fileid = $gpa->set_datagdrive($nameFile.".".$ext, $obj->id, $fecha);
$jdata['error'] = $fileid;
}

 
#15
Muchas gracias ya me quedo me da una diferencia de unos metros pero es aceptable
#16
Gracias por su respuesta lo pruebo y le comento.
#17
Hola, estoy usando la api de html5 para la geolocalización, lo que me esta sucediendo es que cuando accedo de distinto dispositivos de una misma red las coordenadas de longitud y latitud son distintas, dándome una diferencia de casi 10 km a continuación les dejo el código para ver si me pueden ayudar.

Gracias   


navigator.geolocation.getCurrentPosition(showPosition);

function showPosition(position) {
var lat = position.coords.latitude;
var log = position.coords.longitude;
$("input#idlat").val(lat);
$("input#idlog").val(log);
}
#18
Hola buenas noche, si quieres evitar borrar la cache cada vez que modifiques tu código javascript, solo tienes que agregar esto ?n=100 el número 100 lo vas rotando como si fuere una nueva versión de tu fichero:

Gracias

Ejemplo:


<script src="nombre_del_script.js?n=100"></script>
#19
PHP / Re: Problema con la carga de fichero csv
18 Noviembre 2020, 18:54 PM
Hola muchas gracias por contestar pruebo y le comento
#20
PHP / Problema con la carga de fichero csv
18 Noviembre 2020, 17:04 PM
Hola, tengo la siguiente situación. Estoy subiendo un fichero a mi servidor .csv de 15000 registro, separados por coma., El procesos de insertar los datos en la base de datos, lo estoy haciendo con insert en grupos de 100 para agilizar el proceso de la carga del fichero. Durante el proceso de conformación del mi query insert hago varias consultas a la base de datos. El problema que estoy teniendo es el siguiente: en mi servidor de desarrollo local que es un XAMPP con php 7.2 y mariadb ejecutando sobre linux mint se me demora 30 min pero en mi servidor online que es una vps con debian 10 php 7.2 y mariadb se puede demorar hasta 3 horas, provocándome errores a la hora de realizar el insert, que se traducen en valores que se muestran en cero o vacíos.

Mi pregunta es la siguiente como puedo ver la causa de la demora el el servidor ya que no me arroja ningún error ni en pantalla ni en los log.

Gracias


//Funcion para importar los pagos.
   public function set_importpaymet($files)
   {
       $idinsured = input_post('insured');
       $fecha = fecha_format(input_post('fecha'), "m-d-Y");
       $i = 1;
       $a_fecha = explode("-", input_post('fecha'));
       $mes = $a_fecha[0];
       $year = $a_fecha[2];
       $aPos = $_POST['campodata'];
       //Posision de los campos.
       $ia = ($aPos[0] != 0) ? $aPos[0] - 1 : '';
       $ic = ($aPos[1] != 0) ? $aPos[1] - 1 : '';
       $icl = ($aPos[2] != 0) ? $aPos[2] - 1 : '';
       $is = ($aPos[3] != 0) ? $aPos[3] - 1 : '';
       $ip = ($aPos[4] != 0) ? $aPos[4] - 1 : '';
       $ie = ($aPos[5] != 0) ? $aPos[5] - 1 : '';
       $imth = ($aPos[6] != 0) ? $aPos[6] - 1 : '';
       $im = ($aPos[7] != 0) ? $aPos[7] - 1 : '';
       $ir = ($aPos[8] != 0) ? $aPos[8] - 1 : '';
       $ico = ($aPos[9] != 0) ? $aPos[9] - 1 : '';
       $inr = ($aPos[10] != 0) ? $aPos[10] - 1 : '';
       $icd = ($aPos[11] != 0) ? $aPos[11] - 1 : '';

       switch ($mes) {
           case '01':
               $cmes = 'january';
               break;
           case '02':
               $cmes = 'february';
               break;
           case '03':
               $cmes = 'march';
               break;
           case '04':
               $cmes = 'april';
               break;
           case '05':
               $cmes = 'may';
               break;
           case '06':
               $cmes = 'june';
               break;
           case '07':
               $cmes = 'july';
               break;
           case '08':
               $cmes = 'august';
               break;
           case '09':
               $cmes = 'september';
               break;
           case '10':
               $cmes = 'october';
               break;
           case '11':
               $cmes = 'november';
               break;
           case '12':
               $cmes = 'dicember';
               break;
       }
       $numLineas = (count(file("storage/" . $files))) / 100;

       if (!is_int($numLineas)) {
           $numLineas = intval($numLineas) + 1;
       }
       $Resto = (count(file("storage/" . $files))) % 100;
       //Comensamos a procesar el fichero.
       $v = 1;
       $c = 1;
       $cil = 1;
       if (($gestor = fopen("storage/" . $files, "r")) !== false) {
           while (($datos = fgetcsv($gestor, 1000, ",")) == true) {
               if ($c != 1) {

                   if ($v == 100 and $cil <= $numLineas) {
                       $campos = "(npn,month,subcriberid,member,fecha,id_incured,effectivedate,procedado,class,com_paym)";
                       $valores = substr($valores, 0, -1);
                       $q = $this->db->multi_query("INSERT INTO tabla2" . $campos . " VALUES " . $valores);
                       if (!$q) {
                           echo "INSERT INTO tabla2 " . $campos . " VALUES " . $valores . "<br />";
                           printf("Error en ejecución: %s\n", $this->db->error);
                       }
                       $campos1 = "(a_number,c_name,p_state,p_number,e_date,month,pyear,n_member,rate,commission,new_ren,id_insured)";
                       $valores1 = substr($valores1, 0, -1);
                       $q1 = $this->db->multi_query("INSERT INTO tabla1" . $campos1 . " VALUES " . $valores1);
                       if (!$q1) {
                           echo "INSERT INTO tabla1 " . $campos1 . " VALUES " . $valores1 . "<br />";
                           printf("Error en ejecución: %s\n", $this->db->error);
                       }
                       $valores = '';
                       $valores1 = '';
                       $cil++;
                       $v = 0;
                   }
                   //Proceamos el nombre para el caso que venga invertido.
                   if (strpos($datos[$ic], ',')) {
                       $aName = explode(",", $datos[$ic]);
                       $clientName = $aName[1] . " " . $aName[0];
                   } else {
                       $apellido = $datos[$icl];
                       $clientName = $datos[$ic] . " " . $apellido;
                   }
                   unset($com);
                   $pos = strpos($datos[$ip], "-");
                   if ($idinsured == 1) {
                       $aSub = explode("-", $datos[$ip]);
                       $subId = $aSub[1];
                   } else {
                       $subId = trim($datos[$ip]);
                   }
                   //$subId = str_replace("FL-","",trim($datos[$ip]));
                   //Definimos el formato de la fecha
                   $fechaFile = fecha_format(str_replace("/", "-", $datos[$ie]), "m-d-Y");

                   //Insertamos los gagos para el bob list de amberer.
                   $comision = str_replace(array("$"), "", $datos[$ico]);

                   $valores1 .= "(";
                   $valores1 .= "'" . addslashes($datos[$ia]) . "',";
                   $valores1 .= "'" . addslashes($clientName) . "',";
                   $valores1 .= "'" . addslashes($datos[$is]) . "',";
                   $valores1 .= "'" . addslashes($subId) . "',";
                   $valores1 .= "'" . addslashes($fechaFile) . "',";
                   $valores1 .= "'" . $mes . "',";
                   $valores1 .= "'" . $year . "',";
                   $valores1 .= "'" . intval($datos[$im]) . "',";
                   $valores1 .= "'" . addslashes(str_replace(array("$"), "", $datos[$ir])) . "',";
                   $valores1 .= "'" . floatval($comision) . "',";
                   $valores1 .= "'" . addslashes($datos[$inr]) . "',";
                   $valores1 .= "'" . $idinsured . "'";
                   $valores1 .= "),";

                       $q = $this->db->query("SELECT id, id_agent FROM `tabla5` WHERE suscriberid = '" . $subId . "'  AND id_insured = '" . $idinsured . "' AND SUBSTRING(aplication_date, 1, 4) = '" . $year . "' AND  borrado <> 1 AND pending <> 1 ");

                   //Comprobamos a quien pertenece el pago y la comicion del agente por subcriber o nombre.
                   if ($q->num_rows == 1) {
                       $obj = $q->fetch_object();
                       //Traemos el valor de la comision que se le va pagar por agent.
                       $qac = $this->db->query("SELECT comm_new, comm_rew FROM tabla4 WHERE id_agent = '" . $obj->id_agent . "' AND id_insured = '" . $idinsured . "' AND yearcom = '" . $year . "' ");
                       if ($qac->num_rows > 0) {
                           $obj_cag = $qac->fetch_object();
                           //Calculamos la comision para insertar el valor en la tabla de pagos.
                           if ($datos[$inr] == 'OEP') {
                               $com = $obj_cag->comm_new * intval($datos[$im]);
                           } else {
                               $com = $obj_cag->comm_rew * intval($datos[$im]);
                           }
                           //Comprovamos si el usuario ya tiene pago
                           $qc = $this->db->query("SELECT ". $cmes . " FROM tabla3 WHERE id_client = '" . $obj->id . "' AND fecha = '" . $year . "'");
                           if ($qc->num_rows > 0) {

                               $obj_cmes = $qc->fetch_object();
                               $comp = $com + $obj_cmes->$cmes;
                               //Insertamos el registro procesado en la tabla registro.
                               $valores .= "(";
                               $valores .= "'" . addslashes($datos[$ia]) . "',";
                               $valores .= "'" . addslashes($datos[$imth]) . "',";
                               $valores .= "'" . $subId . "',";
                               $valores .= "'" . addslashes($datos[$im]) . "',";
                               $valores .= "'" . addslashes($fecha) . "',";
                               $valores .= "'" . $idinsured . "',";
                               $valores .= "'" . addslashes($fechaFile) . "',";
                               $valores .= "'1',";
                               $valores .= "'" . addslashes($datos[$inr]) . "',";
                               $valores .= "'" . $com . "'";
                               $valores .= "),";
                               //Insertamos los datos en la tabla de pagos al  mes que coresponde.
                               classDb::update_db(tabla3, array($cmes => $comp), array('id_agent' => $obj->id_agent, 'id_client' => $obj->id, 'fecha' => $year));
                           } else {

                               //Insertamos el registro procesado en la tabla registro.
                               $valores .= "(";
                               $valores .= "'" . addslashes($datos[$ia]) . "',";
                               $valores .= "'" . addslashes($datos[$imth]) . "',";
                               $valores .= "'" . $subId . "',";
                               $valores .= "'" . addslashes($datos[$im]) . "',";
                               $valores .= "'" . addslashes($fecha) . "',";
                               $valores .= "'" . $idinsured . "',";
                               $valores .= "'" . addslashes($fechaFile) . "',";
                               $valores .= "'0',";
                               $valores .= "'" . addslashes($datos[$inr]) . "',";
                               $valores .= "'0'";
                               $valores .= "),";
                           }
                           $qc->free();
                       } else {

                           //Insertamos el registro procesado en la tabla registro.
                           $valores .= "(";
                           $valores .= "'" . addslashes($datos[$ia]) . "',";
                           $valores .= "'" . addslashes($datos[$imth]) . "',";
                           $valores .= "'" . $subId . "',";
                           $valores .= "'" . addslashes($datos[$im]) . "',";
                           $valores .= "'" . addslashes($fecha) . "',";
                           $valores .= "'" . $idinsured . "',";
                           $valores .= "'" . addslashes($fechaFile) . "',";
                           $valores .= "'0',";
                           $valores .= "'" . addslashes($datos[$inr]) . "',";
                           $valores .= "'0'";
                           $valores .= "),";
                       }
                       $qac->free();
                   } else {

                       //Insertamos el registro procesado en la tabla registro.
                       $valores .= "(";
                       $valores .= "'" . addslashes($datos[$ia]) . "',";
                       $valores .= "'" . addslashes($datos[$imth]) . "',";
                       $valores .= "'" . $subId . "',";
                       $valores .= "'" . addslashes($datos[$im]) . "',";
                       $valores .= "'" . addslashes($fecha) . "',";
                       $valores .= "'" . $idinsured . "',";
                       $valores .= "'" . addslashes($fechaFile) . "',";
                       $valores .= "'0',";
                       $valores .= "'" . addslashes($datos[$inr]) . "',";
                       $valores .= "'0'";
                       $valores .= "),";
                   }
                   $q->free();

                   if (($v == $Resto) and ($cil == $numLineas) and ($Resto != 0)) {
                       $campos = "(npn,month,subcriberid,member,fecha,id_incured,effectivedate,procedado,class,com_paym)";
                       $valores = substr($valores, 0, -1);
                       $q = $this->db->multi_query("INSERT INTO tabla1 " . $campos . " VALUES " . $valores);

                       if (!$q) {
                           echo "INSERT INTO tabla1 " . $campos . " VALUES " . $valores . "<br />";
                           printf("Error en ejecución: %s\n", $this->db->error);
                       }

                       $campos1 = "(a_number,c_name,p_state,p_number,e_date,month,pyear,n_member,rate,commission,new_ren,id_insured)";
                       $valores1 = substr($valores1, 0, -1);

                       $q1 = $this->db->multi_query("INSERT INTO tabla2 " . $campos1 . " VALUES " . $valores1);

                       if (!$q1) {
                           echo "INSERT INTO tabla2 " . $campos1 . " VALUES " . $valores1 . "<br />";
                           printf("Error en ejecución: %s\n", $this->db->error);
                       }
                       unset($valores);
                       unset($valores1);
                       $v = 0;
                   }
               }
               $v++;
               $c++;
           }
       }
   }