elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ... 75
101  Programación / Desarrollo Web / Re: 2 columnas horizontales responsive en: 29 Junio 2016, 02:24 am
Hola, no te recomiendo usar el float, es muy sucio y hay que estar usando hacks, y usarlo en cada elemento...

Yo uso flexbox y hace exactamente lo mismo, solo que no necesitas ir limpiando nada ni poner divs extras, simplemente se pone display inline-flex en el div padre (o flex si necesitas tener un absolute dentro) y todos los elementos que tengas dentro se alinean horizontalmente, dependiendo del ancho que tengan. Y para que no se amontonen usas flex-wrap: wrap y se reparten por filas (no más del 100% del ancho del padre en cada fila).

Respecto a bootstrap, no te recomiendo usar un framework entero, ya que seguramente no necesitarás ni la mitad de todo lo que tiene, lo único útil que les veo son el sistema de columnas, que simplemente son clases con un width %. Con eso y flexbox yo no necesito (de momento) usar frameworks.

Ahora, si solo estás haciendo pruebas y aprendiendo no hay ningún problema, me refiero para producción. O a menos que estés en un proyecto muy grande y la web va tener mil cosas y vás a usar practicamente todo lo que ofrece dicho framework, entonces si que vale la pena usarlo.


Edito: Si no me equivoco esto es lo que estabas buscando no? https://jsfiddle.net/y5x3jyc9/2/ Ni un solo float  ;D

Código
  1. <header>HEADER</header>
  2. <main>
  3.    <div class="left">Columna 1</div>
  4.    <div class="right">Columna 2</div>
  5.    <footer>Footer 2016</footer>
  6. </main>

Código
  1. * {
  2.    -webkit-box-sizing: border-box;
  3.    -moz-box-sizing: border-box;
  4.    box-sizing: border-box;
  5. }
  6.  
  7. html,
  8. body {
  9.    width: 100%;
  10.    height: 100%;
  11.    text-align: center;
  12.    margin: 0;
  13. }
  14.  
  15. header {
  16.    border: 1px solid grey;
  17.    width: 100%;
  18.    height: 15%;
  19.    margin-bottom: 10px;
  20. }
  21.  
  22. main {
  23.    border: 1px solid grey;
  24.    width: 100%;
  25.    height: calc(85% - 10px);
  26.    padding: 10px;
  27.    display: flex;
  28.    flex-wrap: wrap;
  29. }
  30.  
  31. .left {
  32.    border: 1px solid grey;
  33.    width: calc(70% - 10px);
  34.    margin: 0 10px 10px 0;
  35. }
  36.  
  37. .right {
  38.    border: 1px solid grey;
  39.    width: calc(30% - 10px);
  40.    margin: 0 0 10px 10px;
  41. }
  42.  
  43. footer {
  44.    border: 1px solid grey;
  45.    width: 100%;
  46.    height: 15%;
  47. }

Ahora sobre el tema del scroll, es algo muy facil, puedes ponerlo donde quieras, si quieres que se muestre el header siempre (sin tener que usar javascript) puedes ocultar el overflow en el body y mostrarlo solo en el main, de esta manera solo hace scroll este elemento: https://jsfiddle.net/y5x3jyc9/3/

Código
  1. html, body { overflow: hidden }
  2.  
  3. main { overflow-y: scroll }

O dejarlo normal: https://jsfiddle.net/y5x3jyc9/4/

A tu gusto ;)
102  Programación / Desarrollo Web / Re: ¿Cómo puedo ajustar las resoluciones? en: 29 Junio 2016, 02:12 am
A parte de los medias queries tambien es importante trabajar con unidades dinámicas, como el % y vh/vw (virtual height y width que basicamente es el alto y ancho de la pantalla, no del elemento).

Para poder trabajar con vh y vw hay que configurar el viewport en el html:

Código
  1. <meta name="viewport" content="width=device-width, initial-scale=1.0" />

