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ú

Temas - yoelrodguez

#1
Tengo la siguiente situación: estoy usando un datalist en un formulario, pero en el caso específico de las iPad y iPhone, el datalist deja de funcionar siempre que el teclado está presente. El problema es que cuando me muestra el dato que quiero y lo selecciono para que se pase al input, no realiza la acción. A continuación, les dejo mi código para ver si me pueden ayudar.

Gracias

En el Html

Código: text
<input type="text" name="autorizacion" list="idauto" class="input-block-level" placeholder="Autorización" value="<?php echo input_post('autorizacion') ?>" required>

En el Javascript

 
Código: text
 var inputs = document.querySelectorAll('input[list]');

inputs.forEach(function(input) {
    input.addEventListener('input', function(e) {
        var optionFound = false;
        var datalist = this.list;
        
        for (var j = 0; j < datalist.options.length; j++) {
            if (this.value == datalist.options[j].value) {
                optionFound = true;
                break;
            }
        }
        
        if (optionFound) {
            this.setCustomValidity('');
        } else {
            this.setCustomValidity('Por favor, selecciona una opción válida.');
        }
    });
});

En el php

 
Código: text
 if (!function_exists('get_selectarrayinput')) {
    function get_selectarrayinput($array = array(), $id_list = '')
    {
        if ($array != '') {
            $datos = '<datalist id="' . $id_list . '">';
            foreach ($array as $key => $value) {
                $datos .= '<option value="' . $value . '">';
            }
            $datos .= '</datalist>';
        }
        return $datos;
    }
}
#2
Marketing digital / Api de Whatsapp de tercero
Abril 02, 2024, 03:04:51 PM
Hola,

En ocasiones, necesitamos integrar el envío de mensajes de WhatsApp en nuestro sistema, pero nos enfrentamos a la complejidad de la API propia de WhatsApp. Por ello, resulta más conveniente utilizar una API de terceros. Sin embargo, nos encontramos con el problema de los costos adicionales asociados a los números utilizados, además del costo de los mensajes enviados. Afortunadamente, existe una API que nos permite enviar mensajes utilizando nuestro propio número de teléfono, sin importar el país en el que nos encontremos. Esta API es la de Weboxapp (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta).
Entre las ventajas que ofrece esta API, podemos destacar el hecho de que podemos utilizar un número local y que ofrece el envío de 100 mensajes de forma gratuita cada mes. No obstante, una desventaja a considerar es que depende de WhatsApp Web y Google Chrome para funcionar correctamente.

Gracias
#3
Tengo la siguiente situación: tengo un sistema hecho con codeingter que me está cargando muy lenta la página en mi servidor online. La comparación la estoy haciendo con mí servidor local que es un xampp con mariadb de base de datos, contra mi servidor en línea que es dedicado y tienes instalado un plesk con mariadb de base de datos. La diferencia de la carga del servidor local al online es de casi 5 segundos.

Haciendo pruebas, compre que la lentitud se me produce en la consulta SQL si quito la ejecución de la consulta la página en el servidor online me carga super rápido. Tengo colocados todos los index en las tablas del servidor, en cuanto a las relaciones pero ni aun así logro que la cargar del servidor online sea igual o parecida a la del servidor local. A continuación le dejo la consulta para ver si me pueden ayudar.

Gracias.

Código: text

