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 - Leguim

#181
Hola,

la idea es esa, mostrar un mensaje cuando un usuario pierda la conexión con el servidor... ya sea que el servidor se haya caído o que el usuario haya perdido la conexión a internet..

hace un tiempo había preguntado lo mismo, no me acuerdo bien pero en aquel momento alguien me dijo que podía hacerlo con ajax... la idea es hacerlo cuando el usuario haga una petición al servidor y entonces en ese momento detectar el estado de la conexión...

Espero estar haciendome entender, gracias...
Tampoco sé bien que clase de condicional se debe poner para saber el estado de conexión, imagino que no debe ser algo tan complicado de hacer...

EDIT:
¿esto me servirá para eso?

Código (php) [Seleccionar]

if(connection_aborted())
{
   // [...]
}
#182
Cita de: #!drvy en  3 Julio 2020, 10:19 AM
Lo que tendrías que hacer es reducir la consulta en sí. No sacar todos los datos sino solo la cuenta total.

No es lo sacar todo y luego contar.
Código (mysql) [Seleccionar]
SELECT * FROM usuarios

Que contar directamente.
Código (mysql) [Seleccionar]
SELECT COUNT(*) as count FROM usuarios

Con ese ultimo, haces que MySQL (u otro motor) solo cuente y no tenga que sacar cada cell ende reduces enormemente la carga.

Saludos

Gracias! ya tengo todo funcionando...
#183
Voy a revisar eso, si hay mejores maneras... pero voy poco a poco...
#184
Hola!

estaba usando hace unos meses PHPMailer para el envío automático de mensajes por correo electrónico y google (que se había tardado) comenzó a romper las pelotas bloqueando la aplicación... La volví a activar a la aplicación y después de unas semanas me encuentro que la bloqueó otra vez...

No puedo estar a cada rato revisando si google bloquea la aplicación o no...

¿Existe una alternativa de una aplicación "más segura"? ¿Qué puedo hacer?
#185
Buenas noches,

básicamente tengo una consulta que llama de una base de datos todos los registros, generalmente uso este tipo de consultas para obtener la cantidad total y no para otra cosa, que tampoco hago un foreach (recorro cada dato) imaginensen 75,000 registros... me explota la computadora y de paso el servidor  :xD

por ejemplo..
Código (php) [Seleccionar]

$cantidad_total = count(registros::Todos());
echo 'En total hay '.($cantidad_total).' registros!';


¿Habrá algún problema si un día hay 500,000 registros u obviamente muchos más?
#186
Cita de: #!drvy en  1 Julio 2020, 12:05 PM
Generalmente no tiene nada de malo utilizar librerías de terceros. Te ahorras tiempo, dolores de cabeza, y casos en los que no has pensado. Por ejemplo, enla funcion PHP que muestras, que pasa si le paso un string como este:

<p>http://google.com</p>

Te va a devolver esto:

Código (html5) [Seleccionar]
<p><a target="_blank" href="http://google.com</p>">http://google.com</p></a>

Lo cual obviamente esta rotisimo... E incluso no tenemos que ir tan lejos, basta con que el texto incluya comillas:

Puedes leer más sobre tortugas en "https://es.wikipedia.org/wiki/Testudines"

Código (html5) [Seleccionar]
Puedes leer más sobre tortugas en "<a target="_blank" href="https://es.wikipedia.org/wiki/Testudines"">https://es.wikipedia.org/wiki/Testudines"</a>

Ahí rompes todo el HTML con una simple camilla doble. Ya que usas ReGeX, te puedes asegurar de capturar solo lo que consideraríamos como una URL valida.

https://regexr.com/3e6m0

Eso sacado de StackOverflow con más de 600 votos.. Y aun así, no es válido porque no aceptaría dominios perfectamente válidos como:

https://hello.amsterdam/
https://barça.cat
http://ñoño.com


Porque limita el TLD a un máximo de 6 caracteres y solo espera a-z sin caracteres UTF-8. Tampoco acepta todo mayúsculas...

