<?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>Sumolari.com &#187; formularios</title>
	<atom:link href="http://sumolari.com/tag/formularios/feed/" rel="self" type="application/rss+xml" />
	<link>http://sumolari.com</link>
	<description>Proyectos de un amante de la informática</description>
	<lastBuildDate>Thu, 09 Feb 2012 21:18:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Mejora el aspecto de los formularios con Javascript</title>
		<link>http://sumolari.com/mejora-el-aspecto-de-los-formularios-con-javascript/</link>
		<comments>http://sumolari.com/mejora-el-aspecto-de-los-formularios-con-javascript/#comments</comments>
		<pubDate>Tue, 26 May 2009 17:08:18 +0000</pubDate>
		<dc:creator>Sumolari</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[formularios]]></category>
		<category><![CDATA[trucos]]></category>

		<guid isPermaLink="false">http://sumolari.com/?p=1868</guid>
		<description><![CDATA[A finales de enero comenté un método para mejorar nuestros formularios mediante Javascript y algo de CSS (aquí tenéis el artículo del que hablo). Pues bien, ayer en Anieto2k comentaron un método similar para mejorar los formularios, y he pensado que no estaría mal hacer una pequeña lista con diferentes métodos para darle un estilo [...]]]></description>
			<content:encoded><![CDATA[<p>A finales de enero comenté un método para mejorar nuestros formularios mediante <strong>Javascript</strong> y algo de <strong>CSS </strong>(<a href="http://sumolari.com/dale-un-nuevo-estilo-a-tus-formularios/">aquí tenéis el artículo del que hablo</a>). Pues bien, ayer en <a href="http://www.anieto2k.com/2009/05/25/sexy-forms-el-bueno-bonito-y-barato-de-los-scripts-para-formularios/">Anieto2k</a> comentaron un método similar para mejorar los formularios, y he pensado que no estaría mal hacer una pequeña lista con diferentes métodos para darle un estilo nuevo a nuestros formularios.</p>
<table border="1" cellspacing="0" cellpadding="1">
<tbody>
<tr>
<th scope="col"></th>
<th scope="col">Ryanfait.com</th>
<th scope="col">Sexy Forms</th>
<th scope="col">Niceforms</th>
<th scope="col">jQuery Nice Form</th>
<th scope="col">FancyForm</th>
</tr>
<tr>
<th scope="row">Compatible con:</th>
<td><img class="alignnone size-full wp-image-1874" title="Internet Explorer 7" src="http://sumolari.com/wp-content/uploads/2009/05/ie7.png" alt="Internet Explorer 7" width="16" height="16" /> <img class="alignnone size-full wp-image-1875" title="Internet Explorer 8" src="http://sumolari.com/wp-content/uploads/2009/05/ie8.png" alt="Internet Explorer 8" width="16" height="16" /> <img class="alignnone size-full wp-image-1873" title="Firefox " src="http://sumolari.com/wp-content/uploads/2009/05/firefox.png" alt="Firefox " width="16" height="16" /> <img class="alignnone size-full wp-image-1876" title="Opera" src="http://sumolari.com/wp-content/uploads/2009/05/opera.png" alt="Opera" width="16" height="16" /> <img class="alignnone size-full wp-image-1877" title="Safari" src="http://sumolari.com/wp-content/uploads/2009/05/safari.png" alt="Safari" width="16" height="16" /> <a href="http://sumolari.com/wp-content/uploads/2009/05/chrome.png" rel="lightbox-1868"><img class="alignnone size-full wp-image-1891" title="Google Chrome" src="http://sumolari.com/wp-content/uploads/2009/05/chrome.png" alt="Google Chrome" width="16" height="16" /></a></td>
<td><img class="alignnone size-full wp-image-1872" title="Internet Explorer 6" src="http://sumolari.com/wp-content/uploads/2009/05/ie6.png" alt="Internet Explorer 6" width="16" height="16" /> <img class="alignnone size-full wp-image-1874" title="Internet Explorer 7" src="http://sumolari.com/wp-content/uploads/2009/05/ie7.png" alt="Internet Explorer 7" width="16" height="16" /> <img class="alignnone size-full wp-image-1875" title="Internet Explorer 8" src="http://sumolari.com/wp-content/uploads/2009/05/ie8.png" alt="Internet Explorer 8" width="16" height="16" /> <img class="alignnone size-full wp-image-1873" title="Firefox " src="http://sumolari.com/wp-content/uploads/2009/05/firefox.png" alt="Firefox " width="16" height="16" /> <img class="alignnone size-full wp-image-1876" title="Opera" src="http://sumolari.com/wp-content/uploads/2009/05/opera.png" alt="Opera" width="16" height="16" /> <img class="alignnone size-full wp-image-1877" title="Safari" src="http://sumolari.com/wp-content/uploads/2009/05/safari.png" alt="Safari" width="16" height="16" /> <a href="http://sumolari.com/wp-content/uploads/2009/05/chrome.png" rel="lightbox-1868"><img class="alignnone size-full wp-image-1891" title="Google Chrome" src="http://sumolari.com/wp-content/uploads/2009/05/chrome.png" alt="Google Chrome" width="16" height="16" /></a></td>
<td><img class="alignnone size-full wp-image-1874" title="Internet Explorer 7" src="http://sumolari.com/wp-content/uploads/2009/05/ie7.png" alt="Internet Explorer 7" width="16" height="16" /> <img class="alignnone size-full wp-image-1873" title="Firefox " src="http://sumolari.com/wp-content/uploads/2009/05/firefox.png" alt="Firefox " width="16" height="16" /> <img class="alignnone size-full wp-image-1876" title="Opera" src="http://sumolari.com/wp-content/uploads/2009/05/opera.png" alt="Opera" width="16" height="16" /> <img class="alignnone size-full wp-image-1877" title="Safari" src="http://sumolari.com/wp-content/uploads/2009/05/safari.png" alt="Safari" width="16" height="16" /> <a href="http://sumolari.com/wp-content/uploads/2009/05/chrome.png" rel="lightbox-1868"><img class="alignnone size-full wp-image-1891" title="Google Chrome" src="http://sumolari.com/wp-content/uploads/2009/05/chrome.png" alt="Google Chrome" width="16" height="16" /></a></td>
<td><img class="alignnone size-full wp-image-1872" title="Internet Explorer 6" src="http://sumolari.com/wp-content/uploads/2009/05/ie6.png" alt="Internet Explorer 6" width="16" height="16" /> <img class="alignnone size-full wp-image-1874" title="Internet Explorer 7" src="http://sumolari.com/wp-content/uploads/2009/05/ie7.png" alt="Internet Explorer 7" width="16" height="16" /> <img class="alignnone size-full wp-image-1875" title="Internet Explorer 8" src="http://sumolari.com/wp-content/uploads/2009/05/ie8.png" alt="Internet Explorer 8" width="16" height="16" /> <img class="alignnone size-full wp-image-1873" title="Firefox " src="http://sumolari.com/wp-content/uploads/2009/05/firefox.png" alt="Firefox " width="16" height="16" /> <img class="alignnone size-full wp-image-1876" title="Opera" src="http://sumolari.com/wp-content/uploads/2009/05/opera.png" alt="Opera" width="16" height="16" /> <img class="alignnone size-full wp-image-1877" title="Safari" src="http://sumolari.com/wp-content/uploads/2009/05/safari.png" alt="Safari" width="16" height="16" /> <a href="http://sumolari.com/wp-content/uploads/2009/05/chrome.png" rel="lightbox-1868"><img class="alignnone size-full wp-image-1891" title="Google Chrome" src="http://sumolari.com/wp-content/uploads/2009/05/chrome.png" alt="Google Chrome" width="16" height="16" /></a></td>
<td><img class="alignnone size-full wp-image-1874" title="Internet Explorer 7" src="http://sumolari.com/wp-content/uploads/2009/05/ie7.png" alt="Internet Explorer 7" width="16" height="16" /> <img class="alignnone size-full wp-image-1875" title="Internet Explorer 8" src="http://sumolari.com/wp-content/uploads/2009/05/ie8.png" alt="Internet Explorer 8" width="16" height="16" /> <img class="alignnone size-full wp-image-1873" title="Firefox " src="http://sumolari.com/wp-content/uploads/2009/05/firefox.png" alt="Firefox " width="16" height="16" /> <img class="alignnone size-full wp-image-1876" title="Opera" src="http://sumolari.com/wp-content/uploads/2009/05/opera.png" alt="Opera" width="16" height="16" /> <img class="alignnone size-full wp-image-1877" title="Safari" src="http://sumolari.com/wp-content/uploads/2009/05/safari.png" alt="Safari" width="16" height="16" /> <a href="http://sumolari.com/wp-content/uploads/2009/05/chrome.png" rel="lightbox-1868"><img class="alignnone size-full wp-image-1891" title="Google Chrome" src="http://sumolari.com/wp-content/uploads/2009/05/chrome.png" alt="Google Chrome" width="16" height="16" /></a></td>
</tr>
<tr>
<th scope="row">Múltiples diseños:</th>
<td>Sí</td>
<td>Sí</td>
<td>No</td>
<td>No</td>
<td>No</td>
</tr>
<tr>
<th scope="row">Elementos desactivados:</th>
<td>No</td>
<td>Sí</td>
<td>No</td>
<td>No</td>
<td>No</td>
</tr>
<tr>
<th scope="row">¿Cambia cuando se selecciona un elemento?</th>
<td>Sí</td>
<td>Sí</td>
<td>No</td>
<td>No</td>
<td>No</td>
</tr>
<tr>
<th scope="row">Framework:</th>
<td>Ninguno</td>
<td>Mootools (también jQuery en el futuro)</td>
<td>Ninguno</td>
<td>jQuery</td>
<td>Mootools</td>
</tr>
<tr>
<th scope="row">Elementos a los que se aplica:</th>
<td>Casillas de verificación, botones de radio y listas de selección</td>
<td>Cajas de texto, listas de selección, botones de radio, casillas de verificación, areas de texto y botones</td>
<td>Cajas de texto, listas de selección, botones de radio, casillas de verificación, areas de texto, botones y subida de archivos</td>
<td>Cajas de texto, listas de selección, botones de radio, casillas de verificación y botones</td>
<td>Botones de radio y casillas de verificación</td>
</tr>
<tr>
<th scope="row">Capturas de pantalla:</th>
<td><a href="http://sumolari.com/wp-content/uploads/2009/05/ryanfait_screenshot.png" rel="lightbox-1868"><img class="alignnone size-thumbnail wp-image-1883" title="Ryanfait" src="http://sumolari.com/wp-content/uploads/2009/05/ryanfait_screenshot-150x150.png" alt="Ryanfait" width="100" height="100" /></a></td>
<td><a href="http://sumolari.com/wp-content/uploads/2009/05/sexyform_screenshot.png" rel="lightbox-1868"><img class="alignnone size-thumbnail wp-image-1884" title="Sexy Forms" src="http://sumolari.com/wp-content/uploads/2009/05/sexyform_screenshot-150x150.png" alt="Sexy Forms" width="100" height="100" /></a></td>
<td><a href="http://sumolari.com/wp-content/uploads/2009/05/niceform_screenshot.png" rel="lightbox-1868"><img class="alignnone size-thumbnail wp-image-1886" title="Niceforms" src="http://sumolari.com/wp-content/uploads/2009/05/niceform_screenshot-150x150.png" alt="Niceforms" width="100" height="100" /></a></td>
<td><a href="http://sumolari.com/wp-content/uploads/2009/05/jnice_screenshot.png" rel="lightbox-1868"><img class="alignnone size-thumbnail wp-image-1885" title="jQuery Nice Form" src="http://sumolari.com/wp-content/uploads/2009/05/jnice_screenshot-150x150.png" alt="jQuery Nice Form" width="100" height="100" /></a></td>
<td><a href="http://sumolari.com/wp-content/uploads/2009/05/fancyform_screenshot.png" rel="lightbox-1868"><img class="alignnone size-thumbnail wp-image-1881" title="FancyForm" src="http://sumolari.com/wp-content/uploads/2009/05/fancyform_screenshot-150x150.png" alt="FancyForm" width="100" height="100" /></a></td>
</tr>
<tr>
<th scope="row">Página oficial:</th>
<td><a href="http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/">Ryanfait.com</a></td>
<td><a href="http://www.coders.me/ejemplos/sexy-forms/">Sexy Forms</a></td>
<td><a rel="nofollow" href="http://www.emblematiq.com/projects/niceforms/">Niceforms<br />
</a></td>
<td><a rel="nofollow" href="http://www.whitespace-creative.com/jquery/jNice/">jQuery Nice Form</a></td>
<td><a rel="nofollow" href="http://lipidity.com/fancy-form/">FancyForm</a></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://sumolari.com/mejora-el-aspecto-de-los-formularios-con-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dale un nuevo estilo a tus formularios</title>
		<link>http://sumolari.com/dale-un-nuevo-estilo-a-tus-formularios/</link>
		<comments>http://sumolari.com/dale-un-nuevo-estilo-a-tus-formularios/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 19:19:33 +0000</pubDate>
		<dc:creator>Sumolari</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[formularios]]></category>

		<guid isPermaLink="false">http://sumolari.com/?p=1157</guid>
		<description><![CDATA[Alguno elementos de los formularios son más complicados de modificar a nuestro gusto que otros (por ejemplo, las casillas de verificación o las listas desplegables), y a veces no quedan como nos gustaría que quedasen y no se adaptan a nuestros diseños. Una solución para este problema es la que nos proponen en ryanfait.com, con [...]]]></description>
			<content:encoded><![CDATA[<p>Alguno elementos de los formularios son más complicados de modificar a nuestro gusto que otros (por ejemplo, las casillas de verificación o las listas desplegables), y a veces no quedan como nos gustaría que quedasen y no se adaptan a nuestros diseños.</p>
<p>Una solución para este problema es <a href="http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/">la que nos proponen en ryanfait.com</a>, con la que mediante un poco de Javascript y CSS podemos dar un toque especial a nuestros formularios.</p>
<p>Si queremos darle un nuevo estilo al formulario, tendremos que descargar <a href="http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/custom-form-elements.js">este archivo js</a>, e incluirlo en la página del formulario.</p>
<p>También hay que añadir este código CSS:</p>
<pre class="css" name="code">span.checkbox {
width: 19px;
height: 25px;
padding: 0 5px 0 0;
background: url(checkbox.gif) no-repeat;
display: block;
clear: left;
float: left;
}
span.radio {
width: 19px;
height: 25px;
padding: 0 5px 0 0;
background: url(radio.gif) no-repeat;
display: block;
clear: left;
float: left;
}
span.select {
position: absolute;
width: 158px;
height: 21px;
padding: 0 24px 0 8px;
color: #fff;
font: 12px/21px arial, sans-serif;
background: url(select.gif) no-repeat;
overflow: hidden;
}</pre>
<p>Lo último es descargar las imágenes de <a href="http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/checkbox.gif" rel="lightbox-1157">las casillas de verificación</a>, <a href="http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/radio.gif" rel="lightbox-1157">los radiobutton</a> (no se me ocurre ninguna buena traducción&#8230; ¿botones de radio? ¿botones circulares?) y <a href="http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/select.gif" rel="lightbox-1157">las listas desplegables</a>.</p>
<p>Para aplicarlo basta con añadir <em>class=&#8221;styled&#8221;</em> a los elementos que queremos darle ese nuevo estilo, mientras que dejamos como antes los que no queremos modificar.</p>
<p>Podéis descargar <a href="http://sumolari.com/wp-content/uploads/2009/01/formulario_con_estilo.zip">un pequeño formulario de prueba</a> que he creado. Es muy básico, pero se puede ver con facilidad cómo se aplica.</p>
<p>Espero que os resulte útil.</p>
]]></content:encoded>
			<wfw:commentRss>http://sumolari.com/dale-un-nuevo-estilo-a-tus-formularios/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Valida formularios con jQuery</title>
		<link>http://sumolari.com/valida-formularios-con-jquery/</link>
		<comments>http://sumolari.com/valida-formularios-con-jquery/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 15:20:20 +0000</pubDate>
		<dc:creator>Sumolari</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[formularios]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://sumolari.com/?p=862</guid>
		<description><![CDATA[Cuando tenemos que validar los datos de un formulario podemos recurrir a Javascript y crear nuestra función de validación, pero también podemos recurrir a jQuery para validar el formulario de forma rápida y sencilla. Para esto descargarmos jQuery y el plugin Validate. Pasos previos En el header del archivo que contiene el formulario añadimos: A [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando tenemos que validar los datos de un formulario podemos recurrir a Javascript y crear nuestra función de validación, pero también podemos recurrir a <a href="http://jquery.com/">jQuery</a> para validar el formulario de forma rápida y sencilla.</p>
<p>Para esto descargarmos <a href="http://jquery.com/">jQuery</a> y el plugin <a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">Validate</a>.<br />
<span id="more-862"></span><br />
<h3>Pasos previos</h3>
<p>En el header del archivo que contiene el formulario añadimos:</p>
<pre class="brush: jscript; title: ; notranslate">&lt;script src=&quot;jquery.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt; &lt;script src=&quot;jquery.validate.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre>
<p>A continuación añadimos:</p>
<pre class="brush: jscript; title: ; notranslate">&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
$().ready(function() {
$(&quot;#formulario&quot;).validate();
});
// --&gt;&lt;/script&gt;</pre>
<p>Para distinguir el formulario al que se le aplica la validación, jQuery busca el que tenga por id formulario. Podemos cambiar #formulario por #loquesea, siendo loquesea la id del formulario.</p>
<p>El código HTML del formulario puede ser una cosa así:</p>
<pre class="brush: xml; title: ; notranslate">

&lt;form id=&quot;formulario&quot; method=&quot;post&quot;&gt; Nombre:
&lt;label&gt;&lt;/label&gt;

&lt;input id=&quot;nombre&quot; name=&quot;nombre&quot; type=&quot;text&quot; /&gt;Contraseña:
&lt;label&gt;&lt;/label&gt;

&lt;input id=&quot;pass_1&quot; name=&quot;pass_1&quot; type=&quot;password&quot; /&gt;Repite contraseña:
&lt;label&gt;&lt;/label&gt;

&lt;input id=&quot;pass_2&quot; name=&quot;pass_2&quot; type=&quot;password&quot; /&gt;Email:
&lt;label&gt;&lt;/label&gt;

&lt;input id=&quot;email&quot; name=&quot;email&quot; type=&quot;text&quot; /&gt;&lt;label&gt;&lt;/label&gt;

&lt;input id=&quot;button&quot; name=&quot;button&quot; type=&quot;submit&quot; value=&quot;Enviar&quot; /&gt; &lt;/form&gt;</pre>
<p>Ahora tenemos que definir qué campos necesitan validación, para ello disponemos de dos métodos:</p>
<ol>
<li>Ponerle una clase específica a cada input, por ejemplo, class=&#8221;required&#8221; harí que el campo fuese obligatorio.</li>
<li>Definir los campos que requieres validación y qué tipo de validación requieren en el código Javascript que hemos añadido al principio.</li>
</ol>
<h3>El método de las clases</h3>
<p>Comencemos por el primer método: añadiendo clases a los campos del formulario.</p>
<p>Si queremos que todos los campos sean obligatorios basta con añadirles a todos <em>class=&#8221;required&#8221;</em>, ahora si dejamos en blanco un campo con esta clase nos mostrará un aviso.</p>
<p>Si le ponemos de clase &#8220;email&#8221;, buscará la estructura de una dirección de correo electrónico, en casi de no ser una estructura correcta (nombre@dominio.nnn), mostrará un aviso.</p>
<p>Podríamos dejar así el formulario anterior:</p>
<pre class="brush: xml; title: ; notranslate">

&lt;form id=&quot;formulario&quot; method=&quot;post&quot;&gt; Nombre:
&lt;label&gt;&lt;/label&gt;

&lt;input id=&quot;nombre&quot; class=&quot;required&quot; name=&quot;nombre&quot; type=&quot;text&quot; /&gt;Contraseña:
&lt;label&gt;&lt;/label&gt;

&lt;input id=&quot;pass_1&quot; class=&quot;required&quot; name=&quot;pass_1&quot; type=&quot;password&quot; /&gt;Repite contraseña:
&lt;label&gt;&lt;/label&gt;

&lt;input id=&quot;pass_2&quot; class=&quot;required&quot; name=&quot;pass_2&quot; type=&quot;password&quot; /&gt;Email:
&lt;label&gt;&lt;/label&gt;

&lt;input id=&quot;email&quot; class=&quot;required email&quot; name=&quot;email&quot; type=&quot;text&quot; /&gt;&lt;label&gt;&lt;/label&gt;

&lt;input id=&quot;button&quot; name=&quot;button&quot; type=&quot;submit&quot; value=&quot;Enviar&quot; /&gt; &lt;/form&gt;</pre>
<h3>El método de la definición</h3>
<p>El segundo método es un poco más complejo. Volvemos al punto en el que añadimos:</p>
<pre class="brush: jscript; title: ; notranslate">&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
$().ready(function() {
$(&quot;#formulario&quot;).validate();
});
// --&gt;&lt;/script&gt;</pre>
<p>Ahora en lugar de esto debemos añadir:</p>
<pre class="brush: jscript; title: ; notranslate">&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
$().ready(function() {
$(&quot;#formulario&quot;).validate({
rules: {
pass_2: {
required: true,
equalTo: &quot;#pass_1&quot;
}
}
});
});
// --&gt;&lt;/script&gt;</pre>
<h4>¿Cómo funciona?</h4>
<p>Bien, después de <em>rules:{</em> añadimos el id del campo de nuestro formulario seguido de las reglas que debe cumplir.</p>
<p>En este ejemplo el campo pass_2 es obligatorio, y además debe ser igual a pass_1, si no lo es mostrará un aviso.</p>
<p>Podemos añadir más reglas, como caracteres máximos, rango de caracteres (sólo para número enteros), fechas, etc, podéis ver una lista de todas las reglas <a href="http://docs.jquery.com/Plugins/Validation#Options_for_the_validate.28.29_method">aquí</a>.</p>
<p>Ambos métodos son compatibles, podemos usar los dos en el mismo formulario.</p>
<p>Cualquier duda que tengáis no dudéis en preguntarla en los comentarios, espero que os sea útil.</p>
]]></content:encoded>
			<wfw:commentRss>http://sumolari.com/valida-formularios-con-jquery/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>Subir un archivo a tu servidor con PHP</title>
		<link>http://sumolari.com/subir-un-archivo-a-tu-servidor-con-php/</link>
		<comments>http://sumolari.com/subir-un-archivo-a-tu-servidor-con-php/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 11:00:30 +0000</pubDate>
		<dc:creator>Sumolari</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[archivos]]></category>
		<category><![CDATA[formularios]]></category>

		<guid isPermaLink="false">http://sumolari.com/?p=359</guid>
		<description><![CDATA[Nunca biene mal saber algo más, aunque no lo vayas a usar. Yo no pensaba que usaría un formulario para subir archivos al servidor, pero hace unos días he necesitado crear un formulario de este tipo, así que me he puesto a investigar un poco y a crear un script para subir archivos al servidor. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sumolari.com/wp-content/uploads/2008/10/subir_imagen.png" rel="lightbox-359"><img class="alignleft size-full wp-image-361" style="margin: 5px;" title="Subir imagen" src="http://sumolari.com/wp-content/uploads/2008/10/subir_imagen.png" alt="" width="247" height="80" /></a>Nunca biene mal saber algo más, aunque no lo vayas a usar.</p>
<p>Yo no pensaba que usaría un formulario para subir archivos al servidor, pero hace unos días he necesitado crear un formulario de este tipo, así que me he puesto a investigar un poco y a crear un script para subir archivos al servidor.</p>
<p>El objetivo del tutorial está claro: Subir un archivo al servidor con un formulario.</p>
<p><span id="more-359"></span></p>
<p>Para poder realizarlo necesitamos darle permisos 777 a la carpeta en la que subiremos las imágenes.</p>
<h3>El formulario</h3>
<p>Primero creamos un formulario con un input de tipo <em>file</em>. Además tenemos que darle al atributo <em>enctype </em>del formulario el valor<em> multipart/form-data</em>.</p>
<p>El campo de para subir el archivo lo llamaremos <em>archivo</em>.</p>
<p>El final tendremos un código así:</p>
<div class="code"><code><br />
&lt;form method="post" enctype="multipart/form-data"&gt;<br />
&lt;input type="file" name="archivo"&gt;<br />
&lt;input type="submit" value="Enviar"&gt;<br />
&lt;/form&gt;</code></div>
<h3>El PHP</h3>
<p>Ahora pasamos al PHP. Usaremos $_FILE para detectar el nombre temporal de archivo y el nombre del mismo.</p>
<p>Si usamos la función print_r para mostrar la matriz $_FILE, veremos que ésta tiene almacenados, entre otros datos, el archivo temporal, el tamaño y el formato del archivo.</p>
<p>Nosotros nos fijaremos sólo en el nombre.</p>
<p>Antes de seguir tenemos que comprobar que el archivo ha sido subido con el formulario, así que lo comprobamos usando la función <a href="http://es2.php.net/is_uploaded_file">is_uploaded_file()</a>.</p>
<p>Después usando la función <a href="http://es2.php.net/copy">copy()</a> copiaremos el archivo a la carpeta que queramos.</p>
<p>El código quedará así:</p>
<div class="code"><code>if (is_uploaded_file($_FILES['archivo']['tmp_name'])) {<br />
copy($_FILES['archivo']['tmp_name'], 'C:/Servidor/'.$_FILES['archivo']['name'].'');<br />
}</code></div>
<p><strong>Nota:</strong> Si os fijáis en la función copy, he escrto C:/Servidor/ . Esta es la carpeta en la que quiero poner los archivos subidos. Tened en cuenta que estoy trabajando en un servidor casero en Windows, y que si vosotros tenéis un servidor Linux no debéis poner C:/.</p>
<p>Con esto ya copiaría el archivo a la carpeta que queremos.</p>
<h3>Últimos retoques</h3>
<p>Por último podemos añadir una cosa más: Un aviso de si se ha subido correctamente o no. Para eso creamos una variable juesto después de la función copy (dentro de la condición), que tenga por valor true.</p>
<p>Luego creamos una nueva condición: Si la variable es true, se ha subido bien el archivo, si no, avisamos del error.</p>
<p>El código final quedaría así:</p>
<div class="code"><code>if (is_uploaded_file($_FILES['archivo']['tmp_name'])) {<br />
copy($_FILES['archivo']['tmp_name'], 'C:/Servidor/'.$_FILES['archivo']['name'].'');<br />
$subido = true;<br />
}<br />
if($subido) {<br />
echo "&lt;p&gt;El archivo ha sido subido con exito&lt;/p&gt;";<br />
} else {<br />
echo "&lt;p&gt;&lt;strong&gt;Error:&lt;/strong&gt; El archivo no ha sido subido&lt;/p&gt;";<br />
}<br />
</code></div>
<p>Y listo, con esto ya hemos acabado nuestro formulario para subir archivos.</p>
]]></content:encoded>
			<wfw:commentRss>http://sumolari.com/subir-un-archivo-a-tu-servidor-con-php/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
	</channel>
</rss>