SELECT `contrato`.`id`, `contrato`.`n_contrato`, `cliente`.`tipoc`, `cliente`.`nombremp`, `cliente`.`nombre` AS cnombre, `cliente`.`apellidos` AS capellidos, `fiador`.`nombre` AS fnombre, `fiador`.`apellidos` AS fapellidos, `promotor`.`nombrecorto` AS prnombrecorto, `promotor`.`nombre` AS prnombre, `promotor`.`apellidos` AS prapellidos, `contrato`.`f_firma`, `contrato`.`f_final`, `contrato`.`f_revicion`, `contrato`.`importe`, `contrato`.`facimporte`, `inmueble`.`nombre` AS inmuebles, `inmueble`.`direccion` AS idireccion, `inmueble`.`id` AS idinmueble, `propietario`.`nombrecorto` AS pnombrecorto, `propietario`.`nombre` AS pnombre, `propietario`.`apellidos` AS papellidos, `documentos`.`ruta_doc`, `documentos`.`iddrive`, `cliente`.`rutap_doc` AS rutac, `fiador`.`rutap_doc` AS rutaf, `propietario`.`rutap_doc` AS rutap, `promotor`.`rutap_doc` AS rutapr, `contrato`.`id_documento`, `contrato`.`id_promotor`, `contrato`.`id_cliente`, `contrato`.`id_fiador`, `contrato`.`vencido`, DATE_FORMAT(f_firma, ' %d-%m-%Y') AS ffirma, DATE_FORMAT(f_final, ' %d-%m-%Y') AS ffinal, DATEDIFF(f_final, CURDATE()) AS dia, DATEDIFF(f_revicion, CURDATE()) AS diar
FROM (`contrato` LEFT JOIN cliente ON contrato.id_cliente = cliente.id LEFT JOIN fiador ON contrato.id_fiador = fiador.id LEFT JOIN promotor ON contrato.id_promotor = promotor.id LEFT JOIN documentos ON contrato.id_documento = documentos.id LEFT JOIN inmueble ON contrato.id_inmueble = inmueble.id LEFT JOIN propietario ON inmueble.id_propietario = propietario.id)
WHERE `vencido` =  '2'
ORDER BY `n_contrato` ASC, `inmuebles` ASC, `f_final` ASC, `f_final` ASC, `importe` ASC
LIMIT 20
#4
Hola, tengo la siguiente situación: necesito aplicar un filtro aun consulta que llena una tabla la cual tiene un paginado.  Los datos del formulario son 7, estos se pueden seleccionar todos o solo algunos. El where lo puedo conformar sin problema y pasarlo a la consulta para que me muestre el resultado que deseo, el problema se me presenta cuando hago el paso de página, ya que el valor de la variable del where se me pierde y el formulario se resetea.

Gracias
#5
Hola,  quiero compartir con ustedes un pequeño tic, para que tu servidor de correo no sea reconocido como un servidor de envío Spam. Para evitar esto, tienes que tener en tu dns los siguientes registro: spf (TXT), _dmarc (TXT) , dkim (TXT) y la zona en reversa de tu dns bien configurada. En siguiente link que dejo a continuación, se pueden apoyar para la creación de estos registros  No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

Gracias.
#6
Hola buenas tarde, estoy presentado problema con el envío de correo desde mi servidor,  cuando envío algún correo a cualquier cuenta de gmail o hotmail me lo reporta como spam. Tengo configurada la zona en reversa de mi dns y el _dmarc en el dns y aun así me sigue pasando. En No tienes permitido ver los links. Registrarse o Entrar a mi cuenta cuando hago la verificación de las blacklist solo me reporta dos: UCEPROTECTL2 y UCEPROTECTL3, cuando busco en internet me dicen que es por el segmento de red en que estoy y lo consideran spam. Mi pregunta existe alguna forma de solucionar este problema que no sea cambiar la ip del servidor.

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

Error:
Código: php
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

Código: php
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
#8
Dudas y pedidos generales / Problema con xss
Abril 27, 2021, 07:22:05 PM
Tengo la siguiente situación, tengo una función para evitar a taques xss por $_POST en php pero haciendo un escaneo de prueba me arroja que soy vulnerable a continuación le dejo el código para ver si me pueden ayudar.

Código: text
	function input_post($campo){
if(isset($_POST[$campo])){
return htmlspecialchars($_POST[$campo], ENT_QUOTES, 'UTF-8');
}else{
return NULL;
}
}