((http|https)\:\/\/)?[\w0-9\-\.]{1,255}\.[\w]{2,63}(\/[\w_\.\/\#]*)?

Este más o menos cumple con su cometido... Aunque si no lleva http/https delate, habría que ponerlo y eso implica comprobar antes de hacer el replace. En PHP seria algo así:

Código (php) [Seleccionar]
function makeLinks(string $string): string
{
   $regex = '/((http|https)\:\/\/)?[\w0-9\-\.]{1,255}\.[\w]{2,63}(\/[\w_\.\/\#]*)?/iu';
   $links = preg_match_all($regex, $string, $output);

   foreach ($output[0] as $link) {
       $url = strtolower($link);

       // Comprobar si empieza por http/https
       if (strpos($url, 'http://') !== 0 && strpos($url, 'https://') !== 0) {
           $url = 'http://' . $url;
       }

       // Creamos un enlace valido manteniendo el formato original.
       $anchor = sprintf('<a href="%s" target="_blank">%s</a>', $url, $link);
       $string = str_replace($link, $anchor, $string);
   }

   return $string;
}



Donde un texto como este:

Puedes leer más sobre tortugas en "https://es.wikipedia.org/wiki/Testudines" y para todo lo demás google.com

Se convierte en esto:

Código (html5) [Seleccionar]
Puedes leer más sobre tortugas en "<a href="https://es.wikipedia.org/wiki/testudines" target="_blank">https://es.wikipedia.org/wiki/Testudines</a>" y para todo lo demás <a href="http://google.com" target="_blank">google.com</a>


Ahora, en javascript hay un problema enorme, hasta ES6 javascript no tenía soporte para unicode en regex. Ende, no podemos utilizar el importantísimo flag /u (unicode) y por lo tanto, no podemos targetear dominios como ñoño.com sin añadir parafernalias como \0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF]) . Hay 3 opciones, o nos saltamos los dominios unicode... no muy recomendable, o solo soportamos navegadores con ES6 (tampoco muy recomendable) o toca transpilar ( https://github.com/mathiasbynens/regexpu )  y con suerte sacar algo funcional...

Yo este paso me lo salto y voy a quitarme unicode de por medio, más que nada para ahorrar tiempo:

Código (javascript) [Seleccionar]
function makeLinks(string) {
   var regex = /((http|https)\:\/\/)?[\w0-9\-\.]{1,255}\.[\w]{2,63}(\/[\w_\.\/\#]*)?/ig;
   var output = string.match(regex);

   if (!output || output.length < 1) {
       return string;
   }

   for (var i = 0, t = output.length; i < t; ++i) {
       var link = output[i];
       var url  = link.toLowerCase();

       if (!/^https?:\/\//.test(url)) {
           url = 'http://' + url;
       }

       var anchor = '<a href="' + url + '" target="_blank">' + link + '</a>';
       string = string.replace(link, anchor);
   }

   return string;
}


Con ES6 quedaría un poco más bonito:

Código (javascript) [Seleccionar]
function makeLinks(string) {
   const regex = /((http|https)\:\/\/)?[\w0-9\-\.]{1,255}\.[\w]{2,63}(\/[\w_\.\/\#]*)?/ig;
   const output = string.match(regex);

   if (!output || output.length < 1) {
       return string;
   }

   output.forEach((link) => {
       let url = link.toLowerCase();
           url = (!/^https?:\/\//.test(url) ? `http://${url}` : url);

       string = string.replace(link, `<a href="${url}" target="_blank">${link}</a>`);
   });

   return string;
}



Código (javascript) [Seleccionar]
console.log(makeLinks('Puedes leer más sobre tortugas en "https://es.wikipedia.org/wiki/Testudines" y para todo lo demás google.com'));


Y todo esto, te lo puedes ahorrar con:

Código (javascript) [Seleccionar]
<script src="linkify.min.js"></script>
<script src="linkify-html.min.js"></script>
<script>
   console.log(linkifyHtml('Puedes leer más sobre tortugas en "https://es.wikipedia.org/wiki/Testudines" y para todo lo demás google.com', {
       className: '',
       defaultProtocol: 'http'
   }));
</script>


... pero no quieres usar librerías de terceros xD


Saludos

jaja me encanta como me decis al final "pero no quieres usar librerias de terceros" jaja... no, el tema es que las liberias de terceros (no se si todas) te ofrecen más cosas de las que quizás en mi proyecto necesito... yo se que jquery es una libreria de terceros que ofrece más cosas por ahí que yo vaya a necesitar pero es diferente... veo que es muy engorroso esto de detectar una url plana y pasarla a html y no me va a quedar de otra que usar linkify xD pero no porque no use... uso si no hay más remedio.. GRACIAS! xD
#187
Muchas gracias! ya había escuchado de linkify pero por lo general no me gusta usar librerías de terceros, no digo que no lo haga pero si puedo evitarlo mucho mejor.
#188
Tengo una función php que recibe un parámetro que es una cadena cualquiera, lo que va hacer es que toda esa cadena va a detectar urls planas y las va a poner en html... Hasta acá todo va perfecto, el problema está al tratar de pasarla a js... No me llevo muy bien con las expresiones regulares y ese tipo de cosas... estuve viendo otras funciones pero son muy diferentes y terminan teniendo algún error...

Código (php) [Seleccionar]

function Convert_Content($string)
{
    $result = preg_replace('/((http|https|www)[^\s]+)/', '<a target="_blank" href="$1">$0</a>', $string);
    $result = preg_replace('/href=\"www/', 'href="http://www', $result);

    return $result;
}
#189
Lo que está pasando es que le estas poniendo una clase a un botón "botoncito" hasta ahí vamos bien, pero después hace esto...

Código (css) [Seleccionar]

.botoncito button {
    // [...]
}

// Simplemente hace
.botoncito {
    // [...]
}
#190
Hola!

https://www.youtube.com/watch?v=IHVQX52W-LQ

Recorda que una cosa en jquery es .html y otra es .append

con .html lo que hace es como setear el html de un elemento... reemplazarlo...
pero con append lo que se hace es agregar html a un elemento, no reemplaza agrega al final...

por ejemplo,

en un buscador dinámico te va a convenir usar .html
pero en un sistema donde al hacer scroll muestre más resultados sobre algo, ya te conviene usar append...

Mira el vídeo y me vas a entender un poco mejor capaz  :xD