<?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>El blog de Juanky Moral &#187; Programación web</title>
	<atom:link href="http://www.juancarlosmoral.es/category/programacion-web/feed" rel="self" type="application/rss+xml" />
	<link>http://www.juancarlosmoral.es</link>
	<description></description>
	<lastBuildDate>Mon, 23 Jan 2012 17:50:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<div id='fb-root'></div>
					<script type='text/javascript'>
						window.fbAsyncInit = function()
						{
							FB.init({appId: null, status: true, cookie: true, xfbml: true});
						};
						(function()
						{
							var e = document.createElement('script'); e.async = true;
							e.src = document.location.protocol + '//connect.facebook.net/es_LA/all.js';
							document.getElementById('fb-root').appendChild(e);
						}());
					</script>	
						<item>
		<title>Códigos de barras con PHP y PEAR</title>
		<link>http://www.juancarlosmoral.es/2005/11/09/codigos-de-barras-con-php-y-pear</link>
		<comments>http://www.juancarlosmoral.es/2005/11/09/codigos-de-barras-con-php-y-pear#comments</comments>
		<pubDate>Wed, 30 Nov -0001 00:00:00 +0000</pubDate>
		<dc:creator>juanky</dc:creator>
				<category><![CDATA[Programación web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Los códigos de barras son una solución muy eficaz para enlazar objetos del mundo real con la representación de esos objetos en un sistema informático. Si estás con PHP, ésta es una solución rápida y sencilla que te permitirá trabajar &#8230; <a href="http://www.juancarlosmoral.es/2005/11/09/codigos-de-barras-con-php-y-pear">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://www.juancarlosmoral.es/2005/11/09/codigos-de-barras-con-php-y-pear' layout='default' show_faces='false' width='400' action='like' colorscheme='light' send='false' /></div><p><img src="http://www.collectionscanada.ca/iso/tc46sc9/barcode.gif" alt="barcode" /></p>
<p>Los códigos de barras son una solución muy eficaz para enlazar objetos del mundo real con la representación de esos objetos en un sistema informático.</p>
<p>Si estás con PHP, ésta es una solución rápida y sencilla que te permitirá trabajar con códigos de barra dentro de una aplicación web: la clase <a href="http://pear.php.net/package/Image_Barcode" target="_blank">PEAR::Image_Barcode</a>.</p>
<p><span id="more-31"></span><br />
Se requiere, previamente a la instalación, disponer del siguiente software:</p>
<ul>
<li><a href="http://pear.php.net" target="_blank">PEAR (The PHP Extension and Application Repository)</a>. Un sistema que permite extender las capacidades del lenguaje PHP de forma parecida a como lo hace Debian con <code>apt-get</code>.</li>
<li><a href="http://www.boutell.com/gd/" target="_blank">La librería libre GD</a>, que permite la creación dinámica de imágenes (gif, jpeg, y png, entre otros formatos) y que, posiblemente, ya tengas instalada.<br />
Para saber si ya la tienes instalada, puedes crear un fichero &#8216;test.php&#8217; con la siguiente línea:<br />
<code>&lt; ?=phpinfo()?&gt;</code><br />
y lo sueltas en algún lugar accesible a tu servidor web, como por ejemplo en el <code>DOCUMENT_ROOT</code>:<br />
<code> http://localhost/test.php</code>)<br />
El resultado crea dinámicamente una página con todas las características de tu instalación PHP.</li>
</ul>
<p>La instalación, al menos en GNU/Linux, es un proceso muy sencillo con PEAR:<br />
<code># pear install Image_Barcode</code></p>
<p>Si echas un vistazo al fichero <code>Barcode.php</code>, dentro del directorio <code>/Image/Barcode</code> de tu instalación, verás que la clase tiene un único método: <code>draw</code>. Este método acepta los siguientes parámetros: <code>text</code>,<code>type</code>, e <code>imgtype</code></p>
<ul>
<li><code>text</code> es la cadena a representar en tu código de barras</li>
<li><code>type</code> es el tipo de código de barras.</li>
<li><code>imgtype</code> es el tipo de imagen que quieres que tenga el código de barras, v.g., png, jpg, gif.</li>
</ul>
<p>El código es muy simple. La clase <code>Image_Barcode</code> devuelve un flujo de datos hacia tu navegador, componiendo una imagen. Lo único que hay que hacer es <em>instanciar</em> un objeto de la clase <code>Image_Barcode</code> e invocar su método <code>draw</code>, pasándole los parámetros correspondientes.</p>
<p>Puedes hacer que el mensaje a representar sea dinámico, por ejemplo, pasándolo a la página con el método GET:</p>
<blockquote><p> <code><br />
&lt; ?php<br />
require_once("Image/Barcode.php");<br />
$bc = new Image_Barcode;<br />
$bc-&gt;draw($_GET['¡Hola Mundo!'], "Code128", "png");<br />
?&gt;<br />
</code></p></blockquote>
<p>Es posible tener un control más fino para la creación del código de barras. Para darte cuenta de esto, echa un vistazo al código del fichero <code>Code39.php</code>, dentro del directorio <code>Barcode</code>.<br />
Verás que si instancias directamente esta clase, puedes acceder a características como la anchura, altura del código de barras o incluso a las características de visualización del texto:</p>
<blockquote><p> <code><br />
&lt; ?php<br />
require_once("Image/Barcode/Code39.php");<br />
$bc = new Image_Barcode_Code39('',2,4);<br />
$bc-&gt;draw($_GET['mensaje'], 'png', true, 120);<br />
?&gt;<br />
</code></p></blockquote>
<p>Hemos creado una instancia de <code>Image_Barcode_Code39</code> llamando al constructor y pasado los valores 2 y 4 como factores de delgadez y densidad de las barras. Después hemos invocado el método <code>draw</code> pasando el texto, el tipo de salida, y <code>true</code> para no mostrar el texto. También hemos indicado 120 como altura del código de barras.</p>
<p>El grueso del trabajo lo realizan las clases y la librería GD. Como puedes ver, con unas pocas líneas de código, es posible añadir códigos de barras a tu aplicación PHP.</p>
<p><strong>Referencias:</strong></p>
<ul>
<li><a href="http://jason.unleashed.com.br/content/blogcategory/9/16/" target="_blank">Jason at HOME</a></li>
<li><a href="http://techrepublic.com.com/5100-3513_11-5692389.html" target="_blank">Add barcodes to your Web apps using PEAR and PHP</a></li>
</ul>
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.juancarlosmoral.es%2F2005%2F11%2F09%2Fcodigos-de-barras-con-php-y-pear"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.juancarlosmoral.es%2F2005%2F11%2F09%2Fcodigos-de-barras-con-php-y-pear&amp;source=juankymoral&amp;style=compact&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.juancarlosmoral.es/2005/11/09/codigos-de-barras-con-php-y-pear/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evitando RE-POSTS</title>
		<link>http://www.juancarlosmoral.es/2005/07/21/evitando-re-posts</link>
		<comments>http://www.juancarlosmoral.es/2005/07/21/evitando-re-posts#comments</comments>
		<pubDate>Wed, 30 Nov -0001 00:00:00 +0000</pubDate>
		<dc:creator>juanky</dc:creator>
				<category><![CDATA[Programación web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Hace tiempo que quería resolver el problema que se produce cuando un usuario impaciente pulsa más de una vez el botón en un formulario enviando datos. Dependiendo del tipo de proceso detrás de esta acción, las consecuencias pueden ser más &#8230; <a href="http://www.juancarlosmoral.es/2005/07/21/evitando-re-posts">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://www.juancarlosmoral.es/2005/07/21/evitando-re-posts' layout='default' show_faces='false' width='400' action='like' colorscheme='light' send='false' /></div><p>Hace tiempo que quería resolver el problema que se produce cuando un usuario impaciente pulsa más de una vez el botón en un formulario enviando datos. Dependiendo del tipo de proceso detrás de esta acción, las consecuencias pueden ser más o menos graves.<br />
Imagina que compras en una página y al confirmar la compra, pulsas dos veces.<br />
Resultado: si la página no controla esta acción, posiblemente acabes con dos cargos en tu tarjeta.<br />
Esta mañana, <em>googleando</em> he encontrado una solución muy simple, eso sí, requiere Javascript:</p>
<p><strong>Deshabilitar el botón una vez que se ha pulsado sobre él.</strong><br />
Ejemplo:</p>
<input name="enviar" value="Enviar datos" onclick="this.value='Espera...';this.disabled=true" type="button" />Lo cual se puede lograr mediante el siguiente código:<br />
<code><br />
&lt; input type="button"  name="enviar_datos" value="Enviar datos" onClick="this.value='Espera...'; this.disabled=true; this.form.submit()" /&gt;</code>
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.juancarlosmoral.es%2F2005%2F07%2F21%2Fevitando-re-posts"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.juancarlosmoral.es%2F2005%2F07%2F21%2Fevitando-re-posts&amp;source=juankymoral&amp;style=compact&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.juancarlosmoral.es/2005/07/21/evitando-re-posts/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPXref</title>
		<link>http://www.juancarlosmoral.es/2005/03/07/phpxref</link>
		<comments>http://www.juancarlosmoral.es/2005/03/07/phpxref#comments</comments>
		<pubDate>Wed, 30 Nov -0001 00:00:00 +0000</pubDate>
		<dc:creator>juanky</dc:creator>
				<category><![CDATA[Programación web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[La verdad es que hoy se me está dando muy bien la pesca . Acabo de encontrar algo que ni siquiera sabía que existiera. Un generador de documentación basado en referencias cruzadas, para proyectos grandes realizados con PHP. Permite navegar &#8230; <a href="http://www.juancarlosmoral.es/2005/03/07/phpxref">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://www.juancarlosmoral.es/2005/03/07/phpxref' layout='default' show_faces='false' width='400' action='like' colorscheme='light' send='false' /></div><p>La verdad es que hoy se me está dando muy bien la pesca <img src='http://www.juancarlosmoral.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Acabo de encontrar algo que ni siquiera sabía que existiera. Un generador de documentación basado en referencias cruzadas, para proyectos grandes realizados con PHP.</p>
<p>Permite navegar por todo el código utilizando un <em>tree</em>.  Puedes buscar clases, funciones, variables, etc. y ver en qué parte del código son referenciadas. Pero lo más bueno es que se puede imprimir el código en un formato perfecto y con la sintaxis coloreada. Aquí puedes ver una  <a href="http://phpxref.sourceforge.net/phpxref-xaraya/index.html.gz">demo funcional</a>.</p>
<p>Muy recomendable: <a href="http://phpxref.sourceforge.net/">PHPXref</a>
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.juancarlosmoral.es%2F2005%2F03%2F07%2Fphpxref"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.juancarlosmoral.es%2F2005%2F03%2F07%2Fphpxref&amp;source=juankymoral&amp;style=compact&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.juancarlosmoral.es/2005/03/07/phpxref/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

