<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Blog Pedro Ventura</title>
	<atom:link href="http://www.pedroventura.com/blog_programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pedroventura.com/blog_programacion</link>
	<description>Éste es mi portafolio personal y profesional.</description>
	<pubDate>Fri, 19 Dec 2008 17:02:57 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Como sincronizar archivos y directorios en un Apache</title>
		<link>http://www.pedroventura.com/blog_programacion/2008/12/19/como-sincronizar-archivos-y-directorios-en-un-apache/</link>
		<comments>http://www.pedroventura.com/blog_programacion/2008/12/19/como-sincronizar-archivos-y-directorios-en-un-apache/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 16:59:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Apache]]></category>

		<category><![CDATA[Unix]]></category>

		<category><![CDATA[archivos]]></category>

		<category><![CDATA[carpetas]]></category>

		<category><![CDATA[Cron]]></category>

		<category><![CDATA[cronjob]]></category>

		<category><![CDATA[Crontab]]></category>

		<category><![CDATA[directorios]]></category>

		<category><![CDATA[job]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[Rsync]]></category>

		<category><![CDATA[servidor]]></category>

		<category><![CDATA[sincronización]]></category>

		<category><![CDATA[sincronizar]]></category>

		<guid isPermaLink="false">http://www.pedroventura.com/blog_programacion/?p=20</guid>
		<description><![CDATA[En este post voy a comentar lo que he aprendido del comando Rsyn.
El caso es que necesitaba sincronizar el contenido de una carpeta tanto los directorios como los archivos a otra carpeta. Esto es un buen método para sincronizar el contenido que tienes en una carpeta de desarrollo y clonarlo en una carpeta de produccion, [...]]]></description>
			<content:encoded><![CDATA[<p>En este post voy a comentar lo que he aprendido del comando Rsyn.</p>
<p>El caso es que necesitaba sincronizar el contenido de una carpeta tanto los directorios como los archivos a otra carpeta. Esto es un buen método para sincronizar el contenido que tienes en una carpeta de desarrollo y clonarlo en una carpeta de produccion, es decir, una carpeta que contenia todos los archivos que los usuarios estaban viendo.</p>
<p>Ahora bien, como hacer? Ir copiando archivo por archivo? pues no, para ello tenemos el comando de Unix 
<a title="Rync en Wikipedia"  href="http://es.wikipedia.org/wiki/Rsync" target="_blank" onclick="javascript:pageTracker._trackPageview('/external/es.wikipedia.org/wiki/Rsync');" >Rsync</a>.</p>
<p>Indico EXPLICITAMENTE de 
<a title="Wikipedia"  href="http://es.wikipedia.org/wiki/Wikipedia:Portada" target="_blank" onclick="javascript:pageTracker._trackPageview('/external/es.wikipedia.org/wiki/Wikipedia:Portada');" >wikipedia</a>: <strong>Rysnc </strong>es una aplicación para sistemas de tipo 
<a title="Unix"  href="http://es.wikipedia.org/wiki/Unix" onclick="javascript:pageTracker._trackPageview('/external/es.wikipedia.org/wiki/Unix');" >Unix</a> que ofrece transmisión eficiente de datos incrementales 
<a title="Compresión de datos"  href="http://es.wikipedia.org/wiki/Compresi%C3%B3n_de_datos" onclick="javascript:pageTracker._trackPageview('/external/es.wikipedia.org/wiki/Compresi%C3%B3n_de_datos');" >comprimidos</a> y 
<a title="Criptografía"  href="http://es.wikipedia.org/wiki/Criptograf%C3%ADa" onclick="javascript:pageTracker._trackPageview('/external/es.wikipedia.org/wiki/Criptograf%C3%ADa');" >cifrados</a>. Mediante una técnica de 
<a title="Delta encoding"  href="http://es.wikipedia.org/wiki/Delta_encoding" onclick="javascript:pageTracker._trackPageview('/external/es.wikipedia.org/wiki/Delta_encoding');" >delta encoding</a>, permite sincronizar archivos y directorios entre dos máquinas de una red o entre dos ubicaciones en una misma máquina, minimizando el volumen de datos transferidos.</p>
<p>El comando es muy sencillo y para copiar todos los archivos y carpetas tendreis que usar el siguiente comando</p>
<p>rsync -aq /directorio/original/ /directorio/backup/</p>
<p>Si quieres ver una ayuda más amplia de éste comando pudes usar: <strong>man rsync</strong> para ver un listado completo de atributos e usos de éste comando.</p>
<p><strong>Pero lleguemos más lejos!!</strong></p>
<p>Si queremos ejecutar una sincronización periódicamente podemos combinar el comando crontab con lo que hemos aprendido de rsync.</p>
<p>Con crontab lo que hacemos es especificar una serie de cron jobs, o trabajos rutinarios que tiene que ejecutar el apache en funcion del tiempo que especifiquemos de esta manera, si hacemos a editar el cron mediante el comando <strong>crontab -e</strong> e insertamos la siguiente linea:</p>
<p>* */8 * * * rsync -aq /directorio/original/ /directorio/backup/</p>
<p>Configuraremos un cronjob que lo que hace es que cada 8 horas copia el contenido de la carpeta original en la carpeta backup</p>
<p>Si por el contrario insertamos la siguiente linea:</p>
<p>* 8 * * * rsync -aq /directorio/original/ /directorio/backup/</p>
<p>Configuraremos el cronjob para que se ejecute el rsync a las 8.00 horas todos los dias, todos los mes de todos los años.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedroventura.com/blog_programacion/2008/12/19/como-sincronizar-archivos-y-directorios-en-un-apache/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Advernet somos todos</title>
		<link>http://www.pedroventura.com/blog_programacion/2008/11/18/19/</link>
		<comments>http://www.pedroventura.com/blog_programacion/2008/11/18/19/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 22:30:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Miscelaneos]]></category>

		<category><![CDATA[Advernet]]></category>

		<category><![CDATA[contenido]]></category>

		<category><![CDATA[departamento]]></category>

		<category><![CDATA[humor]]></category>

		<category><![CDATA[trabajo]]></category>

		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.pedroventura.com/blog_programacion/2008/11/18/19/</guid>
		<description><![CDATA[Vídeo realizado por los chicos del Dpto. de contenidos de Advernet.


Advernet somos todos from 
Jose on 
Vimeo.
]]></description>
			<content:encoded><![CDATA[<p>Vídeo realizado por los chicos del Dpto. de contenidos de Advernet.<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=1824535&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://vimeo.com/moogaloop.swf?clip_id=1824535&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />

<a  href="http://vimeo.com/1824535" onclick="javascript:pageTracker._trackPageview('/external/vimeo.com/1824535');" >Advernet somos todos</a> from 
<a  href="http://vimeo.com/user787246" onclick="javascript:pageTracker._trackPageview('/external/vimeo.com/user787246');" >Jose</a> on 
<a  href="http://vimeo.com" onclick="javascript:pageTracker._trackPageview('/external/vimeo.com');" >Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedroventura.com/blog_programacion/2008/11/18/19/feed/</wfw:commentRss>
		</item>
		<item>
		<title>instalar un captcha de seguridad</title>
		<link>http://www.pedroventura.com/blog_programacion/2008/11/10/instalar-un-captcha-de-seguridad/</link>
		<comments>http://www.pedroventura.com/blog_programacion/2008/11/10/instalar-un-captcha-de-seguridad/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 22:40:54 +0000</pubDate>
		<dc:creator>PedroVentura</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[anti]]></category>

		<category><![CDATA[antispam]]></category>

		<category><![CDATA[bots]]></category>

		<category><![CDATA[captcha]]></category>

		<category><![CDATA[recaptcha]]></category>

		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://www.pedroventura.com/blog_programacion/?p=18</guid>
		<description><![CDATA[¿Cómo instalar un buen captcha de Seguridad?
 Pasos para implementar reCAPTCHA

http://recaptcha.net/

1.- ¿Qué es reCAPTHCA?
2.- Manual de instalación de reCAPTCHA
3.- Personalizacion del theme




1.- ¿Que es CAPTCHA?


Captcha es el acrónimo de Completely Automated Public Turing test to tell Computers and Humans Apart (Prueba de Turing pública y automática para diferenciar a máquinas y humanos).
Este es un típico [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: large;"><strong><span style="font-size: large;">¿Cómo instalar un buen captcha de Seguridad?</span></strong></span></p>
<p><span style="font-size: large;"><strong><span style="font-size: large;"> Pasos para implementar reCAPTCHA</span></strong></span></p>
<p>
<a title="http://recaptcha.net/"  href="http://recaptcha.net/" target="_blank" onclick="javascript:pageTracker._trackPageview('/external/recaptcha.net/');" >http://recaptcha.net/</a></p>
<p><span style="font-size: large;"><strong><span style="font-size: large;"><br />
<span style="font-size: small;">1.- ¿Qué es reCAPTHCA?<br />
</span></span></strong></span><span style="font-size: large;"><strong><span style="font-size: large;"><span style="font-size: small;">2.- Manual de instalación de reCAPTCHA<br />
3.- Personalizacion del theme<br />
</span></span></strong></span><span style="font-size: large;"><strong><span style="font-size: large;"><br />
</span></strong></span></p>
<p><span style="font-size: large;"><strong><br />
<span style="font-size: medium;">
<a  href="http://es.wikipedia.org/wiki/Captcha" onclick="javascript:pageTracker._trackPageview('/external/es.wikipedia.org/wiki/Captcha');" >1.- ¿Que es CAPTCHA?</a></span></strong></span></p>
<p>
<a  href="http://bp2.blogger.com/_zpjo6lgVmM8/SBeaG43i3tI/AAAAAAAAAsI/ObfrGBB0niI/s1600-h/formulario-tipico.jpg" onclick="javascript:pageTracker._trackPageview('/external/bp2.blogger.com/_zpjo6lgVmM8/SBeaG43i3tI/AAAAAAAAAsI/ObfrGBB0niI/s1600-h/formulario-tipico.jpg');" ><img id="BLOGGER_PHOTO_ID_5194790138330406610" src="http://bp2.blogger.com/_zpjo6lgVmM8/SBeaG43i3tI/AAAAAAAAAsI/ObfrGBB0niI/s400/formulario-tipico.jpg" border="0" alt="" /></a></p>
<p>Captcha es el acrónimo de Completely Automated Public Turing test to tell Computers and Humans Apart (Prueba de Turing pública y automática para diferenciar a máquinas y humanos).</p>
<p>Este es un típico test para la secuencia &#8220;smwm&#8221; que dificulta el reconocimiento de la máquina rotando las letras y añadiendo un gradiente de fondoSe trata de una prueba desafío-respuesta utilizada en computación para determinar cuándo el usuario es o no humano. El término se empezó a utilizar en el año 2000 por Luis von Ahn, Manuel Blum y Nicholas J. Hopper de la Carnegie Mellon University, y John Langford de IBM.</p>
<p>La típica prueba consiste en que el usuario introduzca un conjunto de caracteres que se muestran en una imagen distorsionada que aparece en pantalla. Se supone que una máquina no es capaz de comprender e introducir la secuencia de forma correcta por lo que solamente el humano podría hacerlo (salvo error).</p>
<p>Como el test es controlado por una máquina en lugar de un humano como en la Prueba de Turing, también se denomina Prueba de Turing Inversa.</p>
<p>Los Captchas son utilizados para evitar que robots, también llamados spambots, puedan utilizar ciertos servicios. Por ejemplo, para que no puedan participar en encuestas, registrarse para usar cuentas de correo electrónico (o su uso para envío de correo basura) o, más recientemente, para evitar que correo basura pueda ser enviado por un robot (el remitente debe pasar el test antes de que se entregue al destinatario).</p>
<p><strong>
<a  href="http://recaptcha.net/plugins/php/" onclick="javascript:pageTracker._trackPageview('/external/recaptcha.net/plugins/php/');" >reCAPTCHA</a></strong><br />
<strong>PLUGIN GRATIS ANTI SPAMBOTS</strong></p>
<p>
<a  href="http://bp2.blogger.com/_zpjo6lgVmM8/SBeYg43i3rI/AAAAAAAAAr4/x3KhIkM_cf0/s1600-h/recaptcha.jpg" onclick="javascript:pageTracker._trackPageview('/external/bp2.blogger.com/_zpjo6lgVmM8/SBeYg43i3rI/AAAAAAAAAr4/x3KhIkM_cf0/s1600-h/recaptcha.jpg');" ><img id="BLOGGER_PHOTO_ID_5194788385983749810" src="http://bp2.blogger.com/_zpjo6lgVmM8/SBeYg43i3rI/AAAAAAAAAr4/x3KhIkM_cf0/s400/recaptcha.jpg" border="0" alt="" /></a></p>
<p>Existen tres formas de uso reCAPTCHA: mediante un plugin de aplicación, utilizando una biblioteca para su lenguaje de programación, y el uso de la web basados en la API. Los siguientes recursos le ayudará a encontrar el método correcto para su entorno.</p>
<p><strong>Cliente API</strong><br />
El cliente API guía describe cómo personalizar el comportamiento de la reCAPTCHA widget en su sitio. Esta guía se aplica a todos los plugins.<br />
Entorno de programación plugins<br />
•
<a  href="http://recaptcha.net/plugins/php/" onclick="javascript:pageTracker._trackPageview('/external/recaptcha.net/plugins/php/');" >PHP </a><br />
•
<a  href="http://recaptcha.net/plugins/aspnet/" onclick="javascript:pageTracker._trackPageview('/external/recaptcha.net/plugins/aspnet/');" >ASP.NET</a><br />
•Classic ASP: véase este 
<a  href="http://groups.google.com/group/recaptcha/msg/187b6f7a32f4cbe4" onclick="javascript:pageTracker._trackPageview('/external/groups.google.com/group/recaptcha/msg/187b6f7a32f4cbe4');" >foro</a><br />
•
<a  href="http://python.org/pypi/recaptcha-client" onclick="javascript:pageTracker._trackPageview('/external/python.org/pypi/recaptcha-client');" >Python </a>•Perl (aportados por Andy Armstrong)<br />
•
<a  href="http://www.loonsoft.com/recaptcha/" onclick="javascript:pageTracker._trackPageview('/external/www.loonsoft.com/recaptcha/');" >Ruby</a> (aportados por McClain Looney)<br />
•Otro 
<a  href="http://svn.ambethia.com/pub/rails/plugins/recaptcha/" onclick="javascript:pageTracker._trackPageview('/external/svn.ambethia.com/pub/rails/plugins/recaptcha/');" >Ruby</a> biblioteca de Jason Perry L<br />
•
<a  href="http://code.google.com/p/recaptcha/downloads/list?q=label:java-Latest" onclick="javascript:pageTracker._trackPageview('/external/code.google.com/p/recaptcha/downloads/list');" >Java</a> (aportados por Soren)<br />
•
<a  href="http://recaptcha.riaforge.org/" onclick="javascript:pageTracker._trackPageview('/external/recaptcha.riaforge.org/');" >ColdFusion</a> (aportados por Robin Hilliard)</p>
<p><strong>Aplicación complementos </strong><br />
•
<a  href="http://recaptcha.net/plugins/wordpress/" onclick="javascript:pageTracker._trackPageview('/external/recaptcha.net/plugins/wordpress/');" >WordPress </a><br />
•
<a  href="http://recaptcha.net/plugins/mediawiki/" onclick="javascript:pageTracker._trackPageview('/external/recaptcha.net/plugins/mediawiki/');" >MediaWiki</a><br />
•
<a  href="http://recaptcha.net/plugins/phpbb/" onclick="javascript:pageTracker._trackPageview('/external/recaptcha.net/plugins/phpbb/');" >phpBB</a><br />
•Movable Type (aportados por Josh Carter)<br />
•
<a  href="http://drupal.org/project/recaptcha" onclick="javascript:pageTracker._trackPageview('/external/drupal.org/project/recaptcha');" >Drupal</a> (aportados por Rob Loach)<br />
•
<a  href="http://trac.symfony-project.com/trac/wiki/sfReCaptchaPlugin" onclick="javascript:pageTracker._trackPageview('/external/trac.symfony-project.com/trac/wiki/sfReCaptchaPlugin');" >Symfony</a> (aportado por Arthur Koziel)<br />
•
<a  href="http://typo3.org/extensions/repository/view/jm_recaptcha/" onclick="javascript:pageTracker._trackPageview('/external/typo3.org/extensions/repository/view/jm_recaptcha/');" >Typo3</a> (aportados por Jens Mittag. Véase también el ejemplo de utilizar el plugin)<br />
•
<a  href="http://lordmatt.co.uk/item/812/" onclick="javascript:pageTracker._trackPageview('/external/lordmatt.co.uk/item/812/');" >NucleusCMS</a> (aportados por Matt)<br />
•
<a  href="http://www.vbulletin.org/forum/showthread.php?t=151824" onclick="javascript:pageTracker._trackPageview('/external/www.vbulletin.org/forum/showthread.php');" >vBulletin</a> (aportados por Magnus)<br />
•
<a  href="http://extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,2866/Itemid,35/" onclick="javascript:pageTracker._trackPageview('/external/extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,2866/Itemid,35/');" >Joomla</a> (aportados por Robert van den Breemen)<br />
•
<a  href="http://code.google.com/p/mailhide-tag/" onclick="javascript:pageTracker._trackPageview('/external/code.google.com/p/mailhide-tag/');" >Mailhide JSP</a> (por Tamas Magyar)</p>
<p><strong>Documentación API </strong><br />
Estos documentos describen el bajo nivel 
<a  href="http://recaptcha.net/apidocs/captcha/" onclick="javascript:pageTracker._trackPageview('/external/recaptcha.net/apidocs/captcha/');" >reCAPTCHA API</a>.  Usted debe de referencia estos documentos si está creando un nuevo plugin</p>
<p><strong>Comunidad </strong><br />

<a  href="http://209.85.171.104/translate_c?hl=es&amp;langpair=en%7Ces&amp;u=http://groups.google.com/group/recaptcha/topics" onclick="javascript:pageTracker._trackPageview('/external/209.85.171.104/translate_c');" >reCAPTCHA Foro</a>: un lugar donde usted puede hacer preguntas sobre reCAPTCHA y complementos</p>
<p>
<a  href="http://209.85.171.104/translate_c?hl=es&amp;langpair=en%7Ces&amp;u=http://wiki.recaptcha.net/" onclick="javascript:pageTracker._trackPageview('/external/209.85.171.104/translate_c');" >reCAPTCHA Wiki</a>: un lugar para publicar cualquier información relacionada con la reCAPTCHA</p>
<p>
<a  href="http://209.85.171.104/translate_c?hl=es&amp;langpair=en%7Ces&amp;u=http://code.google.com/p/recaptcha/" onclick="javascript:pageTracker._trackPageview('/external/209.85.171.104/translate_c');" >reCAPTCHA en Google Code</a>: muchos plugins que se desarrollan.  Pregúntele a nosotros para acceder a ellos.</p>
<p><strong> <span style="font-size: large;">2.- MANUAL DE INSTALACION reCAPTCHA</span></strong></p>
<p><strong>Paso 1: Registrarse en reCAPTCHA</strong></p>
<p>Nos tenemos que dirigir a 
<a  href="http://recaptcha.net/" target="_blank" onclick="javascript:pageTracker._trackPageview('/external/recaptcha.net/');" >http://recaptcha.net/</a> y registrarnos como usuarios. Nos solicitarán unos pocos datos personales para darnos de alta.</p>
<p>Una vez registrados debemos obtener unas claves para utilizar el sistema de captcha. Estas claves son específicas para cada dominio donde quieras utilizarlo. Las claves no son más que una llave pública y otra privada, que utilizaremos luego para poner la captcha en nuestra web.</p>
<p>Son algo como esto:</p>
<p>Public Key: 5LfCABCDEFGHIJUNDSBOejHq-5n5StSWawBpCAMX<br />
Private Key: 6LfCAAAFHJSDFGHHJHDeju3a-Z5lomjShHKaGh9g</p>
<p>Esas claves son, lógicamente, secretas y debemos mantenerlas así. Las claves anteriores son de ejemplo.</p>
<p>En el sitio de reCAPTCHA tendremos que descargarnos unos códigos PHP con una librería PHP para poner en nuestro servidor y unos ejemplos de uso del sistema. Esto lo podemos conseguir en el apartado &#8220;Resources&#8221;. Veremos que tienen un plugin o librería para trabajar con PHP, que además está perfectamente documentado.</p>
<p>Una vez descargado el zip que contiene la librería PHP, la tenemos que poner en algún lugar de nuestro servidor. Recuerda luego donde la has puesto, porque tendrás que hacer un include con PHP de esa librería.</p>
<p>Por ejemplo, podríamos colocar dicha librería en el mismo directorio donde está la página PHP que va a hacer uso de ella. Entonces la incluiríamos con algo como esto:</p>
<p>require_once(&#8217;recaptchalib.php&#8217;);</p>
<p><strong>Paso 2: Incluir el captcha en el formulario</strong></p>
<p>En la librería descargada (&#8217;recaptchalib.php&#8217;) Hay una función que sirve para mostrar la captcha. Simplemente tenemos que llamarla con los parámetros correctos. La función devuelve el código HTML que tenemos que colocar en la página para que se vea la captcha.</p>
<p>recaptcha_get_html($captcha_publickey, $error_captcha);</p>
<p>Los parámetros que recibe son la llave pública que conseguimos anteriormente y un código de error, que es opcional. Luego veremos de dónde podría venir ese código de error.</p>
<p>El código del formulario sería algo como esto:</p>
<p><span class="codigo"><br />
&lt;?<br />
require_once(&#8217;recaptchalib.php&#8217;);<br />
//Llaves de la captcha<br />
$captcha_publickey = &#8220;6LfC?.&#8221;;<br />
$captcha_privatekey = &#8220;6LfC? &#8220;;<br />
//por ahora ponemos a null el error de la captcha<br />
$error_captcha=null;<br />
?&gt;</span></p>
<p>&lt;form action=&#8221;miejemplo_formulario.php&#8221; method=&#8221;post&#8221;&gt;<br />
Nombre: &lt;input type=&#8221;text&#8221; name=&#8221;nombre&#8221; size=&#8221;30&#8243;&gt;<br />
&lt;br&gt;<br />
Edad: &lt;input type=&#8221;text&#8221; name=&#8221;edad&#8221; size=&#8221;3&#8243;&gt;<br />
&lt;br&gt;<br />
&lt;?<br />
//escribimos en la página lo que nos devuelve recaptcha_get_html()<br />
echo recaptcha_get_html($captcha_publickey, $error_captcha);<br />
?&gt;<br />
&lt;br&gt;<br />
&lt;input type=&#8221;submit&#8221; value=&#8221;Enviar&#8221;&gt;<br />
&lt;/form&gt;</p>
<p><strong>Paso 3: Validar la captcha</strong></p>
<p>Existe otra función para validar la captcha, llamada recaptcha_check_answer(). Esta función recibe también varios parámetros: La llave privada, la IP del usuario, y dos campos que contienen los valores que envía la captcha dentro del formulario $_POST["recaptcha_challenge_field"] y $_POST["recaptcha_response_field"].</p>
<p>Esta función devuelve un objeto que tiene dos propiedades:</p>
<p>is_valid, un boleano para decir si es se ha validado correctamente la captcha. error, un código de error que especifica qué ha ido mal si no se validó correctamente el texto.</p>
<p>Podríamos validar la captcha con algo como esto:</p>
<p><span class="codigo"><br />
$captcha_respuesta = recaptcha_check_answer ($captcha_privatekey,<br />
$_SERVER["REMOTE_ADDR"],<br />
$_POST["recaptcha_challenge_field"],<br />
$_POST["recaptcha_response_field"]);<br />
if ($captcha_respuesta-&gt;is_valid) {<br />
//todo correcto<br />
//hacemos lo que se deba hacer una vez recibido el formulario válido<br />
}else{<br />
//El código de validación de la imagen está mal escrito.<br />
$error_captcha = $captcha_respuesta-&gt;error;<br />
}<br />
</span><br />
Llamamos a la función recaptcha_check_answer() enviando los parámetros comentados y guardamos el valor devuelto por la función en la variable $captcha_respuesta.</p>
<p>Luego comprobamos si el atributo $captcha_respuesta-&gt;is_valid es true. En ese caso sabemos que el texto escrito de la imagen se ha validado correctamente y hacemos lo que haya que hacer en el formulario.</p>
<p>Si $captcha_respuesta-&gt;is_valid era falso, entonces quiere decir que no estaba bien escrito el texto de la imagen. Podemos entonces actualizar la variable $error_captcha para que cuando mostremos de nuevo la captcha podamos pasarle el error generado y que avise al usuario.</p>
<p>Tenemos nuestra captcha funcionando!</p>
<p>El código completo de este ejemplo es el siguiente:</p>
<p><span class="codigo"><br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;Página con formulario protegido por captcha&lt;/title&gt;<br />
&lt;/head&gt;</span></p>
<p>&lt;body&gt;<br />
&lt;?<br />
require_once(&#8217;recaptchalib.php&#8217;);<br />
//Llaves de la captcha<br />
$captcha_publickey = &#8220;6LfC?.&#8221;;<br />
$captcha_privatekey = &#8220;6LfC? &#8220;;<br />
$error_captcha=null;</p>
<p>if ($_POST){<br />
$captcha_respuesta = recaptcha_check_answer ($captcha_privatekey,<br />
$_SERVER["REMOTE_ADDR"],<br />
$_POST["recaptcha_challenge_field"],<br />
$_POST["recaptcha_response_field"]);<br />
if ($captcha_respuesta-&gt;is_valid) {<br />
//todo correcto<br />
//hacemos lo que se deba hacer una vez recibido el formulario válido<br />
echo &#8220;Todo correcto!&#8221;;<br />
}else{<br />
//El código de validación de la imagen está mal escrito.<br />
echo &#8220;Has escrito mal el texto&#8221;;<br />
$error_captcha = $captcha_respuesta-&gt;error;<br />
}<br />
}<br />
?&gt;</p>
<p>&lt;form action=&#8221;miejemplo_formulario.php&#8221; method=&#8221;post&#8221;&gt;<br />
Nombre: &lt;input type=&#8221;text&#8221; name=&#8221;nombre&#8221; size=&#8221;30&#8243;&gt;<br />
&lt;br&gt;<br />
Edad: &lt;input type=&#8221;text&#8221; name=&#8221;edad&#8221; size=&#8221;3&#8243;&gt;<br />
&lt;br&gt;<br />
&lt;?<br />
//escribimos en la página lo que nos devuelve recaptcha_get_html()<br />
echo recaptcha_get_html($captcha_publickey, $error_captcha);<br />
?&gt;<br />
&lt;br&gt;<br />
&lt;input type=&#8221;submit&#8221; value=&#8221;Enviar&#8221;&gt;<br />
&lt;/form&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p><span style="font-size: large;">3.-PERSONALIZACION DEL THEME</span></p>
<p class="MsoNormal"><span style="font-family: Verdana; color: black; font-size: small;"><span style="font-size: small;"><br />
</span></span></p>
<p class="MsoNormal"><span style="font-family: Verdana; color: black; font-size: small;"><span style="font-size: small;"> lo importante son la configuración inicial mediante la variable RecaptchaOptions, las funciones de javascript para las distintas acciones(Recaptcha.reload(), Recaptcha.switch_type(&#8217;audio&#8217;), Recaptcha.showhelp()), el id del div donde va el captcha (recaptcha_image) y el input donde se escribe el captcha (&lt;input type=&#8221;text&#8221; id=&#8221;recaptcha_response_field&#8221; name=&#8221;recaptcha_response_field&#8221; /&gt;).</span></span></p>
<p>&lt;?php<br />
require_once(&#8217;recaptchalib.php&#8217;);</p>
<p>$captcha_publickey = &#8220;xxxxx&#8221;;<br />
$captcha_privatekey = &#8220;yyyyy&#8221;;</p>
<p>$error_captcha = null;<br />
?&gt;<br />
<strong><strong>&lt;script&gt;<br />
var RecaptchaOptions = {<br />
theme: &#8216;custom&#8217;,<br />
lang: &#8216;es&#8217;,<br />
custom_theme_widget: &#8216;frm_recpatcha&#8217;<br />
};<br />
&lt;/script&gt;</strong></strong><br />
<span style="font-size: small;"> &lt;div class=&#8221;</span><strong><strong>frm_recpatcha</strong></strong><span style="font-size: small;">&#8220;&gt;<br />
&lt;h6&gt;Comprobación de seguridad:&lt;/h6&gt;<br />
&lt;p&gt;Introduce las palabras que aparecen abajo separadas por un espacio&lt;/p&gt;</span></p>
<p>&lt;p&gt;¿No puedes leerlas?&lt;br /&gt;<br />
Prueba con &lt;a href=&#8221;javascript:Recaptcha.reload()&#8221;<span style="font-size: small;">&gt;diferentes palabras&lt;/a&gt; y un &lt;a href=</span>&#8220;javascript:Recaptcha.switch_type(&#8217;audio&#8217;)&#8221;<span style="font-size: small;">&gt;audio<br />
de captcha&lt;/a&gt;&lt;/p&gt;<br />
&lt;div class=&#8221;frm_recaptcha_img&#8221; id=&#8221;</span><strong><strong>recaptcha_image</strong></strong><span style="font-size: small;">&#8220;&gt;&lt;img src=&#8221;/img/recaptcha.gif&#8221; alt=&#8221;RECAPTCHA&#8221; /&gt;&lt;/div&gt;<br />
&lt;a href=&#8221;javascript:</span><strong><strong>Recaptcha.reload()</strong></strong><span style="font-size: small;">&#8221; class=&#8221;ico_recaptcha&#8221;&gt;&lt;img src=&#8221;/img/recaptcha_recargar.gif&#8221; alt=&#8221;" /&gt;Recargar&lt;/a&gt;<br />
&lt;a href=&#8221;javascript:</span><strong><strong>Recaptcha.switch_type(&#8217;audio&#8217;)</strong></strong><span style="font-size: small;">&#8221; class=&#8221;ico_recaptcha&#8221;&gt;&lt;img src=&#8221;/img/recaptcha_audio.gif&#8221; alt=&#8221;" /&gt;Audio&lt;/a&gt;<br />
&lt;a href=&#8221;javascript:</span><strong><strong>Recaptcha.showhelp()</strong></strong><span style="font-size: small;">&#8221; class=&#8221;ico_recaptcha&#8221;&gt;&lt;img src=&#8221;/img/recaptcha_ayuda.gif&#8221; alt=&#8221;" /&gt;Ayuda&lt;/a&gt;</span></p>
<p>&lt;div class=&#8221;clear&#8221;&gt;&lt;/div&gt;<br />
&lt;p class=&#8221;frm_coment_input2&#8243;&gt;<br />
&lt;label for=&#8221;recaptcha_response_field&#8221;&gt;Texto de la imagen<br />
<strong><strong>&lt;input type=&#8221;text&#8221; id=&#8221;recaptcha_response_field&#8221; name=&#8221;recaptcha_response_field&#8221; /&gt;</strong></strong><br />
<span style="font-size: small;"> &lt;/label&gt;<br />
&lt;/p&gt;<br />
&lt;?php<br />
echo recaptcha_get_html($captcha_publickey, $error_captcha);<br />
?&gt;<br />
&lt;/div&gt;</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedroventura.com/blog_programacion/2008/11/10/instalar-un-captcha-de-seguridad/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Parseando XML con PHP. Lo más fácil y simple</title>
		<link>http://www.pedroventura.com/blog_programacion/2008/08/28/parseando-xml-con-php-lo-mas-facil-y-simple/</link>
		<comments>http://www.pedroventura.com/blog_programacion/2008/08/28/parseando-xml-con-php-lo-mas-facil-y-simple/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 22:26:21 +0000</pubDate>
		<dc:creator>PedroVentura</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[modo]]></category>

		<category><![CDATA[parser]]></category>

		<category><![CDATA[RSS]]></category>

		<category><![CDATA[simple]]></category>

		<category><![CDATA[simpleXML]]></category>

		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.pedroventura.com/blog_programacion/?p=17</guid>
		<description><![CDATA[Una de las maneras más simples de parsear los datos de un xml es usar la función de php simpleXML que viene integrada con el apache, por lo que su uso se hace incluso más fácil aún.
La versión del xml tiene que ser la 1.0, ya que he estado haciendo pruebas con la versión 2.0 [...]]]></description>
			<content:encoded><![CDATA[<p>Una de las maneras más simples de parsear los datos de un xml es usar la función de php simpleXML que viene integrada con el apache, por lo que su uso se hace incluso más fácil aún.</p>
<p>La versión del xml tiene que ser la 1.0, ya que he estado haciendo pruebas con la versión 2.0 y no se podía.</p>
<p>Un ejemplo de como leer un XML usando simpleXML es el siguiente:</p>
<blockquote><p>$sx = simplexml_load_file(&#8217;http://blogs.ozu.es/ultimos/posts.xml&#8217;);<br />
/*Éste ejemplo de XML es el más básico pues no tiene cabecera con la típica información del RSS como channel, una imagen, etc</p>
<p>y directamente empieza a pintar los nodos que contienen la información en éste caso los nodos principales se llaman &#8220;post&#8221; y por ejemplo un caso de nodo child sería &#8220;title&#8221;</p>
<p>*/</p>
<p>foreach($sx-&gt;post as $item)<br />
{<br />
$title_text_value = $item-&gt;title;<br />
print &#8220;$title_text_value&#8221;;<br />
}</p></blockquote>
<p>Más info en : 
<a title="http://es.php.net/manual/es/book.simplexml.php"  href="http://es.php.net/manual/es/book.simplexml.php" target="_blank" onclick="javascript:pageTracker._trackPageview('/external/es.php.net/manual/es/book.simplexml.php');" >http://es.php.net/manual/es/book.simplexml.php</a></p>
<p>Descargar simpleXML parser :
<a  href="http://www.pedroventura.com/blog_programacion/archivos/simpleXMLparser.zip" target="_blank" onclick="javascript:pageTracker._trackPageview('/external/www.pedroventura.com/blog_programacion/archivos/simpleXMLparser.zip');" >simpleXMLparser.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedroventura.com/blog_programacion/2008/08/28/parseando-xml-con-php-lo-mas-facil-y-simple/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Autocomplementador en AJAX</title>
		<link>http://www.pedroventura.com/blog_programacion/2008/08/14/autocomplementador-en-ajax/</link>
		<comments>http://www.pedroventura.com/blog_programacion/2008/08/14/autocomplementador-en-ajax/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 12:00:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Ajax]]></category>

		<category><![CDATA[auto]]></category>

		<category><![CDATA[autocomplementador]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[suggest]]></category>

		<guid isPermaLink="false">http://www.pedroventura.com/blog_programacion/?p=15</guid>
		<description><![CDATA[Como hacer un Autocomplementador simple en AJAX


Pasos para la implementación de éste módulo:

incluir el siguiente .js entre las etiquetas &#60;head&#62;&#60;/head&#62;


Ver .js
y las funciones javascript que podréis ver en la 
Demo Online 

Incluir también los estilos predeterminados, también los podréis ver en el código fuente de éste archivo.


 En la carpeta donde se encuentra éste ejemplo [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><strong><em>Como hacer un Autocomplementador simple en AJAX</em></strong></p>
<p style="text-align: center;">
<a  href="http://www.pedroventura.com/blog_programacion/wp-content/uploads/2008/08/autocomplete_2.png" onclick="javascript:pageTracker._trackPageview('/external/www.pedroventura.com/blog_programacion/wp-content/uploads/2008/08/autocomplete_2.png');" ><img class="alignnone size-medium wp-image-16 alignright" style="float: right;" title="autocomplete_2" src="http://www.pedroventura.com/blog_programacion/wp-content/uploads/2008/08/autocomplete_2-252x300.png" alt="" width="252" height="300" /></a></p>
<p>Pasos para la implementación de éste módulo:</p>
<ul>
<li>incluir el siguiente .js entre las etiquetas &lt;head&gt;&lt;/head&gt;</li>
</ul>
<p>
<a  href="http://www.pedroventura.com/blog_programacion/demos/autocomplete/jquery-1.2.1.pack.js" onclick="javascript:pageTracker._trackPageview('/external/www.pedroventura.com/blog_programacion/demos/autocomplete/jquery-1.2.1.pack.js');" >Ver .js</a></p>
<p>y las funciones javascript que podréis ver en la 
<a  href="http://www.pedroventura.com/blog_programacion/demos/autocomplete/auto.html" target="_blank" onclick="javascript:pageTracker._trackPageview('/external/www.pedroventura.com/blog_programacion/demos/autocomplete/auto.html');" ><strong>Demo Online </strong></a></p>
<ul>
<li>Incluir también los estilos predeterminados, también los podréis ver en el código fuente de éste archivo.</li>
</ul>
<ul>
<li> En la carpeta donde se encuentra éste ejemplo hay un php &#8220;rpc.php&#8221; que contiene la llamada a la base de datos y el cual devuelve el contenido.</li>
</ul>
<blockquote><p>&lt;?php</p>
<p>// PHP5 Implementation - uses MySQLi.<br />
// mysqli(&#8217;localhost&#8217;, &#8216;yourUsername&#8217;, &#8216;yourPassword&#8217;, &#8216;yourDatabase&#8217;);<br />
$db = new mysqli(&#8217;localhost&#8217;, &#8216;USERNAME&#8217; ,&#8217;PASSWORD&#8217;, &#8216;DATABASE&#8217;);</p>
<p>if(!$db) {<br />
// Show error if we cannot connect.<br />
echo &#8216;ERROR: Could not connect to the database.&#8217;;<br />
} else {<br />
// Is there a posted query string?<br />
if(isset($_POST['queryString'])) {<br />
$queryString = $db-&gt;real_escape_string($_POST['queryString']);</p>
<p>// Is the string length greater than 0?</p>
<p>if(strlen($queryString) &gt;0) {<br />
// Run the query: We use LIKE &#8216;$queryString%&#8217;<br />
// The percentage sign is a wild-card, in my example of countries it works like this&#8230;<br />
// $queryString = &#8216;Uni&#8217;;<br />
// Returned data = &#8216;United States, United Kindom&#8217;;</p>
<p>// YOU NEED TO ALTER THE QUERY TO MATCH YOUR DATABASE.<br />
// eg: SELECT yourColumnName FROM yourTable WHERE yourColumnName LIKE &#8216;$queryString%&#8217; LIMIT 10</p>
<p>$query = $db-&gt;query(&#8221;SELECT your_column FROM your_db_table WHERE your_column LIKE &#8216;$queryString%&#8217; LIMIT 10&#8243;);<br />
if($query) {<br />
// While there are results loop through them - fetching an Object (i like PHP5 btw!).<br />
while ($result = $query -&gt;fetch_object()) {<br />
// Format the results, im using &lt;li&gt; for the list, you can change it.<br />
// The onClick function fills the textbox with the result.</p>
<p>// YOU MUST CHANGE: $result-&gt;value to $result-&gt;your_colum<br />
echo &#8216;&lt;li onClick=&#8221;fill(\&#8221;.$result-&gt;value.&#8217;\');&#8221;&gt;&#8217;.$result-&gt;value.&#8217;&lt;/li&gt;&#8217;;<br />
}<br />
} else {<br />
echo &#8216;ERROR: There was a problem with the query.&#8217;;<br />
}<br />
} else {<br />
// Dont do anything.<br />
} // There is a queryString.<br />
} else {<br />
echo &#8216;There should be no direct access to this script!&#8217;;<br />
}<br />
}<br />
?&gt;</p></blockquote>
<p>Si usais SMARTY, habría que poner incluso menos código:</p>
<blockquote><p>&lt;?<br />
include(&#8221;/ruta_smarty_donde_teneis/config.php&#8221;);<br />
include_once(&#8221;/ruta_smarty_donde_teneis/sql.lib.php&#8221;);<br />
abrirConexion();// o la funcion que hayas nombrado para crear una conexión<br />
$busqueda= $_POST['queryString']; // $_POST['queryString'] es la variable que lleva lo que estamos insertando en el formulario de búsqueda<br />
$sql_search=&#8221;SELECT NOMBRE_CAMPO FROM NOMBRE_TABLA WHERE NOMBRE_CAMPO LIKE &#8216;$busqueda%&#8217; LIMIT 10&#8243;;<br />
$db-&gt;query($sql_search);<br />
//$searching = $db-&gt;fetchObject();<br />
while ($searching = $db -&gt;fetchObject())<br />
{<br />
echo &#8216;&lt;li onClick=&#8221;fill(\&#8221;.$searching-&gt;NombreFamoso.&#8217;\');&#8221;&gt;&#8217;.$searching-&gt;NombreFamoso.&#8217;&lt;/li&gt;&#8217;;<br />
}</p>
<p>?&gt;</p></blockquote>
<p>Si queréis podéis descargar el Código en el siguiente link :
<a  href="http://www.pedroventura.com/blog_programacion/archivos/autoComplete.zip" target="_blank" onclick="javascript:pageTracker._trackPageview('/external/www.pedroventura.com/blog_programacion/archivos/autoComplete.zip');" >autoComplete.zip</a></p>
<p>
<a  href="http://www.pedroventura.com/blog_programacion/demos/autocomplete/auto.html" target="_blank" onclick="javascript:pageTracker._trackPageview('/external/www.pedroventura.com/blog_programacion/demos/autocomplete/auto.html');" ><strong>Online Demo</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedroventura.com/blog_programacion/2008/08/14/autocomplementador-en-ajax/feed/</wfw:commentRss>
		</item>
		<item>
		<title>expresiones regulares para parsear un RSS o XML</title>
		<link>http://www.pedroventura.com/blog_programacion/2008/04/24/expresiones-regulares-para-parsear-un-rss-o-xml/</link>
		<comments>http://www.pedroventura.com/blog_programacion/2008/04/24/expresiones-regulares-para-parsear-un-rss-o-xml/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 11:11:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[contenido]]></category>

		<category><![CDATA[eliminar]]></category>

		<category><![CDATA[expresiones]]></category>

		<category><![CDATA[HTML]]></category>

		<category><![CDATA[parsear]]></category>

		<category><![CDATA[preg_match]]></category>

		<category><![CDATA[regulares]]></category>

		<category><![CDATA[RSS]]></category>

		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://pedroventura.com/blog_programacion/?p=7</guid>
		<description><![CDATA[En este post voy a explicar como eliminar un contenido determinado ya sea una imagen o una etiqueta HTML, que no queremos que salga cuando parseamos el RSS o XML mediante expresiones regulares con la funcion preg_match
preg_match(&#8217;/&#60;p id=&#8221;desc&#8221;&#62;([^&#60;]+)&#60;\/p&#62;/&#8217;,$array_videos[0]['description'],$descripcion);
if(strlen($descripcion[1]) &#62; 70)
{
$valor =     substr($descripcion[1],0,70).&#8221;&#8230;&#8221;;
}
else
{
$valor = $descripcion[1];
}
La funcion preg_match elimina de las etiquetas que [...]]]></description>
			<content:encoded><![CDATA[<p>En este post voy a explicar como eliminar un contenido determinado ya sea una imagen o una etiqueta HTML, que no queremos que salga cuando parseamos el RSS o XML mediante expresiones regulares con la funcion preg_match</p>
<blockquote><p>preg_match(&#8217;/&lt;p id=&#8221;desc&#8221;&gt;([^&lt;]+)&lt;\/p&gt;/&#8217;,$array_videos[0]['description'],$descripcion);<br />
if(strlen($descripcion[1]) &gt; 70)<br />
{<br />
$valor =     substr($descripcion[1],0,70).&#8221;&#8230;&#8221;;<br />
}<br />
else<br />
{<br />
$valor = $descripcion[1];<br />
}</p></blockquote>
<p>La funcion preg_match elimina de las etiquetas que queremos en este caso elimina todo el contenido y la etiqueta &lt;p id=&#8221;desc&#8221;&gt;</p>
<p>Despues recorta la cadena en 70 caracteres</p>
<blockquote></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.pedroventura.com/blog_programacion/2008/04/24/expresiones-regulares-para-parsear-un-rss-o-xml/feed/</wfw:commentRss>
		</item>
		<item>
		<title>funciones Javascript - setInterval()  clearInterval() setTimeout()</title>
		<link>http://www.pedroventura.com/blog_programacion/2008/03/06/funciones-javascript-setinterval-clearinterval-settimeout/</link>
		<comments>http://www.pedroventura.com/blog_programacion/2008/03/06/funciones-javascript-setinterval-clearinterval-settimeout/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 16:02:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[funciones Javascript - setInterval()  clearInterval() s]]></category>

		<guid isPermaLink="false">http://pedroventura.com/blog_programacion/2008/03/06/funciones-javascript-setinterval-clearinterval-settimeout/</guid>
		<description><![CDATA[setInterval()
This method is used to repeatedly execute a function at a set interval. The format for this method is:
window.setInterval("functionName()",time);
The first parameter (&#8221;functionName()&#8221;) is the name of the function that you   want to have executed. Notice that the function name is in quotes. It&#8217;s treated   as a string to prevent it from [...]]]></description>
			<content:encoded><![CDATA[<h4><em>setInterval()</em></h4>
<p>This method is used to repeatedly execute a function at a set interval. The format for this method is:</p>
<pre>window.setInterval("functionName()",time);</pre>
<p>The first parameter (&#8221;functionName()&#8221;) is the name of the function that you   want to have executed. Notice that the function name is in quotes. It&#8217;s treated   as a string to prevent it from executing immediately. The second parameter (time)   is the amount of the delay in milliseconds, between each time the function is   executed (1 minute = 60000 milliseconds). This is useful in animation, for rotating   pictures in a gallery or perhaps refreshing the screen. For instance, to reload   a page after an interval of 10 minutes (600,000 milliseconds), try this script:</p>
<pre>function reFresh() {

  location.reload(true)

}

window.setInterval("reFresh()",600000);</pre>
<h4><em>clearInterval()</em></h4>
<p>This method is used to stop the timed loop which was started with the <code>setInterval()</code> method above. The format is:</p>
<pre>window.clearInterval(varName);</pre>
<p>In order to use it, the loop must be assigned to a variable.</p>
<p>Let&#8217;s go back to our page refresh script above. We only need to add the <code>var</code> reserved word in front of the <code>setInterval()</code> loop:</p>
<pre>function reFresh() {

  window.open(location.reload(true))

}

var repeat=window.setInterval("reFresh()",600000);</pre>
<p>Then we could create a button to stop the page refresh:</p>
<pre>&lt;form&gt;

  <font color="#000000">// The next two lines should all be on one line</font>

  &lt;input type="Button" value="Stop the Page Refresh"

    onclick="window.clearInterval(repeat);"&gt;

&lt;/form&gt;</pre>
<p>The function is the same as we created previously except, as I noted, the   <code>setInterval</code> method has now been assigned to a variable. The button   we created merely says to clear the time interval of the variable <code>repeat</code>.   If you want to see this script in action at a faster pace, change the time interval   from 600000 (10 minutes) to 60000 (1 minute). Once you load the page, go back   and edit the page, adding something to it, and save it. Then, go back to the   browser and wait for it to refresh.</p>
<p><a title="timeOut" name="timeOut"></a></p>
<h4><em>setTimeout()</em></h4>
<p>This method is used to execute a 
<a  href="http://www.webreference.com/programming/javascript/diaries/8/6.html#" id="KonaLink2" target="_new" class="kLink" style="text-decoration: underline ! important; position: static" onclick="javascript:pageTracker._trackPageview('/external/www.webreference.com/programming/javascript/diaries/8/6.html');" ><font style="color: blue ! important; font-family: serif; font-weight: 400; font-size: 16px; position: static" color="blue"><span class="kLink" style="color: blue ! important; font-family: serif; font-weight: 400; font-size: 16px; position: static">JavaScript</span></font></a> function after a predetermined amount of time. (The name is a bit misleading. It doesn&#8217;t stop the script for a period of time; it waits a period of time before beginning.) Unlike the <code>setInterval()</code> method, it only executes once. You will remember we used this when we looked at the <code>blur()</code> and <code>focus()</code> methods. It was used to give the 
<a  href="http://www.webreference.com/programming/javascript/diaries/8/6.html#" id="KonaLink3" target="_new" class="kLink" style="text-decoration: underline ! important; position: static" onclick="javascript:pageTracker._trackPageview('/external/www.webreference.com/programming/javascript/diaries/8/6.html');" ><font style="color: blue ! important; font-family: serif; font-weight: 400; font-size: 16px; position: static" color="blue"><span class="kLink" style="color: blue ! important; font-family: serif; font-weight: 400; font-size: 16px; position: static">IE </span><span class="kLink" style="color: blue ! important; font-family: serif; font-weight: 400; font-size: 16px; position: static">browser</span></font></a> time to catch up before we printed data to the new window. The format is:</p>
<pre>window.setTimeout("functionName()",time);</pre>
<p>This method has many different 
<a  href="http://www.webreference.com/programming/javascript/diaries/8/6.html#" id="KonaLink4" target="_new" class="kLink" style="text-decoration: underline ! important; position: static" onclick="javascript:pageTracker._trackPageview('/external/www.webreference.com/programming/javascript/diaries/8/6.html');" ><font style="color: blue ! important; font-family: serif; font-weight: 400; font-size: 16px; position: static" color="blue"><span class="kLink" style="color: blue ! important; font-family: serif; font-weight: 400; font-size: 16px; position: static">applications</span></font></a>. It could be used in a game, to   set a specified amount of time for performing a procedure, to reset a page when   the 
<a  href="http://www.webreference.com/programming/javascript/diaries/8/6.html#" id="KonaLink5" target="_new" class="kLink" style="text-decoration: underline ! important; position: static" onclick="javascript:pageTracker._trackPageview('/external/www.webreference.com/programming/javascript/diaries/8/6.html');" ><font style="color: blue ! important; font-family: serif; font-weight: 400; font-size: 16px; position: static" color="blue"><span class="kLink" style="color: blue ! important; font-family: serif; font-weight: 400; font-size: 16px; position: static">computer</span></font></a> is set up in a kiosk environment or it could be used to popup a   window for a friendly reminder to a visitor. There are many other applications.   The trick is not to annoy your visitors. Let&#8217;s take a look at how this methods   works:</p>
<pre>function inquire() {

  alert("Are you still there?");

}

var ask=window.setTimeout("inquire()",10000);</pre>
<h4><em>clearTimeout()</em></h4>
<p>This method is used for clearing the time interval set by the <code>setTimeout()</code>   method. It works along the same lines as the <code>clearInterval</code>. Using   our script above, let&#8217;s see how it works. First, here&#8217;s our <code>setTimeout</code>   script:</p>
<pre>function inquire() {

  alert("Are you still there?");

}

var ask=window.setTimeout("inquire()",10000);</pre>
<p>Next, we add a button to our page to cancel the alert window in the inquire function:</p>
<pre>&lt;form&gt;

  <font color="#000000">// The next two lines should all be on one line</font>

  &lt;input type="Button" value="Stop the Alert Window"

    onclick="window.clearInterval(ask);"&gt;

&lt;/form&gt;</pre>
<p>This button can be used to stop the action that will be executed by the <code>setTimeout</code> method.</p>
<h3>Conclusion</h3>
<p>That wraps up of look at the methods associated with the <code>window</code> object. In the next installment we will take a look at some of the event handlers and see how we can use them.</p>
<p>MAS EN : http://www.webreference.com/programming/javascript/diaries/8/6.html</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedroventura.com/blog_programacion/2008/03/06/funciones-javascript-setinterval-clearinterval-settimeout/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Revelar las contraseñas con Javascript</title>
		<link>http://www.pedroventura.com/blog_programacion/2008/02/19/revelar-las-contrasenas-con-javascript/</link>
		<comments>http://www.pedroventura.com/blog_programacion/2008/02/19/revelar-las-contrasenas-con-javascript/#comments</comments>
		<pubDate>Tue, 19 Feb 2008 11:10:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[contraseñas]]></category>

		<category><![CDATA[descubre]]></category>

		<category><![CDATA[login]]></category>

		<category><![CDATA[olvidadas]]></category>

		<category><![CDATA[password]]></category>

		<category><![CDATA[revela]]></category>

		<guid isPermaLink="false">http://pedroventura.com/blog_programacion/2008/02/19/revelar-las-contrasenas-con-javascript/</guid>
		<description><![CDATA[Os paso un cacho de código js curioso, que te muestra en un popup el contenido de los campos pass con * de la web. Se puede poner en la barra de direcciones y se ejecuta sobre la pag actual. Es una forma rápida de recordar ese password q tú mismo pusiste hace siglos&#8230;
javascript:(function(){var s,F,j,f,i; [...]]]></description>
			<content:encoded><![CDATA[<p><font size="-1"><font face="Verdana">Os paso un cacho de código js curioso, que te muestra en un popup el contenido de los campos pass con * de la web. Se puede poner en la barra de direcciones y se ejecuta sobre la pag actual. Es una forma rápida de recordar ese password q tú mismo pusiste hace siglos&#8230;</font></font></p>
<blockquote><p><font size="-1"><font face="Verdana"><span class="moz-txt-link-freetext">javascript:(function()</span>{var s,F,j,f,i; s =&#8221;"; F = document.forms; for(j=0; j&lt;F.length; ++j) { f = F[j]; for (i=0; i&lt;f.length; ++i) { if (f[i].type.toLowerCase() == &#8220;password&#8221;) s += f[i].value + &#8220;&#8221;; } } if (s) alert(&#8221;Passwords en esta pagina:&#8221; + s); else alert(&#8221;No hay ningun password en esta pagina.&#8221;);})();</font></font></p></blockquote>
<p>Descubrimiento de Fer <img src='http://www.pedroventura.com/blog_programacion/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedroventura.com/blog_programacion/2008/02/19/revelar-las-contrasenas-con-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Realizar busquedas con like</title>
		<link>http://www.pedroventura.com/blog_programacion/2008/02/18/realizar-busquedas-con-like/</link>
		<comments>http://www.pedroventura.com/blog_programacion/2008/02/18/realizar-busquedas-con-like/#comments</comments>
		<pubDate>Mon, 18 Feb 2008 10:51:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[SQL]]></category>

		<category><![CDATA[busqueda]]></category>

		<category><![CDATA[con]]></category>

		<category><![CDATA[like]]></category>

		<category><![CDATA[match]]></category>

		<category><![CDATA[or]]></category>

		<category><![CDATA[select]]></category>

		<guid isPermaLink="false">http://pedroventura.com/blog_programacion/2008/02/18/realizar-busquedas-con-like/</guid>
		<description><![CDATA[Lo que nos viene es un string como vemos en la primera linea del codigo. Lo que hacemos es descomponerla y separarla por partes para hacer diferentes  consultas LIKE  que luego pondremos en la consulta final .
$tags1 =&#8221;busqueda que se desea&#8221;;
$trozos = array ();
$trozos = explode(&#8221; &#8220;, $tags1);
$tags_sql= &#8220;&#8221;;
for($i=0;$i&#60;count($trozos);$i++)
{
 $trozos[$i] = str_replace(&#8221; &#8220;,&#8221;, [...]]]></description>
			<content:encoded><![CDATA[<p>Lo que nos viene es un string como vemos en la primera linea del codigo. Lo que hacemos es descomponerla y separarla por partes para hacer diferentes  consultas LIKE  que luego pondremos en la consulta final .</p>
<blockquote><p>$tags1 =&#8221;busqueda que se desea&#8221;;<br />
$trozos = array ();<br />
$trozos = explode(&#8221; &#8220;, $tags1);<br />
$tags_sql= &#8220;&#8221;;</p>
<p>for($i=0;$i&lt;count($trozos);$i++)<br />
{</p>
<blockquote><p> $trozos[$i] = str_replace(&#8221; &#8220;,&#8221;, &#8220;,$trozos[$i]);<br />
if ($i==0)<br />
{</p>
<blockquote><p> $tags_sql .= &#8220;&#8216;%&#8221;.$trozos[$i].&#8221;%&#8217;&#8221;;<br />
}else</p></blockquote>
<p>{</p>
<blockquote><p> $tags_sql .= &#8221; or subfiltro like &#8216;%&#8221;.$trozos[$i].&#8221;%&#8217;&#8221;;</p></blockquote>
<p>}</p></blockquote>
<p>}<br />
$query = &#8220;SELECT * FROM table WHERE tags like &#8221; .$tags_sql .&#8221;  ORDER BY RAND() limit 0,1&#8243;;</p></blockquote>
<p>si hacemos un echo de $query, obtendremos lo siguiente:</p>
<p>SELECT * FROM table WHERE tags like &#8216;busqueda&#8217;  or tags like &#8216;que&#8217; or tags like &#8217;se&#8217;  or tags like &#8216;desea&#8217; ORDER BY RAND() limit 0,1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedroventura.com/blog_programacion/2008/02/18/realizar-busquedas-con-like/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