Tambien puedes usar calc() para todavía conseguir un nivel más dinámico, por ejemplo: quieres que un div tenga el 100% del padre pero este tiene 10px de padding:

Código
  1. div.child { width: calc(100% - 20px) }

Te dejo un ejemplo de como usar % y calc(): https://jsfiddle.net/y5x3jyc9/

Edito: Te dejo también el ejemplo que acaba de crear para la otra pregunta: https://jsfiddle.net/y5x3jyc9/2/
103  Programación / PHP / Re: Incluir metadatos de forma dinámica en: 26 Junio 2016, 04:50 am
No estoy seguro de como es la estructura de tu sitio, supongo que tienes un archivo main.php donde incluyes todas las demás páginas.

Tampoco sé como estás haciendo esto, el incluir cada página según la url. Una manera eficiente para esto y además para saber que metadatos incluir, es usar un array whitelist con los nombres de los url permitidos, cada uno apuntando a su archivo .php para luego incluirlos en main.php con un array_key_exists (o cualquier otra manera para hacer esto).

Yo lo hago de la siguiente manera: En index.php tengo un array donde tengo listadas todas las páginas y url de mi sitio. Por ejemplo, para saber cual es el títutlo de la página hago lo siguiente:

Código
  1. // index.php
  2.  
  3. $includes = [
  4.    '/pagina'       => 'pagina.php',
  5.    '/pagina2'      => 'pagina2.php'
  6. ];
  7.  
  8. $include = array_key_exists($url, $includes) ? $url : '/404';
  9.  
  10. //GET TITLE
  11. $title = $lang->getText($include);
  12.  
  13. include($pages . 'main/main.php');
  14.  
  15. // main.php
  16.  
  17. // aqui incluyes tus páginas, (Dentro de <body>)
  18. include($includes[$include]);

(nota: lo que hago en $title es pasar la url a una clase que coge el texto de memcached o de la db si es la primera vez y todavía no está cacheado)

De esta manera ya sabes en que página estás y puedes saber que información incluir de manera dinámica.

También te sirve por si quieres incluir css, js, contenido, etc... especifico de la página, con un simple if:

Código
  1. if ($include == '/pagina') {}

Un consejo a la hora de imprimir de php a html, usa el shorthand que viene activado por defecto en php 5.4:

Código
  1. <meta name="title" content="<?= $title ?>">

Cuando hay bastantes se nota la diferencia. Solo sirve para imprimir, para todo lo demás abre con los tags completos.
104  Programación / PHP / Re: PHP ON CLICK en: 20 Junio 2016, 14:28 pm
¿Tienes todo ese tochaco de código asi de mal ordenado en un solo archivo? Me duelen los ojos solo de mirarlo por encima. Ordenalo por partes en distintos archivos y dale un estilo adecuado para que sea más facil leerlo y encontrar fallos.

Así por encima veo unos cuantos:

Primero, el atributo language de la etiqueta <script> ya no se usa, quitalo para que no moleste y no de problemas. Tampoco es necesario especificar type="text/javascript" ya que es por defecto.

Segundo, no deberías mover el objeto del parametro de jquery post y la variable php no sé está imprimiendo correctamente (Aquí tienes el fallo):

Código
  1. $.post( "gastos.php", { cantidadkm : "<?= $_POST['cantidadkm'] ?>" } );

En todo caso podrias crear una variable con el valor que imprime php, pero el objeto es mejor dejarlo donde esta:

Código
  1. var cantidadkm = "<?= $_POST['cantidadkm'] ?>";
  2.  
  3. $.post( "gastos.php", { cantidadkm : cantidadkm } );

Si tu versión de PHP es menor a 5.4.0, tendrás que activar short_open_tag o usar los tags completos: <?php echo $variable; ?>

Mejor usa el evento click o on click de jquery (en lugar de una función):

Código
  1. $('.boton').click(function () {
  2.    // código aquí
  3. });

La siguiente manera no falla nunca:

Código
  1. $('.boton').on('click', function () {
  2.    // código aquí
  3. });

