<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>unijimpe</title> <link>http://blog.unijimpe.net</link> <description>Desarrollo Web, SEO, Adsense</description> <lastBuildDate>Thu, 02 Sep 2010 05:21:20 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.0.1</generator> <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/unijimpe" /><feedburner:info uri="unijimpe" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><image><link>http://blog.unijimpe.net</link><url>http://samples.unijimpe.net/logo-unijimpe.jpg</url><title>unijimpe</title></image><item><title>Insertar Videos de Youtube en WordPress con WP Youtube Player</title><link>http://feedproxy.google.com/~r/unijimpe/~3/SGCiiT0n11A/</link> <comments>http://blog.unijimpe.net/insertar-videos-de-youtube-en-wordpress-con-wp-youtube-player/#comments</comments> <pubDate>Thu, 02 Sep 2010 05:21:20 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[WordPress]]></category> <category><![CDATA[Youtube]]></category> <category><![CDATA[feed]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[player]]></category> <category><![CDATA[plugin]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1236</guid> <description><![CDATA[<p><a href="http://blog.unijimpe.net/wp-youtube-player/">WP Youtube Player</a> es un plugin de WordPress que te permitirá insertar videos de youtube de manera sencilla utilizando el quicktag <code>[tube][/tube]</code>, además de ello tiene un panel de configuración para personalizar los parámetros para mostrar el reproductor.</p><p><a href="http://blog.unijimpe.net/wp-youtube-player/"></a></p><p><strong>Características</strong></p><p><em>WP Youtube Player</em> te facilita la publicación de vídeos en tu blog, para ello puedes:</p>Publicar<p>&#8230;</p>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/Nv7A2tlBv9EDXyxiRil38SaZOMk/0/da"><img src="http://feedads.g.doubleclick.net/~a/Nv7A2tlBv9EDXyxiRil38SaZOMk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Nv7A2tlBv9EDXyxiRil38SaZOMk/1/da"><img src="http://feedads.g.doubleclick.net/~a/Nv7A2tlBv9EDXyxiRil38SaZOMk/1/di" border="0" ismap="true"></img></a></p><p><a href="http://blog.unijimpe.net/wp-youtube-player/">WP Youtube Player</a> es un plugin de WordPress que te permitirá insertar videos de youtube de manera sencilla utilizando el quicktag <code>[tube][/tube]</code>, además de ello tiene un panel de configuración para personalizar los parámetros para mostrar el reproductor.</p><p><a href="http://blog.unijimpe.net/wp-youtube-player/"><img src="http://blog.unijimpe.net/wp-content/uploads/2010/08/wp-youtube-player.jpg" alt="" title="wp-youtube-player" width="300" height="425" /></a></p><p><strong>Características</strong></p><p><em>WP Youtube Player</em> te facilita la publicación de vídeos en tu blog, para ello puedes:</p><ul><li>Publicar vídeos utilizando una línea de código.</li><li>Configurar las dimensiones y el tipo de player a utilizar.</li><li>Configurar el método para embeber el player, incluyendo mediante <em>iframe</em></li><li>Permite configurar los parámetros del player.</li><li>Genera el código necesario para compatibilidad con los Feeds.</li><li>Genera el código necesario para compatibilidad con iPhone.</li></ul><p><strong>Como utilizar WP Youtube Player</strong></p><p>Para publicar los vídeos de Youtube debes utilizar los quicktags <code>[tube][/tube]</code> y puedes hacerlo mediante las siguientes opciones:</p><p>Utilizando el URL del vídeo:</p><div class="syntax_hilite"><div id="code-4"><div class="code"><ol><li style="color:#3A6A8B;"><div style=""><span style="color:#006600;">&#91;</span>tube<span style="color:#006600;">&#93;</span>http:<span style="color:#FF9933; font-style:italic;">//www.youtube.com/watch?v=AFVlJAi3Cso[/tube] </span></div></li></ol></div></div></div><p></p><p>Utilizando el URL para embeber el vídeo:</p><div class="syntax_hilite"><div id="code-5"><div class="code"><ol><li style="color:#3A6A8B;"><div style=""><span style="color:#006600;">&#91;</span>tube<span style="color:#006600;">&#93;</span>http:<span style="color:#FF9933; font-style:italic;">//www.youtube.com/v/AFVlJAi3Cso[/tube] </span></div></li></ol></div></div></div><p></p><p>Utilizando el Identificador del vídeo:</p><div class="syntax_hilite"><div id="code-6"><div class="code"><ol><li style="color:#3A6A8B;"><div style=""><span style="color:#006600;">&#91;</span>tube<span style="color:#006600;">&#93;</span>AFVlJAi3Cso<span style="color:#006600;">&#91;</span>/tube<span style="color:#006600;">&#93;</span></div></li></ol></div></div></div><p></p><p>Como pueden ver existen tres opciones para incluir los vídeos, elige la que mas prefieras. Cualquiera de estas opciones da el siguiente resultado.</p><p> <object style="width:425px; height:344px;"><param name="movie" value="http://www.youtube.com/v/AFVlJAi3Cso?version=3" /><param name="allowScriptAccess" value="always" /> <embed src="http://www.youtube.com/v/AFVlJAi3Cso?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></p><p>Con este plugin publicar vídeos de Youtube es sencillo y además podemos controlar la apariencia del reproductor con el panel de configuración que tiene incluido.</p><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br /> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/unijimpe?a=SGCiiT0n11A:iNGYnIpnRpY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/unijimpe?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=SGCiiT0n11A:iNGYnIpnRpY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=SGCiiT0n11A:iNGYnIpnRpY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=SGCiiT0n11A:iNGYnIpnRpY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=SGCiiT0n11A:iNGYnIpnRpY:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unijimpe/~4/SGCiiT0n11A" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.unijimpe.net/insertar-videos-de-youtube-en-wordpress-con-wp-youtube-player/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <feedburner:origLink>http://blog.unijimpe.net/insertar-videos-de-youtube-en-wordpress-con-wp-youtube-player/</feedburner:origLink></item> <item><title>Cached Commons: Librerías Javascript Online para tus Proyectos</title><link>http://feedproxy.google.com/~r/unijimpe/~3/Vm9I7aTmHIA/</link> <comments>http://blog.unijimpe.net/cached-commons-librerias-javascript-online-para-tus-proyectos/#comments</comments> <pubDate>Wed, 01 Sep 2010 04:46:36 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[Javascript]]></category> <category><![CDATA[Optimización Web]]></category> <category><![CDATA[Servicios Web]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[cdn]]></category> <category><![CDATA[github]]></category> <category><![CDATA[gzip]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[minificar]]></category> <category><![CDATA[SWFObject]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1234</guid> <description><![CDATA[<p><strong>Cached Commons</strong> es una colección de librerías Javascript que han sido cacheadas, optimizadas y alojadas en el CDN de Github las cuales podemos incluir directamente en nuestros proyectos. Están disponibles librerías como: <em>jQuery</em>, <em>SWFObject</em>, <em>SWFAddress</em>, <em>SyntaxHighlighter</em>, <em>jqPlot</em> entre otros.</p><p><a href="http://cachedcommons.org/"></a></p><p>Cada librería incluida ha sido <em>minificada</em>, luego se la envía al usuario utilizando compresión <em>GZIP</em> y&#8230;</p>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/mV41GxpaExdUapDg9-uKSGc1Y_U/0/da"><img src="http://feedads.g.doubleclick.net/~a/mV41GxpaExdUapDg9-uKSGc1Y_U/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/mV41GxpaExdUapDg9-uKSGc1Y_U/1/da"><img src="http://feedads.g.doubleclick.net/~a/mV41GxpaExdUapDg9-uKSGc1Y_U/1/di" border="0" ismap="true"></img></a></p><p><strong>Cached Commons</strong> es una colección de librerías Javascript que han sido cacheadas, optimizadas y alojadas en el CDN de Github las cuales podemos incluir directamente en nuestros proyectos. Están disponibles librerías como: <em>jQuery</em>, <em>SWFObject</em>, <em>SWFAddress</em>, <em>SyntaxHighlighter</em>, <em>jqPlot</em> entre otros.</p><p><a href="http://cachedcommons.org/"><img src="http://blog.unijimpe.net/wp-content/uploads/2010/08/cached-commons.jpg" alt="" title="cached-commons" width="400" height="231" /></a></p><p>Cada librería incluida ha sido <em>minificada</em>, luego se la envía al usuario utilizando compresión <em>GZIP</em> y además con los headers necesarios para ser guardados en el cache del usuario. Esto significa que han sido correctamente optimizados para cargarse rápidamente y por consiguiente acelerar la carga de nuestra web.</p><p><strong>Como utilizar Cached Commons</strong></p><p>Para utilizar cualquier librería alojada en <em>Cached Commons</em> solo debes copiar la ruta de la librería e incluirla directamente en tu proyecto.</p><p>Por ejemplo si deseamos utilizar la librería SWFObject podemos hacerlo mediante:</p><div class="syntax_hilite"><div id="html-9"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"http://cachedcommons.org/javascripts/swf/swfobject-2.2.js"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li></ol></div></div></div><p></p><p>También podemos utilizar la versión minificada:</p><div class="syntax_hilite"><div id="html-10"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"http://cachedcommons.org/javascripts/swf/swfobject-2.2-min.js"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li></ol></div></div></div><p></p><p>Este proyecto es semejante al <a href="http://blog.unijimpe.net/google-ajax-libraries-api/">Google Ajax Libraries API</a> el cual también aloja a las principales librerías javascript, pero tiene la ventaja que aloja a muchas mas librerías y plugins más populares. Si aún así no encuentras la librería que necesitas puedes solicitar qu la agreguen al directorio.</p><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br /> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/unijimpe?a=Vm9I7aTmHIA:Lv2BvO-alhk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/unijimpe?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=Vm9I7aTmHIA:Lv2BvO-alhk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=Vm9I7aTmHIA:Lv2BvO-alhk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=Vm9I7aTmHIA:Lv2BvO-alhk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=Vm9I7aTmHIA:Lv2BvO-alhk:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unijimpe/~4/Vm9I7aTmHIA" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.unijimpe.net/cached-commons-librerias-javascript-online-para-tus-proyectos/feed/</wfw:commentRss> <slash:comments>2</slash:comments> <feedburner:origLink>http://blog.unijimpe.net/cached-commons-librerias-javascript-online-para-tus-proyectos/</feedburner:origLink></item> <item><title>Prevenir el clickjacking con Javascript</title><link>http://feedproxy.google.com/~r/unijimpe/~3/fzKXOLkBnWE/</link> <comments>http://blog.unijimpe.net/prevenir-el-clickjacking-con-javascript/#comments</comments> <pubDate>Sun, 22 Aug 2010 21:20:54 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[Javascript]]></category> <category><![CDATA[Seguridad]]></category> <category><![CDATA[clickjacking]]></category> <category><![CDATA[frame]]></category> <category><![CDATA[iframe]]></category> <category><![CDATA[seguridad]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1226</guid> <description><![CDATA[<p>Prevenir el <em>clickjacking</em> consiste en evitar que nuestra página sea cargada dentro de otra mediante un <em>frame</em> o <em>iframe</em>, esto para prevenir el robo de contenido así como evitar el uso de nuestra página para forzar a los visitantes a realizar clicks maliciosos. Entonces el objetivo es evitar que nuestra página pueda ser cargada dentro de&#8230;</p>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/SDDEUhSnZutqdH0s25Y62pD8ppI/0/da"><img src="http://feedads.g.doubleclick.net/~a/SDDEUhSnZutqdH0s25Y62pD8ppI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/SDDEUhSnZutqdH0s25Y62pD8ppI/1/da"><img src="http://feedads.g.doubleclick.net/~a/SDDEUhSnZutqdH0s25Y62pD8ppI/1/di" border="0" ismap="true"></img></a></p><p>Prevenir el <em>clickjacking</em> consiste en evitar que nuestra página sea cargada dentro de otra mediante un <em>frame</em> o <em>iframe</em>, esto para prevenir el robo de contenido así como evitar el uso de nuestra página para forzar a los visitantes a realizar clicks maliciosos. Entonces el objetivo es evitar que nuestra página pueda ser cargada dentro de otra utilizando frames o iframes.</p><p><img src="http://blog.unijimpe.net/wp-content/uploads/2010/08/clickjacking.jpg" alt="" title="clickjacking" width="336" height="192" /></p><p><strong>Que es Clickjacking?</strong></p><p>El clickjacking consiste en cargar una página dentro de otra utilizando un <em>iframe</em> y sobre ella mostrar otra página oculta con transparencia, de forma tal que si hacemos click en un botón para buscar estaremos indirectamente haciendo click sobre otra página para propósitos maliciosos.</p><p><strong>Prevenir Clickjacking - Primer Método</strong></p><p>La idea básica para prevenir que nuestra página sea cargada dentro de otra con frames o iframes es verificar la propiedad <em>location</em> del frame actual es igual al del frame superior. Si no son iguales estas propiedades es síntoma que nuestra página se esta cargando dentro de otra por lo tanto redireccionamos al url de nuestra web.</p><div class="syntax_hilite"><div id="html-14"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#26536A;"><div style="">if (top.location != location) top.location = self.location;</div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li></ol></div></div></div><p></p><p>El método anterior por lo general es suficiente en la mayoría de los casos, pero existen técnicas para saltarse esta verificación, por ejemplo utilizar iframes anidados o generar errores de Javascript con lo cual se detiene cualquier verificación con javascript adicional. En el artículo <a href="http://seclab.stanford.edu/websec/framebusting/">Busting frame busting: a study of clickjacking vulnerabilities at popular sites</a> se explica las múltiples formas de evitar el <em>Frame Busting</em>.</p><p><strong>Prevenir Clickjacking - Segundo Método</strong></p><p>Una forma sencilla de prevenir el uso de nuestras páginas en otros sitios es primero ocultar todo el contenido de nuestra web utilizando estilos. Luego de ello verificamos si la propiedad <em>location</em> del frame actual y el superior son iguales en cuyo caso volvemos visible todo el contenido de nuestro web en caso contrario redireccionamos a nuestra url.</p><p>Primero colocamos el siguiente código en el header para ocultar el contenido.</p><div class="syntax_hilite"><div id="html-15"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/style.html"><span style="color: #000000;">&lt;style</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/css"</span><span style="color: #000000;">&gt;</span></a></span> body { display:none; } <span style="color: #009900;"><span style="color: #000000;">&lt;/style&gt;</span></span></div></li></ol></div></div></div><p> Al final del contenido colocamos el siguiente código, el cual verifica si el frame actual es igual al frame superior para volver visible el contenido.</p><div class="syntax_hilite"><div id="html-16"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#26536A;"><div style="">if (self == top) {</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp;document.getElementsByTagName(&quot;body&quot;)[0].style.display = 'block';</div></li><li style="color:#26536A;"><div style="">} else {</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp;top.location = self.location;</div></li><li style="color:#26536A;"><div style="">}</div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li></ol></div></div></div><p></p><p>De esta forma si el atacante de alguna forma genera un error de javascript o utiliza frames anidados solo se mostrará una página en blanco, una validación sencilla pero muy eficiente para evitar que nuestra web sea utilizada por terceros.</p><p><strong>Mas Información</strong></p><ul><li><a href="http://seclab.stanford.edu/websec/framebusting/">Busting frame busting: a study of clickjacking vulnerabilities at popular sites</a></li><li><a href="http://crypto.stanford.edu/framebust/">Defeating Frame Busting Techniques</a></li><li><a href="http://coderrr.wordpress.com/2009/02/13/preventing-frame-busting-and-click-jacking-ui-redressing/">Preventing Frame Busting and Click Jacking (UI Redressing)</a></li></ul><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br /> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/unijimpe?a=fzKXOLkBnWE:6Avu1lHKRGk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/unijimpe?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=fzKXOLkBnWE:6Avu1lHKRGk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=fzKXOLkBnWE:6Avu1lHKRGk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=fzKXOLkBnWE:6Avu1lHKRGk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=fzKXOLkBnWE:6Avu1lHKRGk:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unijimpe/~4/fzKXOLkBnWE" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.unijimpe.net/prevenir-el-clickjacking-con-javascript/feed/</wfw:commentRss> <slash:comments>4</slash:comments> <feedburner:origLink>http://blog.unijimpe.net/prevenir-el-clickjacking-con-javascript/</feedburner:origLink></item> <item><title>Obtener Descuentos para Comprar por Internet</title><link>http://feedproxy.google.com/~r/unijimpe/~3/z2ACCo680oM/</link> <comments>http://blog.unijimpe.net/obtener-descuentos-para-comprar-por-internet/#comments</comments> <pubDate>Tue, 17 Aug 2010 04:46:19 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[Servicios Web]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[ahorro]]></category> <category><![CDATA[comprar]]></category> <category><![CDATA[cupones]]></category> <category><![CDATA[descuentos]]></category> <category><![CDATA[internet]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1211</guid> <description><![CDATA[<p>Si tienes la necesidad de hacer compras por internet, te presento un tip sencillo para obtener descuentos y ahorrar dinero. Se trata de <a href="http://www.retailmenot.com/">RetailMeNot</a>, una comunidad donde encontrarás múltiples cupones de descuento compartidos por los usuarios. Encontrarás cupones de todo tipo y para muchos sitios web.</p><p><a href="http://www.retailmenot.com/"></a></p><p><strong>Obtener Descuentos en GoDaddy</strong></p><p>GoDaddy es uno de&#8230;</p>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/ztVDayrVW96nK6fB3kjm67uTOyQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/ztVDayrVW96nK6fB3kjm67uTOyQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ztVDayrVW96nK6fB3kjm67uTOyQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/ztVDayrVW96nK6fB3kjm67uTOyQ/1/di" border="0" ismap="true"></img></a></p><p>Si tienes la necesidad de hacer compras por internet, te presento un tip sencillo para obtener descuentos y ahorrar dinero. Se trata de <a href="http://www.retailmenot.com/">RetailMeNot</a>, una comunidad donde encontrarás múltiples cupones de descuento compartidos por los usuarios. Encontrarás cupones de todo tipo y para muchos sitios web.</p><p><a href="http://www.retailmenot.com/"><img src="http://blog.unijimpe.net/wp-content/uploads/2010/08/retailmenot.jpg" alt="" title="retailmenot" width="500" height="359" /></a></p><p><strong>Obtener Descuentos en GoDaddy</strong></p><p>GoDaddy es uno de los mas grandes proveedores de Dominios, entonces si vas a comprar dominios puedes realizar la búsqueda de cupones y luego ver el listado de todos los <a href="http://www.retailmenot.com/view/godaddy.com">cupones disponibles para GoDaddy</a>. En mi caso yo escojo el descuento de dominios a <em>$US 7.49</em> cuando normalmente el precio del dominio es de <em>$11.44</em>.</p><p>Luego cuando compramos el dominio, en el carrito de compras podemos ingresar el cupón de descuento con en la siguiente imagen con lo cual nos ahorramos unos dolares de manera sencilla.</p><p><img src="http://blog.unijimpe.net/wp-content/uploads/2010/08/godaddy-cart-discount.jpg" alt="" title="godaddy-cart-discount" width="580" height="165" /></p><p>Como pueden ver es sencillo ahorrar dinero al momento de comprar en internet, todo es cuestión de conocer los lugares donde encontrar los cupones de descuento adecuados.</p><p><strong>Compartir Cupones</strong></p><p>Los cupones listados en <em>RetailMeNot</em> son enviados por los usuarios, así que si te llega algún cupón y no lo vas a utilizar es bueno que lo compartas en esta página para de esta forma beneficiarnos todos con los descuentos.</p><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br /> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/unijimpe?a=z2ACCo680oM:NfyTwZQ7_0k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/unijimpe?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=z2ACCo680oM:NfyTwZQ7_0k:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=z2ACCo680oM:NfyTwZQ7_0k:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=z2ACCo680oM:NfyTwZQ7_0k:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=z2ACCo680oM:NfyTwZQ7_0k:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unijimpe/~4/z2ACCo680oM" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.unijimpe.net/obtener-descuentos-para-comprar-por-internet/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <feedburner:origLink>http://blog.unijimpe.net/obtener-descuentos-para-comprar-por-internet/</feedburner:origLink></item> <item><title>Insertar Tweet Button en WordPress con WP-TweetButton</title><link>http://feedproxy.google.com/~r/unijimpe/~3/nQZ13Nx4Stw/</link> <comments>http://blog.unijimpe.net/insertar-tweet-button-en-wordpress-con-wp-tweetbutton/#comments</comments> <pubDate>Mon, 16 Aug 2010 05:54:51 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[Twitter]]></category> <category><![CDATA[WordPress]]></category> <category><![CDATA[plugin]]></category> <category><![CDATA[tweet]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1223</guid> <description><![CDATA[<p><a href="http://blog.unijimpe.net/wp-tweetbutton/">WP-TweetButton</a> es un plugin para WordPress que te permitirá incluir el recientemente lanzado <em>Tweet Button</em> en todos los posts y paginas de nuestro blog. Cuenta con múltiples parámetros de configuración para personalizar adecuadamente sin necesidad de editar tu template.</p><p><a href="http://blog.unijimpe.net/wp-tweetbutton/"></a></p><p><strong> Instalación Automática</strong></p><p>WP-TweetButton esta disponible en el directorio oficial de plugins de WordPress. Puedes instalarlo&#8230;</p>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/KguxW1jbD2BFHmV8xs3QwvCEsMY/0/da"><img src="http://feedads.g.doubleclick.net/~a/KguxW1jbD2BFHmV8xs3QwvCEsMY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/KguxW1jbD2BFHmV8xs3QwvCEsMY/1/da"><img src="http://feedads.g.doubleclick.net/~a/KguxW1jbD2BFHmV8xs3QwvCEsMY/1/di" border="0" ismap="true"></img></a></p><p><a href="http://blog.unijimpe.net/wp-tweetbutton/">WP-TweetButton</a> es un plugin para WordPress que te permitirá incluir el recientemente lanzado <em>Tweet Button</em> en todos los posts y paginas de nuestro blog. Cuenta con múltiples parámetros de configuración para personalizar adecuadamente sin necesidad de editar tu template.</p><p><a href="http://blog.unijimpe.net/wp-tweetbutton/"><img src="http://blog.unijimpe.net/wp-content/uploads/2010/08/wp-tweetbutton-config.jpg" alt="" title="wp-tweetbutton-config" width="350" height="464" /></a></p><p><strong> Instalación Automática</strong></p><p>WP-TweetButton esta disponible en el directorio oficial de plugins de WordPress. Puedes instalarlo desde el panel de <em>Plugins</em> de tu blog puedes buscar: <em>wp-tweetbutton-plus</em> y lo instalas automáticamente.</p><p><img src="http://blog.unijimpe.net/wp-content/uploads/2010/08/wp-tweetbutton-install.jpg" alt="" title="wp-tweetbutton-install" width="500" height="210" /></p><p><strong>Instalación Manual</strong></p><p>La instalación es muy sencilla, primero descarga la ultima versión del plugin y descomprime el archivo, encontrarás una carpeta llamada wp-tweetbutton-plus la cual debes colocarla en la carpeta de plugins de WordPress (Típicamente <em>/wp-content/plugins/</em>). En el panel de administración de WordPress desde el menú <em>Plugins</em> puedes activar <em>WP-TweetButtin</em>.</p><p><a href="http://downloads.wordpress.org/plugin/wp-tweetbutton-plus.1.0.zip"><img src="http://blog.unijimpe.net/btdown.png" border="0"></a></p><p><strong>Configuración</strong></p><p>En el panel <em>Settings</em> encontrarás una nueva opción llamada <strong>WP-TweetButton</strong> donde puedes configurar el plugin. Las opciones disponibles son:</p><ul><li><strong>Button Style</strong> es el estilo del botón a utilizar.</li><li><strong>Language</strong> define el lenguaje del botón.</li><li><strong>Your Twitter Account</strong> es tu nombre de usuario de twitter.</li><li><strong>Related Twitter Account</strong> nombre de usuario de Twitter que deseas recomendar.</li><li><strong>Tweet text</strong> el texto aparecerá en el tweet.</li><li><strong>Display</strong> define en que lugares de tu blog se mostrará en botón.</li><li><strong>Position</strong> permite incluir automáticamente la ubicación del botón en el contenido.</li></ul><p><strong>Utilización Automática</strong></p><p>Por defecto el plugin inserta automáticamente el botón en el contenido de nuestro blog, para determinar cuando y como se mostrará el plugin podemos utilizar los parámetros de configuración:</p><p> <em>Display</em> podemos definir en que contenido mostrar los botones (Todos los posts, todas las páginas, en la página principal).<br /> <em>Position</em> permite definir si vamos a mostrar el botón al inicio del contenido, al final del contenido o no mostrarlo.</p><p><strong>Utilización Manual</strong></p><p>Si deseamos mostrar el Tweet Button en un lugar arbitrario tenemos dos opciones. Para mostrarlo en el contenido del post podemos hacerlo con el siguiente código:</p><div class="syntax_hilite"><div id="html-19"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!--wp_tweetbutton--&gt;</span></span></div></li></ol></div></div></div><p></p><p>Ahora si quieres personalizar aun mas la ubicación de los botones puedes utilizar la función <em>wp_tweetbutton</em> para incluirlo en tu template.</p><div class="syntax_hilite"><div id="php-20"><div class="php"><ol><li style="color:#3A6A8B;"><div style=""><span style="color:#000000;">&lt;?php</span> wp_tweetbutton<span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>; <span style="color:#000000;">?&gt;</span></div></li></ol></div></div></div><p></p><p>Como puedes ver es sencillo de utilizar y fácil de configurar. Si tienen preguntas y sugerencias para mejorar este plugin puedes dejarnos sus comentarios, trataremos de atender a la mayor parte de sugerencias con la intención de mejorar el plugin.</p><p><a href="http://twitter.com/share?url=http%3A%2F%2Fblog.unijimpe.net%2Finsertar-tweet-button-en-wordpress-con-wp-tweetbutton%2F&amp;via=unijimpe&amp;related=unijimpe&amp;text=Insertar+Tweet+Button+en+WordPress+con+WP-TweetButton" class="twitter-share-button">Tweet</a></p><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br /> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/unijimpe?a=nQZ13Nx4Stw:lQMhUOfg5yo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/unijimpe?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=nQZ13Nx4Stw:lQMhUOfg5yo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=nQZ13Nx4Stw:lQMhUOfg5yo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=nQZ13Nx4Stw:lQMhUOfg5yo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=nQZ13Nx4Stw:lQMhUOfg5yo:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unijimpe/~4/nQZ13Nx4Stw" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.unijimpe.net/insertar-tweet-button-en-wordpress-con-wp-tweetbutton/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://blog.unijimpe.net/insertar-tweet-button-en-wordpress-con-wp-tweetbutton/</feedburner:origLink></item> <item><title>Utilizar el botón oficial de Twitter</title><link>http://feedproxy.google.com/~r/unijimpe/~3/aoL7YJaH3O0/</link> <comments>http://blog.unijimpe.net/utilizar-el-boton-oficial-de-twitter/#comments</comments> <pubDate>Sun, 15 Aug 2010 04:34:34 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[Twitter]]></category> <category><![CDATA[boton]]></category> <category><![CDATA[compatir]]></category> <category><![CDATA[tweet button]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1219</guid> <description><![CDATA[<p>En esto días <a href="http://twitter.com">Twitter</a> ha lanzado su botón oficial para compartir páginas de forma sencilla y con opciones interesantes en clara competencia a servicios como <em>retweet.com</em> y <em>tweetmeme.com</em>. El nuevo botón se llama <em>Tweet Button</em> y con dos líneas de código puedes tener el botón para compartir tu contenido en Twitter y con la opción&#8230;</p>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/z3m06UHHvZwoRHEk16OCtOZ8BC0/0/da"><img src="http://feedads.g.doubleclick.net/~a/z3m06UHHvZwoRHEk16OCtOZ8BC0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/z3m06UHHvZwoRHEk16OCtOZ8BC0/1/da"><img src="http://feedads.g.doubleclick.net/~a/z3m06UHHvZwoRHEk16OCtOZ8BC0/1/di" border="0" ismap="true"></img></a></p><p>En esto días <a href="http://twitter.com">Twitter</a> ha lanzado su botón oficial para compartir páginas de forma sencilla y con opciones interesantes en clara competencia a servicios como <em>retweet.com</em> y <em>tweetmeme.com</em>. El nuevo botón se llama <em>Tweet Button</em> y con dos líneas de código puedes tener el botón para compartir tu contenido en Twitter y con la opción de mostrar la cantidad de <em>tweets</em> hechas a tu contenido.</p><p><a href="http://twitter.com/goodies/tweetbutton"><img src="http://blog.unijimpe.net/wp-content/uploads/2010/08/tweet-button.jpg" alt="" title="tweet-button" width="430" height="122" /></a></p><p><strong>Utilizar Tweet Button (Básico)</strong></p><p>Utilizar <em>Tweet Button</em>, es muy sencillo, solo tienes que agregar dos líneas de código a tu pagina y esto se encargará de tomar el titulo y url de tu página para mostrarlo en la campo para compartir en Twitter.</p><div class="syntax_hilite"><div id="html-23"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"http://platform.twitter.com/widgets.js"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"http://twitter.com/share"</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">"twitter-share-button"</span><span style="color: #000000;">&gt;</span></a></span>Tweet<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li></ol></div></div></div><p></p><p>Con el cual obtenemos el siguiente resultado:<br /> <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script><br /> <a href="http://twitter.com/share" class="twitter-share-button">Tweet</a></p><p><strong>Utilizar Tweet Button (Avanzado)</strong></p><p>Adicionalmente se pueden personalizar varios parámetros para controlar el contenido del tweet que se enviará, para ello podemos agregar variables al enlace del código anterior. Los parámetros disponibles son:</p><ul><li><strong>count</strong> indica como se mostrará la cantida de tweets (<em>horizontal</em>, <em>vertical</em>, <em>none</em>).</li><li><strong>lang</strong> idioma en el cual se mostrará el botón (<em>en</em>, <em>fr</em>, <em>de</em>, <em>es</em>, <em>ja</em>).</li><li><strong>url</strong> el ruta de la página que deseas compartir.</li><li><strong>text</strong> texto que se mostrará en el tweet.</li><li><strong>via</strong> nombre del usuario de Twitter que se usará como autor.</li><li><strong>related</strong> cuenta de twitter que se recomendará luego de hacer el tweet.</li></ul><p>Entonces si elegimos mostrar el botón con la cantidad de tweets en la parte superior del botón y que en el texto se mencione nuestra cuenta de Twitter, tendríamos:</p><div class="syntax_hilite"><div id="html-24"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"http://platform.twitter.com/widgets.js"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"http://twitter.com/share?count=vertical&amp;via=unijimpe"</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">"twitter-share-button"</span><span style="color: #000000;">&gt;</span></a></span>Tweet<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li></ol></div></div></div><p></p><p>Con lo que obtendríamos el siguiente resultado:<br /> <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script><br /> <a href="http://twitter.com/share?count=vertical&#038;via=unijimpe" class="twitter-share-button">Tweet</a></p><p>Para mayor información acerca de estos parámetros pueden leer la documentación oficial para desarrolladores en <a href="http://dev.twitter.com/pages/tweet_button">Tweet Button | Developer documentation for the Sharing API</a>.</p><p><strong>Utilizar Generador de Tweet Button</strong></p><p>Twitter ha creado un generados de botones, el cual te guía para configurar los diferentes parámetros del botón, al final de este proceso te mostrará el código para copiarlo y pegarlo en tu web.</p><p><img src="http://blog.unijimpe.net/wp-content/uploads/2010/08/generate-button.jpg" alt="" title="generate-button" width="500" height="166" class="alignnone size-full wp-image-1221" /></p><p><strong>Mas Información</strong></p><ul><li><a href="http://twitter.com/goodies/tweetbutton">Tweet Button Goodies Page</a></li><li><a href="http://dev.twitter.com/pages/tweet_button">Tweet Button | Developer documentation for the Sharing API</a></li><li><a href="http://blog.twitter.com/2010/08/pushing-our-tweet-button.html">Pushing Our (Tweet) Button</a></li></ul><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br /> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/unijimpe?a=aoL7YJaH3O0:5nW4XHWYXt4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/unijimpe?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=aoL7YJaH3O0:5nW4XHWYXt4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=aoL7YJaH3O0:5nW4XHWYXt4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=aoL7YJaH3O0:5nW4XHWYXt4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=aoL7YJaH3O0:5nW4XHWYXt4:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unijimpe/~4/aoL7YJaH3O0" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.unijimpe.net/utilizar-el-boton-oficial-de-twitter/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://blog.unijimpe.net/utilizar-el-boton-oficial-de-twitter/</feedburner:origLink></item> <item><title>Técnicas para Ofuscar Email</title><link>http://feedproxy.google.com/~r/unijimpe/~3/a_x2lwzC4hA/</link> <comments>http://blog.unijimpe.net/tecnicas-para-ofuscar-email/#comments</comments> <pubDate>Mon, 09 Aug 2010 07:13:38 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[Javascript]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Seguridad]]></category> <category><![CDATA[codificar]]></category> <category><![CDATA[email]]></category> <category><![CDATA[ofuscar]]></category> <category><![CDATA[seguridad]]></category> <category><![CDATA[spam]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1209</guid> <description><![CDATA[<p>El SPAM es uno de los problemas por la que todo usuario a perdido mucho tiempo, siempre nos envían correos no solicitados con publicidad. Una de las técnicas utilizadas por los Spammers para obtener dirección email es crear <em>robots</em> que van por todas las páginas leyendo y guardando las direcciones email publicadas. Basado en este método&#8230;</p>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/5yUOj1QF5wFbK-1AlWpqHk-_Pv0/0/da"><img src="http://feedads.g.doubleclick.net/~a/5yUOj1QF5wFbK-1AlWpqHk-_Pv0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/5yUOj1QF5wFbK-1AlWpqHk-_Pv0/1/da"><img src="http://feedads.g.doubleclick.net/~a/5yUOj1QF5wFbK-1AlWpqHk-_Pv0/1/di" border="0" ismap="true"></img></a></p><p>El SPAM es uno de los problemas por la que todo usuario a perdido mucho tiempo, siempre nos envían correos no solicitados con publicidad. Una de las técnicas utilizadas por los Spammers para obtener dirección email es crear <em>robots</em> que van por todas las páginas leyendo y guardando las direcciones email publicadas. Basado en este método para obtener nuestras direcciones tenemos una regla para evitar el spam.</p><blockquote><p>Nunca publicar directamente direcciones <strong>email</strong> en una página web.</p></blockquote><p>Veamos algunas técnicas para mostrar direcciones de correo en nuestras páginas sin exponernos a un ataque de spam a estas cuentas de email.</p><p><a href="http://samples.unijimpe.net/ofuscar-email.php"><img src="http://blog.unijimpe.net/wp-content/uploads/2010/08/obuscate-email.jpg" alt="" title="obuscate-email" width="500" height="190" /></a></p><p><strong>Utilizando CSS: Método #1</strong></p><p>Una técnica sencilla pero que da buenos resultados es escribir la dirección email al revés y luego con estilos mostrarlo en la dirección correcta utilizando la propiedad <em>direction</em>, por ejemplo:</p><div class="syntax_hilite"><div id="html-31"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/span.html"><span style="color: #000000;">&lt;span</span></a> <span style="color: #000066;">style</span>=<span style="color: #ff0000;">"direction:rtl; unicode-bidi:bidi-override;"</span><span style="color: #000000;">&gt;</span></a></span>moc.oinimod@otcatnoc<span style="color: #009900;"><span style="color: #000000;">&lt;/span&gt;</span></span></div></li></ol></div></div></div><p></p><p>Entonces creamos una función que se encargue de utilizar este método para mostrar los emails en nuestra web:</p><div class="syntax_hilite"><div id="php-32"><div class="php"><ol><li style="color:#3A6A8B;"><div style=""><span style="color:#000000;">function</span> hideEmail<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$mail</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$mail</span> = <a href="http://www.php.net/strrev"><span style="color:#000066;">strrev</span></a><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$mail</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#FF0000;">"&lt;span style=<span style="color:#000099;">\"</span>direction:rtl; unicode-bidi:bidi-override;<span style="color:#000099;">\"</span>&gt;"</span>.<span style="color:#0000FF;">$mail</span>.<span style="color:#FF0000;">"&lt;/span&gt;"</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#006600;">&#125;</span></div></li></ol></div></div></div><p></p><p><strong>Utilizando CSS: Método #2</strong></p><p>Otró método consiste en agregarle un texto oculto dentro de la dirección email, de esta forma la dirección se visualizará correctamente pero si un spammer copia el email esta contendrá un dirección inválida. Este texto se oculta con estilos utilizando la propiedad <em>display</em>.</p><div class="syntax_hilite"><div id="html-33"><div class="html"><ol><li style="color:#3A6A8B;"><div style="">contacto@<span style="color: #009900;"><a href="http://december.com/html/4/element/span.html"><span style="color: #000000;">&lt;span</span></a> <span style="color: #000066;">style</span>=<span style="color: #ff0000;">"display:none"</span><span style="color: #000000;">&gt;</span></a></span>null<span style="color: #009900;"><span style="color: #000000;">&lt;/span&gt;</span></span>dominio.com</div></li></ol></div></div></div><p></p><p>Luego creamos la función en PHP para ofuscar los emails:</p><div class="syntax_hilite"><div id="php-34"><div class="php"><ol><li style="color:#3A6A8B;"><div style=""><span style="color:#000000;">function</span> hideEmail<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$mail</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$temp</span> = <a href="http://www.php.net/explode"><span style="color:#000066;">explode</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"@"</span>, <span style="color:#0000FF;">$mail</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$temp</span><span style="color:#006600;">&#91;</span><span style="color:#CC66CC;color:#800000;">0</span><span style="color:#006600;">&#93;</span>.<span style="color:#FF0000;">"@&lt;span style=<span style="color:#000099;">\"</span>display:none;<span style="color:#000099;">\"</span>&gt;null&lt;/span&gt;"</span>.<span style="color:#0000FF;">$temp</span><span style="color:#006600;">&#91;</span><span style="color:#CC66CC;color:#800000;">1</span><span style="color:#006600;">&#93;</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#006600;">&#125;</span></div></li></ol></div></div></div><p></p><p><strong>Utilizando codificación ROT13</strong></p><p>Este método consiste en codificar la dirección email con el algoritmo ROT13 que consiste en trasladar 13 posiciones las letras del alfabeto, dejando los caracteres no-alfabéticos sin modificar. Para ello escribimos el email codificado y lo mostramos correctamente con una función Javascript <a href="http://phpjs.org/functions/str_rot13:528">str_rot13</a>.</p><div class="syntax_hilite"><div id="html-35"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#26536A;"><div style="">document.write((&quot;pbagnpgb@qbzvavb.pbz&quot;).replace(/[a-z]/gi, function(s){</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; return String.fromCharCode(s.charCodeAt(0)+(s.toLowerCase()<span style="color: #009900;"><span style="color: #000000;">&lt;</span></a><span style="color: #ff0000;">'n'</span>?<span style="color: #cc66cc;color:#800000;">13</span>:-<span style="color: #cc66cc;color:#800000;">13</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #000000;">&lt;/script&gt;</span></span></div></li></ol></div></div></div><p></p><p>Luego escribimos una función en PHP que se encargue de codificar la dirección email y que imprima el código javascript para decodificarlo:</p><div class="syntax_hilite"><div id="php-36"><div class="php"><ol><li style="color:#3A6A8B;"><div style=""><span style="color:#000000;">function</span> hideEmail<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$mail</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$temp</span> = <span style="color:#FF0000;">"&lt;script type=<span style="color:#000099;">\"</span>text/javascript<span style="color:#000099;">\"</span>&gt;<span style="color:#000099;">\n</span>"</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$temp</span>.= <span style="color:#FF0000;">"document.write((<span style="color:#000099;">\"</span>"</span>.<a href="http://www.php.net/str_rot13"><span style="color:#000066;">str_rot13</span></a><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$mail</span><span style="color:#006600;">&#41;</span>.<span style="color:#FF0000;">"<span style="color:#000099;">\"</span>).replace(/[a-z]/gi, function(s){ <span style="color:#000099;">\n</span>"</span>;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$temp</span>.= <span style="color:#FF0000;">"&nbsp; &nbsp;return String.fromCharCode(s.charCodeAt(0)+(s.toLowerCase()&lt;'n'?13:-13));<span style="color:#000099;">\n</span>"</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$temp</span>.= <span style="color:#FF0000;">"}));<span style="color:#000099;">\n</span>"</span>;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$temp</span>.= <span style="color:#FF0000;">"&lt;/script&gt;"</span>;&nbsp; &nbsp;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$temp</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#006600;">&#125;</span></div></li></ol></div></div></div><p></p><p>Puedes escoger cualquiera de estar técnicas y utilizarlo rápidamente para mostrar tu dirección de email sin temor a ataques de SPAM. Puedes descargar el código fuente con estas funciones asi como el ejemplo de uso para que puedan hacer sus pruebas.</p><p style="text-align:left;"><a href="http://blog.unijimpe.net/download/ofuscar-email.zip" title="Email  Obfuscate"><img src="http://blog.unijimpe.net/btdown.png" border="0"></a></p><p><strong>Mas Información</strong></p><ul><li><a href="http://techblog.tilllate.com/2008/07/20/ten-methods-to-obfuscate-e-mail-addresses-compared/">Nine ways to obfuscate e-mail addresses compared</a></li><li><a href="http://ch2.php.net/str_rot13">PHP: str_rot13 - Manual</a></li><li><a href="http://phpjs.org/functions/str_rot13:528">JavaScript str_rot13</a></li><li><a href="http://www.maurits.vdschee.nl/php_hide_email/">PHP hide_email()</a></li></ul><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br /> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/unijimpe?a=a_x2lwzC4hA:antq5q3ZY7o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/unijimpe?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=a_x2lwzC4hA:antq5q3ZY7o:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=a_x2lwzC4hA:antq5q3ZY7o:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=a_x2lwzC4hA:antq5q3ZY7o:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=a_x2lwzC4hA:antq5q3ZY7o:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unijimpe/~4/a_x2lwzC4hA" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.unijimpe.net/tecnicas-para-ofuscar-email/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <feedburner:origLink>http://blog.unijimpe.net/tecnicas-para-ofuscar-email/</feedburner:origLink></item> <item><title>Prevenir ataques XSS con PHP</title><link>http://feedproxy.google.com/~r/unijimpe/~3/Hi0g2HOTH-Y/</link> <comments>http://blog.unijimpe.net/prevenir-ataques-xss-con-php/#comments</comments> <pubDate>Thu, 05 Aug 2010 06:35:16 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Seguridad]]></category> <category><![CDATA[clase]]></category> <category><![CDATA[etiquetas]]></category> <category><![CDATA[post]]></category> <category><![CDATA[seguridad]]></category> <category><![CDATA[xss]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1208</guid> <description><![CDATA[<p>Una ataque <strong>XSS</strong> (Cross Site Scripting) consiste en que el atacante ingresa código HTML o javascript en los formularios y si estos no esta filtrados correctamente mostrarán este código en nuestra página alterando el contenido original. Por ejemplo en un formulario de contacto un usuario podría colocar el siguiente código:</p><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&#60;script&#62;</span></a></span>window.location = &#34;http://www.google.com&#34;;<span style="color:<p>&#8230;</p>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/lBdcbzgiBpvs5Yz6mlSQ47BuwYw/0/da"><img src="http://feedads.g.doubleclick.net/~a/lBdcbzgiBpvs5Yz6mlSQ47BuwYw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/lBdcbzgiBpvs5Yz6mlSQ47BuwYw/1/da"><img src="http://feedads.g.doubleclick.net/~a/lBdcbzgiBpvs5Yz6mlSQ47BuwYw/1/di" border="0" ismap="true"></img></a></p><p>Una ataque <strong>XSS</strong> (Cross Site Scripting) consiste en que el atacante ingresa código HTML o javascript en los formularios y si estos no esta filtrados correctamente mostrarán este código en nuestra página alterando el contenido original. Por ejemplo en un formulario de contacto un usuario podría colocar el siguiente código:</p><div class="syntax_hilite"><div id="html-43"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script&gt;</span></a></span>window.location = &quot;http://www.google.com&quot;;<span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li></ol></div></div></div><p></p><p>Si nuestro formulario no valida correctamente estos datos ingresados, entonces al momento de mostrar este comentario en nuestra web automáticamente se hará un redirección a la ruta que defina el atacante. Basado en esto podríamos proponer un regla básica para cualquier desarrollo:</p><blockquote><p>Toda información ingresada por el usuario siempre debe ser verificada y limpiada antes de utilizarla</p></blockquote><p><strong>Prevenir XSS con PHP (Básico)</strong></p><p>Lo primero para prevenir estos ataques es limpiar cualquier etiqueta html ingresada por el usuario, para ello podemos utilizar la función <em>strip_tags</em>, la cual elimina etiquetas html. Si aplicamos esta función al texto ingresado en el ejemplo anterior tendríamos:</p><div class="syntax_hilite"><div id="php-44"><div class="php"><ol><li style="color:#3A6A8B;"><div style=""><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <a href="http://www.php.net/strip_tags"><span style="color:#000066;">strip_tags</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">'&lt;script&gt;window.location = &quot;http://www.google.com&quot;;&lt;/script&gt;'</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#FF9933; font-style:italic;">// resultado: window.location = &quot;http://www.google.com&quot;; </span></div></li></ol></div></div></div><p></p><p>Esto es una forma básica de prevenir un ataque XSS, pero existen versiones mas elaboradas de códigos de ataque que pueden no ser limpiadas por esta función. Otro problema de esta solución es que limpia todas las etiquetas html, pero en algunas ocasiones existe la necesidad de permitir algunas etiquetas (Por ejemplo: <em>p</em>, <em>strong</em>, <em>em</em>) para lo cual necesitamos una solución mas elaborada.</p><p><strong>Prevenir XSS con PHP Input Filter</strong></p><p><a href="http://www.phpclasses.org/package/2189-PHP-Filter-out-unwanted-PHP-Javascript-HTML-tags-.html">PHP Input Filter</a>, es una clase escrita en PHP que permite filtrar código malicioso ingresado en los formularios para prevenir ataques XSS de manera sencilla, tiene la cualidad de no limpiar determinadas etiquetas o atributos.</p><p>Para utilizar esta clase, descargamos los archivos desde el web oficial e incluimos el archivo <em>class.inputfilter.php</em> al inicio de nuestro PHP. Luego se debe crear una instancia de la clase <em>InputFilter</em>, entonces podemos filtrar los datos con el método <em>process</em> de la siguiente forma:</p><div class="syntax_hilite"><div id="php-45"><div class="php"><ol><li style="color:#3A6A8B;"><div style=""><span style="color:#616100;">require_once</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"class.inputfilter.php"</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#0000FF;">$ifilter</span> = <span style="color:#000000;">new</span> InputFilter<span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style=""><span style="color:#0000FF;">$nombre</span> = <span style="color:#0000FF;">$ifilter</span>-&gt;<span style="color:#006600;">process</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$_POST</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'nombre'</span><span style="color:#006600;">&#93;</span><span style="color:#006600;">&#41;</span>;</div></li></ol></div></div></div><p></p><p>También se pueden filtrar todos los campos enviados por el formulario, por ejemplo si el formulario es enviado por el método <em>POST</em>, podríamos utilizar el siguiente código para filtrar todos los campos para luego utilizarlos sin problemas.</p><div class="syntax_hilite"><div id="php-46"><div class="php"><ol><li style="color:#3A6A8B;"><div style=""><span style="color:#616100;">require_once</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"class.inputfilter.php"</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#0000FF;">$ifilter</span> = <span style="color:#000000;">new</span> InputFilter<span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style=""><span style="color:#0000FF;">$_POST</span> = <span style="color:#0000FF;">$ifilter</span>-&gt;<span style="color:#006600;">process</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$_POST</span><span style="color:#006600;">&#41;</span>;</div></li></ol></div></div></div><p></p><p><strong>Permitir etiquetas con PHP Input Filter</strong></p><p>Para evitar que algunas etiquetas sean filtradas podemos pasarlas como un array como parámetro al momento de crear la instancia de la clase. Por ejemplo para permitir las etiquetas <em>strong</em> y<em>em</em> y  tendríamos:</p><div class="syntax_hilite"><div id="php-47"><div class="php"><ol><li style="color:#3A6A8B;"><div style=""><span style="color:#616100;">require_once</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"class.inputfilter.php"</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#0000FF;">$ifilter</span> = <span style="color:#000000;">new</span> InputFilter<span style="color:#006600;">&#40;</span><a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">'em'</span>, <span style="color:#FF0000;">'strong'</span><span style="color:#006600;">&#41;</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style=""><span style="color:#0000FF;">$_POST</span> = <span style="color:#0000FF;">$ifilter</span>-&gt;<span style="color:#006600;">process</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$_POST</span><span style="color:#006600;">&#41;</span>;</div></li></ol></div></div></div><p></p><p><strong>Permitir atributos con PHP Input Filter</strong></p><p>También existe la posibilidad de desear que algunos atributos sean permitidos en el ingreso de los datos por parte del usuario. Por ejemplo podríamos permitir que los visitantes puedan ingresar enlaces para lo cual tendríamos que permitir el atributo <em>href</em> que contiene la ruta de destino.</p><div class="syntax_hilite"><div id="php-48"><div class="php"><ol><li style="color:#3A6A8B;"><div style=""><span style="color:#616100;">require_once</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"class.inputfilter.php"</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#0000FF;">$ifilter</span> = <span style="color:#000000;">new</span> InputFilter<span style="color:#006600;">&#40;</span><a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">'a'</span><span style="color:#006600;">&#41;</span>, <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">'href'</span><span style="color:#006600;">&#41;</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style=""><span style="color:#0000FF;">$comentario</span> = <span style="color:#0000FF;">$ifilter</span>-&gt;<span style="color:#006600;">process</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$_POST</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'comentario'</span><span style="color:#006600;">&#93;</span><span style="color:#006600;">&#41;</span>;</div></li></ol></div></div></div><p></p><p><strong>Mas Información</strong></p><ul><li><a href="http://es.wikipedia.org/wiki/Cross-site_scripting">Cross-site scripting</a></li><li><a href="http://ha.ckers.org/xss.html">XSS (Cross Site Scripting) Cheat Sheet</a></li><li><a href="http://www.phpclasses.org/package/2189-PHP-Filter-out-unwanted-PHP-Javascript-HTML-tags-.html">Class: PHP Input Filter</a></li><li><a href="http://blogs.vinuthomas.com/2006/07/03/cleaning-up-your-inputs/">Cleaning up your inputs</a></li></ul><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br /> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/unijimpe?a=Hi0g2HOTH-Y:foWQK9Z63Ww:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/unijimpe?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=Hi0g2HOTH-Y:foWQK9Z63Ww:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=Hi0g2HOTH-Y:foWQK9Z63Ww:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=Hi0g2HOTH-Y:foWQK9Z63Ww:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=Hi0g2HOTH-Y:foWQK9Z63Ww:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unijimpe/~4/Hi0g2HOTH-Y" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.unijimpe.net/prevenir-ataques-xss-con-php/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <feedburner:origLink>http://blog.unijimpe.net/prevenir-ataques-xss-con-php/</feedburner:origLink></item> <item><title>Convertir monedas con PHP y Google Finance</title><link>http://feedproxy.google.com/~r/unijimpe/~3/qSHOJ5p_5WQ/</link> <comments>http://blog.unijimpe.net/convertir-monedas-con-php-y-google-finance/#comments</comments> <pubDate>Wed, 30 Jun 2010 06:38:05 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Servicios Web]]></category> <category><![CDATA[conversor]]></category> <category><![CDATA[currency]]></category> <category><![CDATA[finance]]></category> <category><![CDATA[JSON]]></category> <category><![CDATA[moneda]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1204</guid> <description><![CDATA[<p><em>Google Finance</em> es un servicio para temas relacionados a finanzas (Cotizaciones financieras, datos económicos de empresas y noticias financieras), entre las muchas herramientas que ofrece dispone de un conversor de monedas para la mayoría de monedas del mundo. Aprovecharemos este servicio para crear un conversor de monedas personalizado.</p><p><a href="http://samples.unijimpe.net/currency/custom.php"></a></p><p><strong>Obteniendo la Información</strong></p><p>Lo primero es obtener&#8230;</p>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/njl-n-8VQ_7hq1hAV2pwK_G9IVs/0/da"><img src="http://feedads.g.doubleclick.net/~a/njl-n-8VQ_7hq1hAV2pwK_G9IVs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/njl-n-8VQ_7hq1hAV2pwK_G9IVs/1/da"><img src="http://feedads.g.doubleclick.net/~a/njl-n-8VQ_7hq1hAV2pwK_G9IVs/1/di" border="0" ismap="true"></img></a></p><p><em>Google Finance</em> es un servicio para temas relacionados a finanzas (Cotizaciones financieras, datos económicos de empresas y noticias financieras), entre las muchas herramientas que ofrece dispone de un conversor de monedas para la mayoría de monedas del mundo. Aprovecharemos este servicio para crear un conversor de monedas personalizado.</p><p><a href="http://samples.unijimpe.net/currency/custom.php"><img src="http://blog.unijimpe.net/wp-content/uploads/2010/06/currency-converter-300x90.jpg" alt="" title="currency-converter" width="300" height="90" /></a></p><p><strong>Obteniendo la Información</strong></p><p>Lo primero es obtener los datos, para ello utilizaremos un URL que Google Finance utiliza para mostrar el tipo de cambio.</p><div class="syntax_hilite"><div id="php-54"><div class="php"><ol><li style="color:#3A6A8B;"><div style="">http:<span style="color:#FF9933; font-style:italic;">//www.google.com/ig/calculator?hl=en&amp;q=100USD%3D%3FPEN </span></div></li></ol></div></div></div><p></p><p>Donde se tienen los siguiente parámetros:</p><ul><li><strong>100</strong> es el monto que deseamos convertir.</li><li><strong>USD</strong> es la moneda que deseamos convertir (En este caso USD).</li><li><strong>PEN</strong> es la moneda a la que deseamos convertir.</li></ul><p>El cual  devuelve como resultado los datos en formato JSON:</p><div class="syntax_hilite"><div id="php-55"><div class="php"><ol><li style="color:#3A6A8B;"><div style=""><span style="color:#006600;">&#123;</span>lhs: <span style="color:#FF0000;">"1 U.S. dollar"</span>,rhs: <span style="color:#FF0000;">"2.8239972 Peruvian nuevos soles"</span>,error: <span style="color:#FF0000;">""</span>,icc: <span style="color:#000000;">true</span><span style="color:#006600;">&#125;</span></div></li></ol></div></div></div><p></p><p>Para una lista completa de los códigos de monedas disponibles pueden visitar <a href="http://samples.unijimpe.net/currency/codes.php">Currency Codes</a>.</p><p><strong>Implementando Conversor de Monedas Básico</strong></p><p>Como los datos son devueltos en formato JSON, utilizaremos la librería <em>JSON.php</em> de la cual hemos comentado en <a href="http://blog.unijimpe.net/json-con-php/">JSON con PHP</a>. Entonces crearemos un script para mostrar la equivalencia entre el Dolares Americanos (USD) y Nuevos Soles (PEN).</p><p>Primero incluimos la librería <em>JSON.php</em> luego utilizamos la función <em>file_get_contents</em> para obtener los datos desde el URL donde hemos puesto los códigos de las monedas a convertir. Después decodificamos el contenido.</p><div class="syntax_hilite"><div id="php-56"><div class="php"><ol><li style="color:#3A6A8B;"><div style=""><span style="color:#616100;">require_once</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"JSON.php"</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#0000FF;">$path</span> = <span style="color:#FF0000;">"http://www.google.com/ig/calculator?hl=en&amp;q=1USD%3D%3FPEN"</span>;</div></li><li style="color:#3A6A8B;"><div style=""><span style="color:#0000FF;">$data</span> = <a href="http://www.php.net/file_get_contents"><span style="color:#000066;">file_get_contents</span></a><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$path</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style="">&nbsp;</div></li><li style="color:#3A6A8B;"><div style=""><span style="color:#0000FF;">$json</span> = <span style="color:#000000;">new</span> Services_JSON<span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#0000FF;">$obj</span> = <span style="color:#0000FF;">$json</span>-&gt;<span style="color:#006600;">decode</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$data</span><span style="color:#006600;">&#41;</span>;</div></li></ol></div></div></div><p></p><p>Una vez obtenido los valores solo queda imprimir los resultados en nuestra página.</p><div class="syntax_hilite"><div id="html-57"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/h2.html"><span style="color: #000000;">&lt;h2&gt;</span></a></span>Currency Converter<span style="color: #009900;"><span style="color: #000000;">&lt;/h2&gt;</span></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/strong.html"><span style="color: #000000;">&lt;strong&gt;</span></a></span>From:<span style="color: #009900;"><span style="color: #000000;">&lt;/strong&gt;</span></span> <span style="color: #009900;"><span style="color: #000000;">&lt;</span></a>?php echo $obj-<span style="color: #000000;">&gt;</span></a></span>lhs; ?&gt;<span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000;">&lt;br</span></a> /<span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/strong.html"><span style="color: #000000;">&lt;strong&gt;</span></a></span>To:<span style="color: #009900;"><span style="color: #000000;">&lt;/strong&gt;</span></span> <span style="color: #009900;"><span style="color: #000000;">&lt;</span></a>?php echo $obj-<span style="color: #000000;">&gt;</span></a></span>rhs; ?&gt;</div></li></ol></div></div></div><p></p><p>Pueden ver el resultado de este ejemplo en <a href="http://samples.unijimpe.net/currency/">http://samples.unijimpe.net/currency/</a>.</p><p><strong>Conversor de Monedas Personalizado</strong></p><p>Ahora si deseamos que el usuario seleccione que moneda desea convertir, se puede agregar dos selectores: uno para seleccionar la moneda de origen al cual llamaremos <em>from</em> y otro para definir la moneda de destino llamado <em>to</em>. Luego solo nos queda procesar los datos del formulario y mostrar los resultados.</p><div class="syntax_hilite"><div id="php-58"><div class="php"><ol><li style="color:#3A6A8B;"><div style=""><span style="color:#616100;">if</span> <span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$_POST</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'from'</span><span style="color:#006600;">&#93;</span> != <span style="color:#FF0000;">""</span> &amp;&amp; <span style="color:#0000FF;">$_POST</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'to'</span><span style="color:#006600;">&#93;</span> != <span style="color:#FF0000;">""</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$from</span> = <span style="color:#0000FF;">$_POST</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'from'</span><span style="color:#006600;">&#93;</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$to</span> = <span style="color:#0000FF;">$_POST</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'to'</span><span style="color:#006600;">&#93;</span>;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$path</span> = <span style="color:#FF0000;">"http://www.google.com/ig/calculator?hl=en&amp;q=1"</span>.<span style="color:#0000FF;">$from</span>.<span style="color:#FF0000;">"=?"</span>.<span style="color:#0000FF;">$to</span>;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$data</span> = <a href="http://www.php.net/file_get_contents"><span style="color:#000066;">file_get_contents</span></a><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$path</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$json</span> = <span style="color:#000000;">new</span> Services_JSON<span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$obj</span> = <span style="color:#0000FF;">$json</span>-&gt;<span style="color:#006600;">decode</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$data</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style="">&nbsp;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#FF0000;">"&lt;strong&gt;1 "</span>.<span style="color:#0000FF;">$from</span>.<span style="color:#FF0000;">" = "</span>.<span style="color:#0000FF;">$obj</span>-&gt;<span style="color:#006600;">rhs</span>.<span style="color:#FF0000;">"&lt;/strong&gt;"</span>;</div></li><li style="color:#26536A;"><div style="">&nbsp;<span style="color:#006600;">&#125;</span></div></li></ol></div></div></div><p></p><p>A nuestro segundo ejemplo le agregamos una hoja de estilos y ordenamos nuestro formulario para obtener un buen resultado. Pueden ver el resultado del ejemplo en <a href="http://samples.unijimpe.net/currency/custom.php">http://samples.unijimpe.net/currency/custom.php</a>.</p><p>Como pueden ver basado en nuestro conocimiento de JSON con PHP podemos utilizar un servicio para integrarlo a nuestra de manera rápida. Les dejo los archivos fuente del ejemplo para que lo puedan estudiar y hacer sus pruebas.</p><p style="text-align:left;"><a href="http://blog.unijimpe.net/download/currency.zip" title="Currency Converter"><img src="http://blog.unijimpe.net/btdown.png" border="0"></a></p><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br /> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/unijimpe?a=qSHOJ5p_5WQ:42h6PdM4flY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/unijimpe?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=qSHOJ5p_5WQ:42h6PdM4flY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=qSHOJ5p_5WQ:42h6PdM4flY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=qSHOJ5p_5WQ:42h6PdM4flY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=qSHOJ5p_5WQ:42h6PdM4flY:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unijimpe/~4/qSHOJ5p_5WQ" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.unijimpe.net/convertir-monedas-con-php-y-google-finance/feed/</wfw:commentRss> <slash:comments>6</slash:comments> <feedburner:origLink>http://blog.unijimpe.net/convertir-monedas-con-php-y-google-finance/</feedburner:origLink></item> <item><title>Utilizar Eventos en Javascript</title><link>http://feedproxy.google.com/~r/unijimpe/~3/kFP54grFx4c/</link> <comments>http://blog.unijimpe.net/utilizar-eventos-en-javascript/#comments</comments> <pubDate>Sun, 27 Jun 2010 23:07:28 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[Javascript]]></category> <category><![CDATA[alert]]></category> <category><![CDATA[eventos]]></category> <category><![CDATA[formulario]]></category> <category><![CDATA[funciones]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1200</guid> <description><![CDATA[<p>Un evento es un proceso que se realiza en respuesta a determinada acción realizada por el usuario, por ejemplo si el usuario presiona un botón, entonces en respuesta al evento '<em>onclick</em>' que representa el presionar el botón realizamos una acción. Para poder interactuar con los eventos se utilizan los Detectores de Eventos lo cuales detectan los&#8230;</p>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/jRr-O9pCFSE2p0Kbp90ry9CRuMs/0/da"><img src="http://feedads.g.doubleclick.net/~a/jRr-O9pCFSE2p0Kbp90ry9CRuMs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/jRr-O9pCFSE2p0Kbp90ry9CRuMs/1/da"><img src="http://feedads.g.doubleclick.net/~a/jRr-O9pCFSE2p0Kbp90ry9CRuMs/1/di" border="0" ismap="true"></img></a></p><p>Un evento es un proceso que se realiza en respuesta a determinada acción realizada por el usuario, por ejemplo si el usuario presiona un botón, entonces en respuesta al evento '<em>onclick</em>' que representa el presionar el botón realizamos una acción. Para poder interactuar con los eventos se utilizan los Detectores de Eventos lo cuales detectan los eventos y permiten llamar a funciones en respuesta al evento.</p><h3>Cuales son los Detectores de Eventos Disponibles?</h3><p>Existen eventos para los diferentes elementos de la página, los mas importantes son los siguientes:</p><p><strong>Eventos de Formularios</strong></p><ul><li><strong>onblur</strong> - el campo pierde el foco.</li><li><strong>onchange</strong> - el elemento que tiene el foco ha cambiado su valor.</li><li><strong>onfocus</strong> -  cuando el campo recibe el foco.</li><li><strong>onreset</strong> - sucede cuando el usuario ha reseteado el formulario.</li><li><strong>onselect</strong> - cuando un texto ha sido seleccionado.</li><li><strong>onsubmit</strong> - el usuario ha seleccionado enviar el formulario.</li></ul><p><strong>Eventos de Enlaces</strong></p><ul><li><strong>onclick</strong> - Cuando se hace click en el elemento seleccionado.</li><li><strong>onmouseout</strong> - Cuando el mouse se mueve encima del enlace o botón.</li><li><strong>onmouseover</strong> - Cuando el mouse se mueve fuera del enlace o botón.</li></ul><p><strong>Eventos del Teclado</strong></p><ul><li><strong>onkeydown</strong> El usuario presiona una tecla.</li><li><strong>onkeypress</strong> El usuario mantiene presionada una tecla.</li><li><strong>onkeyup</strong> El usuario suelta la tecla.</li></ul><p><strong>Eventos en Ventanas</strong></p><ul><li><strong>onblur</strong> - Sucede cuando la ventana o frame pierde el foco.</li><li><strong>onerror</strong> - Cuando ocurre un error.</li><li><strong>onfocus</strong> -  La ventana o frame recibe el foco.</li><li><strong>onload</strong> - Si el objeto se ha cargado completamente.</li><li><strong>onunload</strong> - Cuando la venta se cierra.</li><li><strong>onresize</strong> - Cuando se redimensiona la ventana o frame.</li></ul><p><strong>Nota</strong><br /> Si bien es cierto HTML es <em>case-insensitive</em> es decir no distingue entre altas y bajas, para lograr que los documentos  html validen es necesario redactar los detectores de eventos en minúsculas.</p><h3>Como se utilizan los Detectores de Eventos?</h3><p>Los detectores de eventos se puedes asociar directamente a cada elemento como si fuera una propiedad adicional, además debemos colocar que acción realizar cuando se detecte el evento.</p><p><strong>Primera Forma</strong></p><p>Se puede hacer que ejecute una serie de acciones en Javacript:</p><div class="syntax_hilite"><div id="html-65"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"link.html"</span> <span style="color: #000066;">onclick</span>=<span style="color: #ff0000;">"alert('Bienvenido!!');"</span><span style="color: #000000;">&gt;</span></a></span>Entrar<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li></ol></div></div></div><p></p><p><strong>Segunda Forma</strong></p><p>También podemos hacer que llame a una función definida por el usuario:</p><div class="syntax_hilite"><div id="html-66"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"link.html"</span> <span style="color: #000066;">onclick</span>=<span style="color: #ff0000;">"welcome();"</span><span style="color: #000000;">&gt;</span></a></span>Entrar<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li></ol></div></div></div><p></p><p>En este caso estamos llamando a una función llamada <em>welcome</em> la cual debemos definir:</p><div class="syntax_hilite"><div id="html-67"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#26536A;"><div style="">function welcome() {</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp;alert('Welcome!!!');</div></li><li style="color:#26536A;"><div style="">}</div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li></ol></div></div></div><p></p><p>En el ejemplo solo hemos mostrado un mensaje de alerta dando la bienvenida al usuario. Obviamente podríamos realizar múltiples acciones como validación de formulario, formateo de datos o llamar a datos AJAX.</p><p><strong>Tercera Forma</strong></p><p>Otra forma es asignar los eventos como métodos de los elementos Javascript. Para ello necesitamos asignar identificadores a los elementos que deseamos.</p><div class="syntax_hilite"><div id="html-68"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"link.html"</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"bt"</span><span style="color: #000000;">&gt;</span></a></span>Entrar<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li></ol></div></div></div><p></p><p>Luego podemos agregar los eventos como propiedades del elemento Javascript (Hay que tener en cuenta que en esta forma los nombres de los detectores de eventos deben estar todos en minúsculas.</p><div class="syntax_hilite"><div id="html-69"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#26536A;"><div style="">document.getElementById(&quot;bt&quot;).onclick = function () {</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; alert(&quot;Welcome!!!&quot;);&nbsp; &nbsp;</div></li><li style="color:#26536A;"><div style="">}</div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li></ol></div></div></div><p></p><p><strong>Cuarta Forma</strong></p><p>Otra forma de crear los detectores de eventos es haciendo uso de listeners, para ello se utiliza la función <em>addEventListener</em> de Javascript, el cual recibe como parámetros el nombre del evento (Sin en prefijo <em>on</em>) y la función a ejecutar. Para nuestro ejemplo se tendría:</p><div class="syntax_hilite"><div id="html-70"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#26536A;"><div style="">document.getElementById(&quot;bt&quot;).addEventListener('click', welcome, false);</div></li><li style="color:#3A6A8B;"><div style="">function welcome() {</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; alert(&quot;Welcome!!!&quot;);&nbsp; &nbsp;</div></li><li style="color:#3A6A8B;"><div style="">}</div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li></ol></div></div></div><p></p><p>Como se puede ver utilizamos el evento <em>onclick</em> pero sin el prefijo lo que significa utilizar la palabra '<em>click</em>'.</p><p>Con estas dos ultimas formas de asignar los detectores de eventos podemos separar el código HTML del Javascript con lo cual es mas sencillo dar el mantenimiento a nuestro código. Incluso la asignación de los eventos lo podríamos hacer en un archivo externo.</p><p>Pueden ver los ejemplos de este post en <a href="http://samples.unijimpe.net/eventos-javascript.html">http://samples.unijimpe.net/eventos-javascript.html</a>.</p><p><strong>Mas Información</strong></p><ul><li><a href="http://www.quirksmode.org/js/introevents.html">Introduction to Events</a></li><li><a href="http://www.javascriptkit.com/jsref/event.shtml">Javascript Event Object</a></li><li><a href="http://www.quirksmode.org/js/events_advanced.html">Advanced event registration models</a></li><li><a href="http://www.comptechdoc.org/independent/web/cgi/javamanual/javaevents.html">JavaScript Events</a></li></ul><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br /> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/unijimpe?a=kFP54grFx4c:wtgiSJbQ-nU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/unijimpe?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=kFP54grFx4c:wtgiSJbQ-nU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=kFP54grFx4c:wtgiSJbQ-nU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/unijimpe?a=kFP54grFx4c:wtgiSJbQ-nU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/unijimpe?i=kFP54grFx4c:wtgiSJbQ-nU:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unijimpe/~4/kFP54grFx4c" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.unijimpe.net/utilizar-eventos-en-javascript/feed/</wfw:commentRss> <slash:comments>7</slash:comments> <feedburner:origLink>http://blog.unijimpe.net/utilizar-eventos-en-javascript/</feedburner:origLink></item> </channel> </rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)
Database Caching 65/77 queries in 0.941 seconds using disk

Served from: blog.unijimpe.net @ 2010-09-06 08:48:20 -->
