Browsing "programación"
feb 9, 2012 - php, programación    Agregar Comentario

Evitar perder la información de los formularios

¿Cuántas veces estamos llenando un formulario largo y por alguna razón perdemos la información? Desde que crashea el explorador, un corte de luz, cerrar la pestaña/ventana sin querer… ¿no sería genial, como desarrolladores, darle una solución a los visitantes de nuestros sitios webs ante ese problema?

Ahí es cuando Sisyphus nos viene a salvar. Un ligerísimo plugin de jQuery (3.5KB) que nos permite guardar localmente la información llenada en el formulario para no perderla. La data ingresada se guarda automáticamente al interactuar con los campos, no hace falta que el formulario se envíe ni mucho menos. Y su implementación es facilísima:

Código PHP
1
$('#form1, #form2').sisyphus();

Eso guardaría la información de los formularios identificados con los ids form1 y form2. Si quisiéramos aplicárselo a todos los formularios, tranquilamente podríamos hacer:

Código PHP
1
$('form').sisyphus();

El plugin permite personalizar ciertas opciones, como el tiempo durante el que se guarda la información, si queremos que se realice una acción cuando se guarda o cuando se obtiene, etc.

Una forma muy útil de ahorrarle dolores de cabeza a tus visitantes, si es que tu sitio web tiene algún formulario tedioso de llenar.

ene 5, 2012 - php, programación    Agregar Comentario

Call to undefined function mcrypt_get_iv_size

Fatal error: Call to undefined function: mcrypt_get_iv_size() in /www/xxx.php line 13

Si se te ha presentado este error y has buscado como loco (como yo) y no encuentras en enlace correcto porque la misma página de php recomiendan un enlace que al menos a mi me dio problemas de conexión, voy a publicar dos mirros donde puedes descargar la dichosa librería que debes copiar dentro de la carpeta System32 de Windows, luego cambiar en el archivo php.ini la línea correspondiente a la extensión php_mcrypt.dll, como se ve en la imagen, luego reiniciar el apache.

Mirrors:

http://files.edin.dk/php/win32/mcrypt/

http://fiestachapina.net/descargas/libs/libmcrypt.dll

Como la tecnología puede arruinar una mente talentosa

Seguro eres inteligente. La gente te lo dice y tú lo sabes. ¿Cuántas personas inteligentes pierden mucho tiempo navegando en Facebook, en Twitter, leyendo noticias o “aprendiendo”?

Todas las personas inteligentes tienen el vicio de buscar estímulos al cerebro y desafíos a la inteligencia. Dopamina. El mayor estímulo es el recableado que hace la mente al aprender algo nuevo, por mínimo que parezca.

Internet ha crecido de mentes inteligentes. Internet sabe cómo capturar una mente inteligente, engañarla en que está trabajando y hacerla perder el tiempo y talento que puede usar en crear.

Un ejemplo: Facebook está optimizado para hacerte creer que logras cosas al usarlo. El contador de notificaciones se siente como trabajo pendiente. Lo debes tener en cero. La forma que las fotos, los status y los comentarios se muestran te mantienen cautivo, clickeando, viendo más.

Fuente: http://www.cristalab.com/blog/como-internet-puede-arruinar-tu-mente-talentosa-c89567l/

MySQL – OnDelete y OnUpdate

On Delete y On Update son las acciones que se deben desencadenar al momento de tratar de realizar cualquiera de las dos sentencias mencionadas en las tablas relacionadas, pero… cual es la más recomendable?

Esta duda me surgió por la necesidad con un mini-sistema que estoy desarrollando, que opción definir para ambos casos, es decir qué hacer cuando ocurra un Update a la tabla relacionada y qué hacer cuando ocurra un Delete, consultando con 2 amigos ingenieros, ambos coincidieron de diferentes formas en la respuesta, es decir, como dijo pepito “depende”, depende el caso, por ejemplo:

 Caso 1

Supongamos que tenemos una tabla llamada áreas y otra llamada usuarios, donde existe una llave foránea en usuarios que apunta hacia áreas, mejor dicho un área -> varios usuarios,
si utilizamos Restrict simplemente no podremos eliminar ningún área, sin antes haber eliminado todos los usuarios asociados a dicha área.

Sin embargo si utilizamos Cascade podemos accidentalmente borrar un área y con ella borrar todos los usuarios relacionados con ella.

Caso 2

Tienes una tabla clientes con primary key idcliente y una tabla contactos con foreing key idcliente es decir un cliente -> varios contactos, en ese caso será conveniente utilizar Cascade, pues bastará con eliminar un cliente y automáticamente eliminará todos los contactos asociados a ese cliente.

 

nov 4, 2011 - php    Agregar Comentario

Solución Input is not proper UTF-8, indicate encoding

Solución al error:

Warning: simplexml_load_file() [function.simplexml-load-file]: xml.xml: parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0×80 0x3C 0x2F 0×73 in …

buscando hasta las 01:30 de la madrugada y encontrando diferentes propuestas de soluciones y sin encontrar ninguna en concreto (esta solución tampoco es muy concreta) he logrado identificar la posible causa, aclaro que en mi caso el archivo “original” a cargar no presentaba el problema y funcionaba perfectamente si lo copiaba a mano dentro del directorio, pero al momento de hacerlo mediante la carga de archivos con el código php, algo así como:

move_uploaded_file($_FILES['xmlfile']['tmp_name'], $ruta_guardar)

Generaba ese bendito error, cansado de buscar y con mi acelerómetro al máximo por tanta azúcar consumida y recordando que hace algún tiempo tuve problemas similares (véase solucionar-error-de-simbolos-i%c2%bb%c2%bf-en-php) hice la dichosa prueba, después de copiado el archivo al directorio en cuestión, modificarlo y guardarlo con formato unicode y por arte de magia el archivo era legible nuevamente, sin embargo la razón del error ya estaba reconocida pero aún no  sabía que lo estaba provocando, manos a la obra, buscando info http://www.php.net/manual/es/function.move-uploaded-file.php pero nada, como lo recordaba, sirve para mover y nada “extraordinario” pero aún así decidí probar con:

copy($_FILES['xmlfile']['tmp_name'], $guardar)

esta vez  no hubo problema, mantuvo el formato de origen, a diferencia de move_uploaded y con eso ha sido suficiente para mi, espero le sirva a alguien más.

 

Páginas:12345»