En serio, la estructura de tu archivo da pena, no solo que uses mil veces la misma etiqueta una detrás de otra, es que tienes repetidas etiquetas como head body, etc que són únicas. Y por cierto, <!DOCTYPE html> tiene que ir arriba de cualquier código html:

Código
  1. <!DOCTYPE html>
105  Programación / PHP / Re: PHP ON CLICK en: 20 Junio 2016, 07:26 am
Si es muy sencillo, no viste el ejemplo que puse?

La función post de jquery acepta las variables como parametros para enviarlas junto a la petición post:

Código
  1. $.post( "test.php", { name: "John", time: "2pm" } );

En este ejemplo (que lo puedes encontrar en la página de jQuery), name y time son los index con los que tendrás que cogerlos en php:

Código
  1. $name = $_POST['name']; // "John"
  2. $time = $_POST['time']; // "2pm"
106  Programación / Desarrollo Web / Re: evento on submit preventDefault no funciona en: 18 Junio 2016, 00:31 am
Sigue sin funcionar... y es muy raro, tengo otros scripts en el mismo archivo con un evento click y haciendo preventDefault y si que funcionan. Pero este caso es ligeramente distinto.

De todas maneras, la finalidad del script es evitar el submit (siempre en todo momento ya que se envia por ajax) y comprobar que los campos pasen los controles. Si se ejecuta el callback es porque todo está bien, pero veo mensajes (del plugin) cuando se ejecuta el submit (de los select)...

Esto quiere decir que el formulario no se envia porque html5 required lo cancela (o no lo deja iniciar), y no porque el on submit lo detenga... Entonces en cuanto los required se rellenan el submit se ejecuta, pero no debería!

¿Alguna idea de porqué ocurre esto?


Edito: He probado poniendo return false en el callback y en el on submit. No consigo hacer que no se envie el submit... debe haber algo en alguna parte...  :-\

Edito 2: Que le den al submit, uso un elemento <a> y dejo de complicarme ya la vida  :laugh:
107  Programación / Desarrollo Web / evento on submit preventDefault no funciona en: 17 Junio 2016, 21:44 pm
Estoy usando un plugin jquery llamado formly para verificar los campos antes de mandarlos. El problema es que el evento on submit (dentro del plugin) no detiene el submit y el formulario se sigue enviando de todas formas...

