<?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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Miguel Manchego &#187; PHP</title>
	<atom:link href="http://www.miguelmanchego.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.miguelmanchego.com</link>
	<description>Desarrollador web freelancer php, css, ajax, cms..</description>
	<lastBuildDate>Wed, 04 Jan 2012 13:10:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>PHP: variables de nombre variable</title>
		<link>http://www.miguelmanchego.com/2011/php-variables-de-nombre-variable/</link>
		<comments>http://www.miguelmanchego.com/2011/php-variables-de-nombre-variable/#comments</comments>
		<pubDate>Sat, 16 Jul 2011 14:56:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.miguelmanchego.com/?p=1393</guid>
		<description><![CDATA[Las variables de nombre variable o variables variables, valga la redundancia son muy útiles a la hora de ahorrar programación ya que permite generar nombres de variables dinamicamente sobre todo en bucles y funciones. La forma normal de crear una variables es $x=1 Pero que ocurre si tenemos que crear un bucle donde debemos asignar [...]]]></description>
			<content:encoded><![CDATA[<!--INFOLINKS_ON--><p>Las variables de nombre variable o variables variables, valga la redundancia son muy útiles a la hora de ahorrar programación ya que permite generar nombres de variables dinamicamente sobre todo en bucles y funciones.</p>
<p>La forma normal de crear una variables es $x=1</p>
<p>Pero que ocurre si tenemos que crear un bucle donde debemos asignar valores a $x1, $x2, $x3&#8230;. no sería buena idea asignar una por una, si estamos dentro de un bucle sería algo como:</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$arr</span> <span style="color: #b1b100;">as</span> <span style="color: #339933;">&amp;</span><span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;$<span style="color: #009900;">&#123;</span><span style="color: #0000ff;">'x'</span><span style="color: #339933;">.</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;valor de variable&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Lo mismo sirve también para usar los valores almacenados en una variable.</p>
<div id="crp_related"><br/><h3>Posts Similares:</h3><ul><li><a href="http://www.miguelmanchego.com/2010/diferencias-entre-envio-get-y-post/" rel="bookmark" class="crp_title">Diferencias entre envio GET y POST</a></li><li><a href="http://www.miguelmanchego.com/2010/php-friendly-url-amigable/" rel="bookmark" class="crp_title">PHP: friendly url</a></li><li><a href="http://www.miguelmanchego.com/2011/prestashop-variables-globales-para-plantillas/" rel="bookmark" class="crp_title">Prestashop: Variables globales para plantillas</a></li><li><a href="http://www.miguelmanchego.com/2009/php-crear-un-sitio-multilingue/" rel="bookmark" class="crp_title">PHP crear un sitio multilingue</a></li><li><a href="http://www.miguelmanchego.com/2009/flashvars-enviarle-datos-html-a-pelicula-flash/" rel="bookmark" class="crp_title">Flashvars enviarle datos html a pelicula Flash</a></li></ul></div><!--INFOLINKS_OFF-->]]></content:encoded>
			<wfw:commentRss>http://www.miguelmanchego.com/2011/php-variables-de-nombre-variable/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP: Limitar el tamaño de archivo que subimos</title>
		<link>http://www.miguelmanchego.com/2010/php-limitar-el-tamano-de-archivo-que-subimos/</link>
		<comments>http://www.miguelmanchego.com/2010/php-limitar-el-tamano-de-archivo-que-subimos/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 21:13:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.miguelmanchego.com/?p=1080</guid>
		<description><![CDATA[Tutorial PHP que explica como limitar el tamañao máximo de archivos que podemos subir al servidor]]></description>
			<content:encoded><![CDATA[<!--INFOLINKS_ON--><p>Este simple script también funcionaría si usamos algún <a href="http://www.miguelmanchego.com/2009/subir-archivos-usando-ajax-jquery/">plugin jquery para subir archivos</a> ya que estos plugins lo único que hacen es crear un iframe por el que se sube el archivo haciendo parecer que en realidad es una llamada AJAX.</p>
<h3>Creando el formulario</h3>
<p>Si no usamos AJAX, deberiamos usar un formulario como este:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/form.html"><span style="color: #000000; font-weight: bold;">form</span></a> <span style="color: #000066;">action</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;subirArchivo.php&quot;</span> <span style="color: #000066;">method</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;post&quot;</span> <span style="color: #000066;">enctype</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;multipart/form-data&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;MAX_FILE_SIZE&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;100000&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/b.html"><span style="color: #000000; font-weight: bold;">b</span></a>&gt;</span>Enviar un nuevo archivo: <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/b.html"><span style="color: #000000; font-weight: bold;">b</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">br</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;userfile&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;file&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">br</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;submit&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Subir&quot;</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/form.html"><span style="color: #000000; font-weight: bold;">form</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>Es muy importante que en ese formulario no te olvides del enctype=&#8221;multipart/form-data&#8221;</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$file_name</span><span style="color: #339933;">=</span><span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;fimg&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;name&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$file_size</span><span style="color: #339933;">=</span><span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;fimg&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;size&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$file_type</span><span style="color: #339933;">=</span><span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;fimg&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;type&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file_name</span><span style="color: #339933;">!=</span><span style="color: #0000ff;">&quot;&quot;</span> AND <span style="color: #000088;">$file_size</span><span style="color: #339933;">&lt;=</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'MAX_FILE_SIZE'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$path</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;../images/galeria&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">/// BOF Thumbnail</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/copy"><span style="color: #990000;">copy</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'fimg'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tmp_name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #000088;">$path</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$file_name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'El archivo es demasiado grande'</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>En este caso el tamaño máximo estoy enviandolo via PHP sin embargo nada nos impide poner un valor como 560000 (560Kb) en lugar de $_POST['MAX_FILE_SIZE']</p>
<div id="crp_related"><br/><h3>Posts Similares:</h3><ul><li><a href="http://www.miguelmanchego.com/2009/subir-multiples-archivos-ajax-jquery/" rel="bookmark" class="crp_title">Subir Multiples Archivos Ajax jquery</a></li><li><a href="http://www.miguelmanchego.com/2009/ajax-enviar-formularios-sin-recargar-jquery/" rel="bookmark" class="crp_title">Ajax enviar formularios sin recargar jquery</a></li><li><a href="http://www.miguelmanchego.com/2010/jquery-subir-archivos-usando-ajax/" rel="bookmark" class="crp_title">Jquery: Subir archivos usando AJAX</a></li><li><a href="http://www.miguelmanchego.com/2009/envia-correos-sin-recargar-jquery-ajax/" rel="bookmark" class="crp_title">Envia correos sin recargar jquery ajax</a></li><li><a href="http://www.miguelmanchego.com/2008/envia-correos-con-php/" rel="bookmark" class="crp_title">Envia correos con PHP</a></li></ul></div><!--INFOLINKS_OFF-->]]></content:encoded>
			<wfw:commentRss>http://www.miguelmanchego.com/2010/php-limitar-el-tamano-de-archivo-que-subimos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: Mostrar una imagen según la fecha</title>
		<link>http://www.miguelmanchego.com/2010/php-mostrar-una-imagen-segun-la-fecha/</link>
		<comments>http://www.miguelmanchego.com/2010/php-mostrar-una-imagen-segun-la-fecha/#comments</comments>
		<pubDate>Mon, 04 Oct 2010 14:40:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.miguelmanchego.com/?p=1054</guid>
		<description><![CDATA[A veces necesitamos que se muestre un banner por alguna fecha especial como puede ser fiestas patrias, dia de la madre, etc. En este tutorial voy a explicar como hacerlo de forma automática. Paso 1:¿Qué dia es hoy? Para saber que imagen mostrar primero necesitamos saber la fecha en un formato que nos sea util, [...]]]></description>
			<content:encoded><![CDATA[<!--INFOLINKS_ON--><p>A veces necesitamos que se muestre un banner por alguna fecha especial como puede ser fiestas patrias, dia de la madre, etc. En este tutorial voy a explicar como hacerlo de forma automática.</p>
<h3>Paso 1:¿Qué dia es hoy?</h3>
<p>Para saber que imagen mostrar primero necesitamos saber la fecha en un formato que nos sea util, para eso usamos esta linea:</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$fecha</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;d-m-Y&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<h3>Paso 2: Buscamos que imagen mostrar</h3>
<p>Usando una estructura case podemos averiguar que imagen debemos mostrar según la fecha, quedando algo así:</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$fecha</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">case</span> <span style="color: #0000ff;">&quot;04-08-2010&quot;</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;img src=&quot;http://temp.com/wp-content/6Aug.jpg&quot; alt=&quot;Los Angeles&quot;&gt;'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">case</span> <span style="color: #0000ff;">&quot;05-08-2010&quot;</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// ...</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Y bueno eso es todo</p>
<h3>Mostrando una imagen según la fecha y la hora</h3>
<p>Si además quisieramos mostrar una imagen según el día y la hora, algo como lunes 10 am otra el martes 9pm, etc. Nos bastaría con buscar ya no una fecha especifica sino un dia de la semana, quedando algo como esto:</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$dia</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;D&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$hora</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;G&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$dia</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">case</span> <span style="color: #0000ff;">&quot;Mon&quot;</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$hora</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;10&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;img src=&quot;http://temp.com/wp-content/lunes10.jpg&quot; alt=&quot;Los Angeles&quot;&gt;'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">case</span> <span style="color: #0000ff;">&quot;Tue&quot;</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$hora</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;21&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;img src=&quot;http://temp.com/wp-content/martes21.jpg&quot; alt=&quot;Los Angeles&quot;&gt;'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">case</span> <span style="color: #0000ff;">&quot;Wen&quot;</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// ...</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Si necesitamos agregar más horas dentro de un mismo día bastaría con agregar más condiciones if</p>
<div id="crp_related"><br/><h3>Posts Similares:</h3><ul><li><a href="http://www.miguelmanchego.com/2009/parser-rss-con-php/" rel="bookmark" class="crp_title">Parser RSS con PHP</a></li><li><a href="http://www.miguelmanchego.com/2010/templates-php-parte-2/" rel="bookmark" class="crp_title">Templates PHP parte 2</a></li><li><a href="http://www.miguelmanchego.com/2009/css-reducir-una-imagen-sin-distorcionarla/" rel="bookmark" class="crp_title">CSS reducir una imagen sin distorcionarla</a></li><li><a href="http://www.miguelmanchego.com/2009/fotomanipulacion-eliminar-arrugas-photoshop-2/" rel="bookmark" class="crp_title">Fotomanipulación eliminar arrugas</a></li><li><a href="http://www.miguelmanchego.com/2010/zencart-link-view-all-ver-todo/" rel="bookmark" class="crp_title">Zencart: Link View All/Ver Todo</a></li></ul></div><!--INFOLINKS_OFF-->]]></content:encoded>
			<wfw:commentRss>http://www.miguelmanchego.com/2010/php-mostrar-una-imagen-segun-la-fecha/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Templates PHP parte 1</title>
		<link>http://www.miguelmanchego.com/2010/templates-plantillas-php-parte-1/</link>
		<comments>http://www.miguelmanchego.com/2010/templates-plantillas-php-parte-1/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 15:09:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.miguelmanchego.com/?p=864</guid>
		<description><![CDATA[Antes que me lluevan las críticas por lo que voy a escribir en este post, quiero primero aclarar que estoy de acuerdo en el uso de MVC (modelo-vista-controlador) en lo que no creo es que Smarty sea la solución, ya iré desarollando la idea de a pocos. ¿Qué es una plantilla/template PHP? Las plantillas son [...]]]></description>
			<content:encoded><![CDATA[<!--INFOLINKS_ON--><p>Antes que me lluevan las críticas por lo que voy a escribir en este post, quiero primero aclarar que estoy de acuerdo en el uso de MVC (modelo-vista-controlador) en lo que no creo es que Smarty sea la solución, ya iré desarollando la idea de a pocos.<br />
<br style="clear:both;"></p>
<h3>¿Qué es una plantilla/template PHP?</h3>
<p>Las plantillas son páginas web que muestra código PHP y que &#8220;supuestamente&#8221; pueden ser editadas por cualquier persona sin tener conocimientos de programación, por lo que serían adecuadas para diseñadores y maquetadores de páginas web. Usualmente tienen extensión .TPL</p>
<p>Quiero indicar que en Internet encontramos muchos sistemas que dicen ser plantillas pero que en realidad no pasan de ser simples reemplazadores de variables y aunque esto no sea exactamente una plantilla la verdad es que en sistemas simples cumplen de sobra con su cometido, por ejemplo pueden ver <a href="http://quenerapu.com/php/el-sistema-de-plantillas-mas-simple-del-mundo-probablemente/" target="_blank">ESTE</a></p>
<h3>¿Qué es Smarty?</h3>
<p>Si te han dado curiosidad los sistemas de plantillas en PHP es seguro que te debes haber cruzado con explicaciones sobre Smarty que es el sistema de plantillas oficial para PHP, y además estoy seguro que habrás leído comentarios sobre lo muy rápido, eficiente y simple de implementar que es, la verdad es que para cosas simples puede parecer que si, pero ya luego te darás cuenta que no es la maravilla que te cuentan.</p>
<h3>¿Por qué no es buena idea usar Smarty?</h3>
<p>Los argumentos a favor los encuentras rondando por google asi que yo me dedicaré a analizar que tan ciertos son:</p>
<h4>Separa la lógica de la presentación</h4>
<p>Eso no es del todo cierto, ya que Smarty es todo un lenguaje de programación, veamos algunas de las supuestas ayudas que da Smarty para los diseñadores y vamos con los ejemplos para visualizar esto:<br />
Con Smarty:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/table.html"><span style="color: #000000; font-weight: bold;">table</span></a>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>{$mivariable}<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/table.html"><span style="color: #000000; font-weight: bold;">table</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>Ahora veamos lo tremendamente dificil que es hacerlo sin Smarty</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/table.html"><span style="color: #000000; font-weight: bold;">table</span></a>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;&lt;?<span style="color: #66cc66;">=</span>$mivariable?&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/table.html"><span style="color: #000000; font-weight: bold;">table</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>Seguro que algunos escépticos me dirán que en algo tan simple es lo mismo pero que en programación da muchas facilidades para los diseñadores, veamos si eso es cierto<br />
Condiciones usando Smarty:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">{if $name eq &quot;Fred&quot;}<br />
&nbsp; &nbsp; Welcome Sir.<br />
{elseif $name eq &quot;Wilma&quot;}<br />
&nbsp; &nbsp; Welcome Ma'am.<br />
{else}<br />
&nbsp; &nbsp; Welcome, whatever you are.<br />
{/if}</div></td></tr></tbody></table></div>
<p>Veamos lo complicadísimo que es hacer lo mismo usando PHP</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;Fred&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #000000; font-weight: bold;">?&gt;</span><br />
&nbsp; &nbsp; Welcome Sir.<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;Wilma&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
&nbsp; &nbsp; Welcome Ma'am.<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">else</span><span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
&nbsp; &nbsp; Welcome, whatever you are.<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>¿Alguién notó lo mucho que se simplificó para el diseñador? Al menos yo no, además de cambiar mis invocaciones PHP por llaves y encima complicarme con algo llamado eq cuando yo ya tenía mi archiconocido ==</p>
<h4>Smarty es más veloz</h4>
<p>Tal vez sea más veloz que otro sistema de plantillas sin compilar ni optimizar pero nunca más veloz que usar puro PHP como hice en los ejemplos anteriores, sumado a esto es mucho más pesado, o creen que esas miles de líneas de código que forman Smarty no van a consumir procesos en tu servidor.</p>
<h4>Smarty incorpora una sistema de patrones de sintáxis</h4>
<p>Eso en castellano significa que dentro de la plantilla podamos incluir manejo y manipulación de variables; es decir dentro de una plantilla de Smarty puede hacerse programación. Me parece o al inicio dijimos que el objetivo de usar plantillas es para no mezclar la programación con el diseño, si eso es cierto como se nos va a ocurrir meter programación ahi, eso desnaturaliza su uso y encima vamos a decir que eso es una ventaja&#8230;.</p>
<p>Por esas razones considero que Smarty es mala idea ya que nos obliga a aprender un lenguaje de programación intemedio entre diseño y programación que quitará rendimiento a nuestra aplicación y al final no logra separar el diseño de la lógica.</p>
<p>En el próximo post indicaré cual es la solución para mi.</p>
<div id="crp_related"><br/><h3>Posts Similares:</h3><ul><li><a href="http://www.miguelmanchego.com/2010/templates-php-parte-2/" rel="bookmark" class="crp_title">Templates PHP parte 2</a></li><li><a href="http://www.miguelmanchego.com/2010/web-2-0-plantillas-photoshop-muy-baratas/" rel="bookmark" class="crp_title">Web 2.0: Plantillas muy baratas</a></li><li><a href="http://www.miguelmanchego.com/2010/tips-como-empezar-en-diseno-web/" rel="bookmark" class="crp_title">Tips: ¿Cómo empezar en Diseño Web?</a></li><li><a href="http://www.miguelmanchego.com/2010/plantillas-versus-disenos-propios/" rel="bookmark" class="crp_title">Plantillas versus diseños propios</a></li><li><a href="http://www.miguelmanchego.com/2010/mitos-y-preguntas-sobre-web-modular-php/" rel="bookmark" class="crp_title">Mitos y preguntas sobre web modular PHP</a></li></ul></div><!--INFOLINKS_OFF-->]]></content:encoded>
			<wfw:commentRss>http://www.miguelmanchego.com/2010/templates-plantillas-php-parte-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Seguridad, ataques y spam en la web</title>
		<link>http://www.miguelmanchego.com/2010/seguridad-ataques-y-spam-en-la-web-prevenir-php/</link>
		<comments>http://www.miguelmanchego.com/2010/seguridad-ataques-y-spam-en-la-web-prevenir-php/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 02:13:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[formulario]]></category>
		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://www.miguelmanchego.com/?p=763</guid>
		<description><![CDATA[Es muy común ser bombardeado por toneladas de spam y códigos maliciosos veamos como evitarlos usando sencillos scripts PHP]]></description>
			<content:encoded><![CDATA[<!--INFOLINKS_ON--><p>Desde que empecé a postear en mi blog he sufrido múltiples ataques afortundamente he podido repelerlos todos gracias a una serie de plugins para WordPress sin embargo estas mismas funciones es posible incluirlas en nuestros scripts, veamos algunas formas:<br />
<br style="clear:both;"></p>
<h2>No permitir HTML</h2>
<p>Nada más molesto que ser bombardeado por cientos de mensajes llenos de código basura, con links para comprar viagra (creo que no lo necesito), ofertas de mil cosas he incluso mensajes en árabe que llenan de links y código malicioso en los peores casos añaden javascript que invocan banners de propaganda o intentan descargarla algún troyano a nuestros visitantes lo mejor para prevenirlos es no permitir el uso de código HTML para eso podemos usar una muy útil función de PHP que es strip_tags y se usa de la siguiente forma:</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">//// Para eliminar todo rastro de html seria</span><br />
<span style="color: #000088;">$text</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'&lt;p&gt;mi codigo html&lt;/p&gt;&lt;a href=&quot;#fragment&quot;&gt;Other text&lt;/a&gt;'</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <a href="http://www.php.net/strip_tags"><span style="color: #990000;">strip_tags</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">//// Para permitir el uso solo de &lt;p&gt; y &lt;b&gt;</span><br />
<span style="color: #b1b100;">echo</span> <a href="http://www.php.net/strip_tags"><span style="color: #990000;">strip_tags</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$text</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'&lt;p&gt;&lt;b&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Existen formas más elaborados usando PHP purifier por ejemplo pero por lo general no requerimos un script tan pesado y con strip_tags basta.</p>
<h2>Usar un código de seguridad</h2>
<p>Más conocido como captcha podemos colocar nuestra letras como si fueran un gráfico un poco distorcionado y así prevenir que robots posteen, hay algunos detalles que debemos tomar en cuenta primero que el código se debe verificar al momento de enviar el formulario y al recibir los datos ya que los robots suelen no usar el formulario y saltarse toda validación javascript, hay muchas opciones de captcha basta buscar en google pero siempre tomando en cuenta que el código sea lo suficientemente comprensible para un humano.</p>
<h2>Bloquear IP</h2>
<p>Esta es una de las formas más radicales de prevenir spam ya que los robots suelen venir de algunos ip que no varían al bloquearlos se disminuye el spam pero cuidado porque podriamos estar bloqueando a todo un grupo de usuarios que estén bajo un mismo IP público.<br />
Para esto en PHP verificamos el IP de nuestro visitante</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000088;">$ip</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">//// Hacemos un array de ips baneadas</span><br />
<span style="color: #000088;">$ips_baneadas</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'10.0.0.1'</span><span style="color: #339933;">,</span>’192<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>1’<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; <br />
<span style="color: #000088;">$contador</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ips_baneadas</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp;<br />
<span style="color: #666666; font-style: italic;">//// Verificamos si el visitante esta baneado</span><br />
<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span><span style="color: #000088;">$contador</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> &nbsp; <br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ip</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$ips_baneadas</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <a href="http://www.php.net/die"><span style="color: #990000;">die</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Lo sentimos, estas baneado . <span style="color: #006699; font-weight: bold;">$ip</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> &nbsp;<br />
?&gt;</div></td></tr></tbody></table></div>
<p>Y bueno esas son las formas más usuales de prevenir spam aunque les aseguro que no son 100% seguras digamos que son un 99% seguras combinadas asi que siempre quedará algo que debamos borrar manualmente por lo que no esta demás poner alguna opción que diga &#8220;denunciar&#8221; para eliminar algún comentario malicioso.</p>
<div id="crp_related"><br/><h3>Posts Similares:</h3><ul><li><a href="http://www.miguelmanchego.com/2008/eliminar-html-con-php/" rel="bookmark" class="crp_title">Eliminar HTML con PHP</a></li><li><a href="http://www.miguelmanchego.com/2009/evitar-spam-en-wordpress/" rel="bookmark" class="crp_title">Evitar spam en WordPress</a></li><li><a href="http://www.miguelmanchego.com/2009/seo-que-no-debemos-hacer/" rel="bookmark" class="crp_title">SEO que NO debemos hacer</a></li><li><a href="http://www.miguelmanchego.com/2009/agregar-campos-usando-ajax-jquery/" rel="bookmark" class="crp_title">Agregar campos usando AJAX jquery</a></li><li><a href="http://www.miguelmanchego.com/2010/validar-formularios-en-web-modular/" rel="bookmark" class="crp_title">Validar formularios en web modular</a></li></ul></div><!--INFOLINKS_OFF-->]]></content:encoded>
			<wfw:commentRss>http://www.miguelmanchego.com/2010/seguridad-ataques-y-spam-en-la-web-prevenir-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