Código
  1. (function($) {
  2.  
  3. $.fn.formly = function(callback) {
  4.  
  5.    // Submit button
  6.    this.on('submit', function(e) {
  7.  
  8.        // NOT WORKING AT ALL...
  9.        e.preventDefault();
  10.        var canSubmit = true;
  11.  
  12.        $(this).find('input').each(function() {
  13.  
  14.            // Required
  15.            if ($(this).attr('required')) {
  16.                canSubmit = functions.required(this);
  17.            }
  18.  
  19.            // Validate
  20.            if ($(this).attr('validate')) {
  21.                canSubmit = functions.validate(this);
  22.            }
  23.  
  24.            // Match
  25.            if ($(this).attr('match')) {
  26.                canSubmit = functions.match(this);
  27.            }
  28.  
  29.        });
  30.  
  31.        if (canSubmit) {
  32.            if (callback) {
  33.  
  34.                var clientInfo = $(this).serializeArray();
  35.  
  36.                /* Password hash function */
  37.                var p = $('#reg_pwd').val(),
  38.                    c = $('#confirm_pwd').val(),
  39.                    shaObj = new jsSHA('SHA-512', 'TEXT');
  40.  
  41.                shaObj.update(p);
  42.                var p_hash = shaObj.getHash("HEX"),
  43.                    shaObj = new jsSHA('SHA-512', 'TEXT');
  44.  
  45.                shaObj.update(c);
  46.                var c_hash = shaObj.getHash("HEX");
  47.  
  48.                callback(clientInfo, p_hash, c_hash);
  49.            }
  50.        }
  51.  
  52.    });

En mi archivo scripts.js llamo al plugin y pongo el callback que es el que debería enviar el formulario (dropzone se tiene que encargar de esto, junto a la imagen):

Código
  1.        $('#register').formly(function(clientInfo, p_hash, c_hash) {
  2.  
  3.            Dropzone.autoDiscover = false;
  4.            $('#myDropzone').dropzone({
  5.                init: function() {
  6.                    var myDropzone = this
  7.  
  8.                    myDropzone.processQueue();
  9.  
  10.                    myDropzone.on('sending', function(data, xhr, formData) {
  11.                        formData.append('client_info', clientInfo);
  12.                        formData.append('reg_pwd', p_hash),
  13.                        formData.append('confirm_pwd', c_hash);
  14.                        console.log('I just sended the info...');
  15.                    });
  16.  
  17.                    myDropzone.on('success', function(file, response) {
  18.                        myDropzone.removeFile(file);
  19.                        response == '' ? window.location.replace('//admin.inmopaco.tk/') : alert('success_' + response);
  20.                    });
  21.                }
  22.            });
  23.  
  24.        });

Para poco, dropzone me da error diciendo que ya esta inicializado... y no se sube nada. Dropzone lo tengo que inicializar fuera de formly y luego dentro tengo que procesar el queue y enviar el formulario. ¿Como prodría hacer esto sin reinicializar dropzone para que no de error?

¿Y para evitar que el formulario se envie al darle al boton? Tiene que ser dropzone el que envie el array y los hashes.

Gracias!
108  Programación / Desarrollo Web / Re: Compatibilidad de Sitio con Internet Explorer en: 14 Junio 2016, 04:42 am
Comparto vuestra frustración, ya me las veo malas para hacer que mis webs se vean igual de bien en los distintos navegadores, como para tener que rehacerlas todas para soportar la monstruosidad de IE...

Es culpa de Microsoft por no querer seguir los estandares...

Que no floten los abuelos xD Desarrollar para software obsoleto o mal diseñado es una perdida de tiempo. A menos que haya mucha gente interesada, para cuatro gatos que todavia usan IE no vale la pena.

Si vas a hacer el esfuero, lo primero que habria que hacer sería localizar el código incompatible y buscar hacks en google para la versión especifica (si, has oido bien... que los hacks son encima especificos para una version y no todas  :laugh: asi de malo es IE... y seguramente EDGE).

Suerte con eso.
109  Programación / PHP / Re: PHP ON CLICK en: 13 Junio 2016, 19:46 pm
Ya te dije en tu otra pregunta que buscaras un poquito, no es necesario que habras otra. Ejemplos de como guardar datos en una base de datos los tienes por todas partes.

Si te hubieras molestado solo un poquito en buscar en este mismo subforo, te hubieras dado cuenta que en una de las preguntas pongo un ejemplo de como recibir datos por ajax y guardarlos: http://foro.elhacker.net/php/ajax_recibir_daros-t452816.0.html;msg2071906#msg2071906
110  Programación / Desarrollo Web / Re: ¿Como montar un servidor para un juego online? en: 10 Junio 2016, 08:48 am
Puedes preguntar a los expertos, hay muchos proyectos de código abierto de diversos juegos online que tuvieron el mismo dilema (como hacer una comunicación entre cliente-servidor eficiente). Dos que más recuerdo ahora mismo son Mangos y TrinityCore (ambos emuladores de WoW).

Tienes documentación en sus respectivas páginas y foros e incluso acceso para ver el código (c y c++) en github y hacerte una idea de como implementarlo en tu aplicación.

Tambien tienen canal de irc, donde hablan sobre el desarrollo y tambien ayudan a quien pregunta algo relacionado con el funcionamiento del emulador (por lo menos lo he visto en el irc de TrinityCore, no sé como es el ambiente en Mangos). Eso si, hay que hablar ingles  ;D (en el canal de habla hispana solo hay un moderador y creo que algun contribuidor (españoles y latinos).
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ... 75
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines