<?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>BlogoDev &#187; Web</title>
	<atom:link href="http://www.bluby.org/blog/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bluby.org/blog</link>
	<description>Un blog para desarrolladores</description>
	<lastBuildDate>Mon, 28 Jun 2010 17:34:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Como hacer debug de PHP</title>
		<link>http://www.bluby.org/blog/2010/04/como-hacer-debug-de-php/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=como-hacer-debug-de-php</link>
		<comments>http://www.bluby.org/blog/2010/04/como-hacer-debug-de-php/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 16:06:10 +0000</pubDate>
		<dc:creator>P-los</dc:creator>
				<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.bluby.org/blog/?p=103</guid>
		<description><![CDATA[Un tutorial para poder hacer debug de una aplicación PHP desde Eclipse.]]></description>
			<content:encoded><![CDATA[<p>Esta ocasión les presento un tutorial para poder debugguear nuestras aplicaciones PHP de manera local. Para ello necesitaremos tener instalado y configurado Apache con PHP en nuestra computadora. Si no lo tienes aún, la manera más sencilla es mediante <a href="http://www.wampserver.com/en/">WAMP</a>, <a href="http://www.lamphowto.com/">LAMP</a> o <a href="http://www.mamp.info/en/index.html">MAMP</a> según nuestro sistema operativo.</p>
<p>Requerimos también <a href="http://www.eclipse.org/pdt/downloads/">Eclipse con PDT</a> (PHP Developer Tools). Lo descargamos, y lo desempacamos en un sitio facil de recordar.</p>
<p>Desde la página de <a href="http://xdebug.org/download.php">XDebug</a> descargamos la versión más reciente, y que corresponda a nuestra versión de PHP instalada, y según si nuestro equipo es de 32 ó 64 bits. De las variantes, utilizaremos la llamada simplemente VC6, y la guardaremos en la carpeta donde está instalado PHP.</p>
<p>Una vez hecho esto, hay que modificar el archivo php.ini para que se tome en cuenta esta nueva extensión, agregando lo siguiente al final del archivo:</p>
<p><code>[XDebug]</code><br />
<code>zend_extension_ts=</code><code>"C:\php\php_xdebug-2.0.4-5.2.8.dll"</code><br />
<code>xdebug.remote_enable=1</code><br />
<code>xdebug.remote_host=127.0.0.1</code><br />
<code>xdebug.remote_port=9000</code><br />
<code>xdebug.remote_handler=dbgp</code><br />
<code>xdebug.profiler_enable=1</code><br />
<code>xdebug.profiler_output_dir="RUTA DE UN DIRECTORIO PARA ARCHIVOS TEMPORALES"</code></p>
<p>NOTA 1:  La ruta de la extensión puede variar según en donde se haya instalado PHP. Para el caso de que estés utilizando WAMP, la ruta será: &#8220;C:\wamp\bin\php\php5.3.0\&#8221;. Verifica que el nombre del archivo corresponda al que se descargó.</p>
<p>NOTA 2: Para el caso de que se utilice PHP 5.3.0, habrá que cambiar &#8220;zend_extension_ts&#8221; por &#8220;zend_extension&#8221;. De lo contrario no funcionará.</p>
<p>Si se tiene instalado Zend Server, hay que deshabilitarlo, ya que entrarán en conflicto si no se hace. Para ello, todas las entradas del mismo archivo php.ini que inicien con &#8220;zend.&#8221; (sin comillas) hay que convertirlas en comentario agregando un ; al principio:</p>
<p><code>[Zend]</code><br />
<code>;zend.install_dir=</code><code>"C:\Program Files\Zend\ZendServer"</code><br />
<code>;zend.conf_dir=</code><code>"C:\Program Files\Zend\ZendServer\etc\"</code><br />
<code>;zend.pid_dir=</code><code>"C:\Program Files\Zend\ZendServer\logs"</code><br />
<code>;zend.temp_dir=</code><code>"C:\Program Files\Zend\ZendServer\tmp"</code><br />
<code>;zend.log_dir=</code><code>"C:\Program Files\Zend\ZendServer\logs"</code><br />
<code>;zend.data_dir=</code><code>"C:\Program Files\Zend\ZendServer\data"</code><br />
<code>;zend.httpd_uid=HTTPD_UID</code><br />
<code>;zend.httpd_gid=HTTPD_GID</code><br />
<code>;zend.ini_scandir=cfg</code><br />
<code>;zend.serial_number=</code><br />
<code>;zend.user_name=</code></p>
<p>Ya que esté nuestro archivo listo, lo guardamos y reiniciamos el servidor Apache para que los cambios surtan efecto.</p>
<p>Para verificar que esté todo correcto, veamos la información que hay en nuestro phpinfo, haciendo un archivo .php con lo siguiente:</p>
<p><code>&lt;?php phpinfo(); ?&gt;</code></p>
<p>y lo abrimos desde nuestro navegador.</p>
<p>Si al buscar en esta página encontramos los diferentes valores de XDebug, significa que todo va por buen camino.</p>
<p>Ahora configuremos Eclipse.</p>
<p>Abrimos Eclipse, y vamos al menú Window -&gt; Preferences.  En el menú de la izquierda, expandimos el apartado de PHP y entramos a Debug.  En la parte derecha, la entrada &#8220;PHP Debugger&#8221; la establecemos en &#8220;XDebug&#8221;.</p>
<p>Creamos un proyecto con cualquier instrucción de PHP para usarlo como prueba.</p>
<p>Una vez que tengamos algo listo para debugguear, vamos al menú Run -&gt; Debug, y ya estaremos debuggueando nuestro código PHP.</p>
<p>Podemos cambiar la vista del IDE a modo &#8220;PHP Debug&#8221; para que nos muestre las barras de herramientas y un esquema más apto para esta tarea. Por default, eclipse detendrá la ejecución en la primera línea de php, y se puede cambiar en la ventana de preferencias, en el apartado de php debug que abrimos momentos antes, y quitandole la marca a &#8220;Break at first line&#8221;.</p>
<p>Todo esto lo he probado en Windows, pero deben ser los mismos principios para aplicarse a mac o linux.</p>
<p>Tomado en parte de: <a href="http://www.pabloviquez.com/2009/06/como-instalar-eclipse-pdt-y-xdebug-en-windows/">Pablo Viquez Blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bluby.org/blog/2010/04/como-hacer-debug-de-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Crystal Reports con DataSet&#8217;s en ASP.Net</title>
		<link>http://www.bluby.org/blog/2010/01/crystal-reports-con-datasets-en-asp-net/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=crystal-reports-con-datasets-en-asp-net</link>
		<comments>http://www.bluby.org/blog/2010/01/crystal-reports-con-datasets-en-asp-net/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 07:18:25 +0000</pubDate>
		<dc:creator>P-los</dc:creator>
				<category><![CDATA[Técnicas]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[Crystal Reports]]></category>

		<guid isPermaLink="false">http://www.bluby.org/blog/?p=90</guid>
		<description><![CDATA[Esta ocasión me topé con la necesidad de mostrar un reporte de Crystal Reports en un formulario .aspx de .NET tomando como origen de datos un DataSet. Tras un buen rato de probar con diferentes métodos que me encontré en Google y varios foros que no lograron resolver mis dudas, he aqui una forma sencilla [...]]]></description>
			<content:encoded><![CDATA[<p>Esta ocasión me topé con la necesidad de mostrar un reporte de Crystal Reports en un formulario .aspx de .NET tomando como origen de datos un DataSet. Tras un buen rato de probar con diferentes métodos que me encontré en Google y varios foros que no lograron resolver mis dudas, he aqui una forma sencilla para lograr este cometido.</p>
<p>Lo primero que hay que hacer es crear el DataSet (archivo .xsd). No mostraré aqui como crearlo pues ya hay muchos sitios con esa información, así que supondremos que ya lo tenemos creado.</p>
<p>Ahora crearemos nuestro reporte. Agregamos un nuevo elemento a nuestro proyecto de tipo &#8220;Crystal Reports&#8221; y en el &#8220;Field Explorer&#8221; en el nodo &#8220;Database Fields&#8221; seleccionamos &#8220;Database Expert&#8221; en el menú contextual:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-91" title="DatabaseExpert" src="http://www.bluby.org/blog/wp-content/uploads/2010/01/DatabaseExpert.jpg" alt="DatabaseExpert" width="401" height="349" /></p>
<p style="text-align: left;">Dentro del arbol en el cuadro izquierdo se mostrarán los DataSets que tenemos en nuestra solución. Agregamos el (los) DataSet o Tabla que requerimos y aceptamos. Una vez hecho esto, en el &#8220;Field Explorer&#8221; se mostrarán las tablas y campos que hayamos seleccionado. Arrastramos estos campos a nuestro reporte para diseñarlo segun nuestras necesidades.</p>
<p style="text-align: left;">Ahora en nuestro archivo .aspx agregamos un CrystalReportViewer para mostrar nuestro reporte.</p>
<p style="text-align: left;">En la parte de código, la parte medular es la siguiente:</p>
<h3 style="text-align: left;">Visual Basic:</h3>
<p style="text-align: left;"><code>' Llenar DataSet ya sea desde una base de datos, un web service, o datos ingresados por el usuario<br />
Dim dsDatos as dsClientes() = ObtenerDatos()<br />
' Creamos el objeto<br />
Dim rpt As New CrystalDecisions.CrystalReports.Engine.ReportDocument()<br />
' Indicamos la ruta del archivo del reporte que requerimos. En este caso suponemos que está en la raiz de nuestro proyecto<br />
rpt.FileName = Server.MapPath("~\rptListadoClientes.rpt")<br />
' Establecemos nuestro DataSet como origen de datos de nuestro reporte<br />
rpt.SetDataSource(dsDatos)<br />
' Indicamos al Report Viewer cual es el reporte que queremos mostrar<br />
CrystalReportViewer1.ReportSource = rpt</code></p>
<h3 style="text-align: left;">C#</h3>
<p style="text-align: left;"><code>// Llenar DataSet ya sea desde una base de datos, un web service, o datos ingresados por el usuario<br />
dsClientes dsDatos = ObtenerDatos();<br />
//Creamos el objeto<br />
CrystalDecisions.CrystalReports.Engine.ReportDocument rpt = New CrystalDecisions.CrystalReports.Engine.ReportDocument();<br />
// Indicamos la ruta del archivo del reporte que requerimos. En este caso suponemos que está en la raiz de nuestro proyecto<br />
rpt.FileName = Server.MapPath("~\rptListadoClientes.rpt");<br />
// Establecemos nuestro DataSet como origen de datos de nuestro reporte<br />
rpt.SetDataSource(dsDatos);<br />
//Indicamos al Report Viewer cual es el reporte que queremos mostrar<br />
CrystalReportViewer1.ReportSource = rpt;</code></p>
<p style="text-align: left;">Con esto nuestro reporte se mostrará en la ventana del navegador de internet de nuestro usuario sin la necesidad de que tenga que descargar un archivo PDF o DOC.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bluby.org/blog/2010/01/crystal-reports-con-datasets-en-asp-net/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Consumir WebServices JSon desde PHP</title>
		<link>http://www.bluby.org/blog/2009/11/consumir-webservices-json-desde-php/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=consumir-webservices-json-desde-php</link>
		<comments>http://www.bluby.org/blog/2009/11/consumir-webservices-json-desde-php/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 18:50:21 +0000</pubDate>
		<dc:creator>P-los</dc:creator>
				<category><![CDATA[Funciones]]></category>
		<category><![CDATA[Técnicas]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[JSon]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[WebServices]]></category>

		<guid isPermaLink="false">http://www.bluby.org/blog/?p=85</guid>
		<description><![CDATA[Hoy gracias a que estuve apoyando a un proyecto de unos amigos, les traigo un simple ejemplo de como consumir WebServices hechos con JSon desde PHP. Para este ejemplo utilizaremos una búsqueda en Twitter, ya que cumple con estas características. Primero tenemos que formar una dirección URL con la ubicación de nuestro WebService, que para [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy gracias a que estuve apoyando a un proyecto de unos amigos, les traigo un simple ejemplo de como consumir WebServices hechos con JSon desde PHP.</p>
<p>Para este ejemplo utilizaremos una búsqueda en Twitter, ya que cumple con estas características.</p>
<p>Primero tenemos que formar una dirección URL con la ubicación de nuestro WebService, que para nuestro caso sería:<br />
<code>$URL="http://search.twitter.com/search.json?q=" . $Busqueda;</code><br />
donde $Busqueda es el término que vamos a buscar.</p>
<p>Primero vamos a abrir esta dirección como un archivo cualquiera y guardamos su contenido en una variable:<br />
<code>$archivo = fopen ($URL, "r");<br />
$texto = fgets($archivo);</code></p>
<p>Ahora, aprovechamos una función de PHP 5.2.0 o superior, llamada json_decode() que nos regresa un objeto con el contenido del JSon, cuyas propiedades son los valores entregados por el WebService, y podremos mostrar su contenido:</p>
<p><code>$json = json_decode($texto);<br />
echo "max_id=".$json->max_id;<br />
echo "next_page=".$json->next_page;</code></p>
<p>Para este caso particular, Twitter nos entrega un arreglo con los resultados, que facilmente podemos meter en un foreach:</p>
<p><code>foreach($json->results as $valor)<br />
{<br />
	echo "&lt;img src='".$valor-&gt;profile_image_url."' style='width:60px;height:60px;' /&gt;&lt;br /&gt;";<br />
	echo "&lt;h1&gt;".$valor-&gt;from_user."&lt;/h1&gt;&lt;br /&gt;";<br />
	echo $valor-&gt;text."&lt;br /&gt;";<br />
}</code></p>
<p>y así de facil tenemos un cliente que muestra los resultados de busqueda en twitter desde PHP.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bluby.org/blog/2009/11/consumir-webservices-json-desde-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[VB.Net] Obtener una imagen desde Web</title>
		<link>http://www.bluby.org/blog/2009/05/vbnet-obtener-una-imagen-desde-web/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=vbnet-obtener-una-imagen-desde-web</link>
		<comments>http://www.bluby.org/blog/2009/05/vbnet-obtener-una-imagen-desde-web/#comments</comments>
		<pubDate>Sat, 16 May 2009 16:40:53 +0000</pubDate>
		<dc:creator>P-los</dc:creator>
				<category><![CDATA[Funciones]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Imagenes]]></category>
		<category><![CDATA[VB.Net]]></category>

		<guid isPermaLink="false">http://www.bluby.org/blog/?p=52</guid>
		<description><![CDATA[Ahorita solo por gusto estoy haciendo un scrren saver que obtiene imagenes desde Internet. Para ello, modifiqué un poco una función encontrada aqui para que al darle a la función la dirección URL de la imagen que deseamos, nos regrese un objeto de tipo Image para hacer con ella lo que necesitemos: Public Function LoadWebImage(ByVal [...]]]></description>
			<content:encoded><![CDATA[<p>Ahorita solo por gusto estoy haciendo un scrren saver que obtiene imagenes desde Internet. Para ello, modifiqué un poco una función encontrada <a href="http://www.cy2online.net/Snippet/VBNet/Internet/34/Load_web_image_into_picturebox.html">aqui</a> para que al darle a la función la dirección URL de la imagen que deseamos, nos regrese un objeto de tipo Image para hacer con ella lo que necesitemos:</p>
<p><code>Public Function LoadWebImage(ByVal ImageURL As String) As Image</code><br />
<code style="padding-left: 30px;">Dim objImage As IO.MemoryStream</code><br />
<code style="padding-left: 30px;">Dim objwebClient As System.Net.WebClient</code><br />
<code style="padding-left: 30px;">Dim sURL As String = Trim(ImageURL)</code><br />
<code style="padding-left: 30px;">Dim img As Image = Nothing</code><br />
<code style="padding-left: 30px;">Try</code><br />
<code style="padding-left: 60px;">If Not sURL.ToLower().StartsWith("http://") Then sURL = "http://" &amp; sURL</code><br />
<code style="padding-left: 60px;">objwebClient = New Net.WebClient()</code><br />
<code style="padding-left: 60px;">objImage = New  IO.MemoryStream(objwebClient.DownloadData(sURL))</code><br />
<code style="padding-left: 60px;">img = Image.FromStream(objImage)</code><br />
<code style="padding-left: 30px;">Catch ex As Exception</code><br />
<code style="padding-left: 60px;">'Cargar una imagen que indique que no se pudo leer la imagen de Internet</code><br />
<code style="padding-left: 60px;">img = new Bitmap("noimage.jpg")</code><br />
<code style="padding-left: 30px;">End Try</code><br />
<code style="padding-left: 30px;">Return img</code><br />
<code>End Function</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bluby.org/blog/2009/05/vbnet-obtener-una-imagen-desde-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FullCalendar con jQuery</title>
		<link>http://www.bluby.org/blog/2009/04/fullcalendar-con-jquery/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=fullcalendar-con-jquery</link>
		<comments>http://www.bluby.org/blog/2009/04/fullcalendar-con-jquery/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 14:43:58 +0000</pubDate>
		<dc:creator>P-los</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.bluby.org/blog/?p=49</guid>
		<description><![CDATA[Calendario de eventos con jQuery.]]></description>
			<content:encoded><![CDATA[<p>FullCalendar es un plugin para jQuery que genera un calendario completo con drag &amp; drop. Utiliza AJAX para obtener la información de los eventos de cada mes  &#8220;on-the-fly&#8221; y es facilmente configurable para utilizar tu propio formato de feed (una extensión provista por Google Calendar). Es visualmente personalizable y expone los manejadores para eventos generados por el usuario (como hacer click o drag a un evento).</p>
<p>NOTA: Este post fue traducido tal cual desde <a title="http://arshaw.com/fullcalendar/" href="http://arshaw.com/fullcalendar/">http://arshaw.com/fullcalendar/</a> desde donde se puede encontrar la documentación, ejemplos y ligas de descarga. Hasta el momento no he utilizado este plugin, pero lo publico porque se que en un proyecto próximo muy probablemente haré uso de éste o una herramienta similar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bluby.org/blog/2009/04/fullcalendar-con-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Función Anti-Sql-Injection</title>
		<link>http://www.bluby.org/blog/2009/04/funcion-anti-sql-injection/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=funcion-anti-sql-injection</link>
		<comments>http://www.bluby.org/blog/2009/04/funcion-anti-sql-injection/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 22:33:43 +0000</pubDate>
		<dc:creator>P-los</dc:creator>
				<category><![CDATA[Funciones]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[formularios]]></category>
		<category><![CDATA[MySql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[vulnerabilidades]]></category>

		<guid isPermaLink="false">http://www.bluby.org/blog/?p=26</guid>
		<description><![CDATA[Una función PHP para prevenir la inyección de código SQL en los formularios Web]]></description>
			<content:encoded><![CDATA[<p>He aquí una función en PHP para prevenir la inyección de código SQL desde los formularios Web:<br />
<code>function limpiar_sql($value){</code><br />
<code style="padding-left: 30px;">$value = trim(htmlentities($value)); // Evita introducción código HTML</code><br />
<code style="padding-left: 30px;">if (get_magic_quotes_gpc()) </code><br />
<code style="padding-left: 60px;">$value = stripslashes($value);</code><br />
<code style="padding-left: 30px;">$value = mysql_real_escape_string($value);</code><br />
<code style="padding-left: 30px;">return $value;</code><br />
<code>}</code></p>
<p>Aquí hay una explicación de lo que es esta vulnerabilidad: <a href="http://es.wikipedia.org/wiki/SQL_injection">http://es.wikipedia.org/wiki/SQL_injection</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bluby.org/blog/2009/04/funcion-anti-sql-injection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clase para conectar php con mysql</title>
		<link>http://www.bluby.org/blog/2009/04/clase-para-conectar-php-con-mysql/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=clase-para-conectar-php-con-mysql</link>
		<comments>http://www.bluby.org/blog/2009/04/clase-para-conectar-php-con-mysql/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 06:08:43 +0000</pubDate>
		<dc:creator>P-los</dc:creator>
				<category><![CDATA[Funciones]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Conexion]]></category>
		<category><![CDATA[MySql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.bluby.org/blog/?p=21</guid>
		<description><![CDATA[Clase para conectarse a MySql desde PHP 5]]></description>
			<content:encoded><![CDATA[<p>En estos dias libres de semana santa, me estoy dedicando a realizar un sistema de pre-registro de asistentes a un evento, y por costumbre inicié haciendo desde cero el código de conexion a una base de datos MySql, pero recordé algo:</p>
<p>&#8220;La gran mayoría de lo que necesitas, alguien más ya lo hizo&#8221;</p>
<p>Así que me puse a buscar un poco, y me encontré con el siguiente bloque de código en <a href="http://www.webtutoriales.com/tutoriales/programacion/php/clase-conectar-php-mysql.20.html">WebTutoriales</a>:</p>
<p>Archivo mysql.php:</p>
<p><code>&lt;?php class MySQL{</code><br />
<code style="padding-left: 30px;">private $conexion;</code><br />
<code style="padding-left: 30px;">private $total_consultas;</code><br />
<code style="padding-left: 30px;">public function MySQL(){</code><br />
<code style="padding-left: 60px;">if(!isset($this-&gt;conexion)){</code><br />
<code style="padding-left: 90px;">$this-&gt;conexion = (mysql_connect("Servidor","usuario","password")) or die(mysql_error());</code><br />
<code style="padding-left: 90px;">mysql_select_db("nombreBD",$this-&gt;conexion) or die(mysql_error());</code><br />
<code style="padding-left: 60px;">}</code><br />
<code style="padding-left: 30px;">}</code><br />
<code style="padding-left: 30px;">public function consulta($consulta){</code><br />
<code style="padding-left: 60px;">$this-&gt;total_consultas++;</code><br />
<code style="padding-left: 60px;">$resultado = mysql_query($consulta,$this-&gt;conexion);</code><br />
<code style="padding-left: 60px;">if(!$resultado){</code><br />
<code style="padding-left: 90px;">echo 'MySQL Error: ' . mysql_error();</code><br />
<code style="padding-left: 90px;">exit;</code><br />
<code style="padding-left: 60px;">}</code><br />
<code style="padding-left: 60px;">return $resultado;</code><br />
<code style="padding-left: 30px;">}</code><br />
<code style="padding-left: 30px;">public function fetch_array($consulta){</code><br />
<code style="padding-left: 60px;">return mysql_fetch_array($consulta);</code><br />
<code style="padding-left: 30px;">}</code><br />
<code style="padding-left: 30px;">public function num_rows($consulta){</code><br />
<code style="padding-left: 60px;">return mysql_num_rows($consulta);</code><br />
<code style="padding-left: 30px;">}</code><br />
<code style="padding-left: 30px;">public function getTotalConsultas(){</code><br />
<code style="padding-left: 60px;">return $this-&gt;total_consultas;</code><br />
<code style="padding-left: 30px;">}</code><br />
<code>}?&gt;</code></p>
<p>Y para hacer uso de ella, el siguiente ejemplo:<br />
<code>include("mysql.php");<br />
$db = new MySQL();<br />
$consulta = $db-&gt;consulta("SELECT id FROM mitabla1");<br />
if($db-&gt;num_rows($consulta)&gt;0){</code><br />
<code style="padding-left: 30px;">while($resultados = $db-&gt;fetch_array($consulta)){</code><br />
<code style="padding-left: 60px;">echo "ID: ".$resultados['id']."&lt;br /&gt;";</code><br />
<code style="padding-left: 30px;">}</code><br />
<code>} </code></p>
<p>Para hacerlo un poco más flexible, añadí en un archivo de configuración los parámetros de conexión a la base de datos, quedando de la siguiente manera:</p>
<p>archivo de configuración:</p>
<p><code>$reg_server = "localhost";<br />
$reg_user = "root";<br />
$reg_password = "";<br />
$reg_database = "tests";</code></p>
<p>Archivo mysql.php (solo cambia esta función, el resto permanece igual):</p>
<p><code>public function MySQL(){</code><br />
<code style="padding-left: 30px;">require_once("reg_params.php");</code><br />
<code style="padding-left: 30px;">if(!isset($this-&gt;conexion)){</code><br />
<code style="padding-left: 60px;">$this-&gt;conexion = (mysql_connect($reg_server,$reg_user,$reg_password)) or die(mysql_error());</code><br />
<code style="padding-left: 60px;">mysql_select_db($reg_database,$this-&gt;conexion) or die(mysql_error());</code><br />
<code style="padding-left: 30px;">}</code><br />
<code>}</code></p>
<p>Según la pagina original, está hecho para trabajar bajo PHP 5, así que si lo vas a utilizar en una versión anterior de php, posiblemente te encuentres con que habrá algunas correcciones que hacer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bluby.org/blog/2009/04/clase-para-conectar-php-con-mysql/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Texto parpadeando en Web</title>
		<link>http://www.bluby.org/blog/2009/03/texto-parpadeando-en-web/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=texto-parpadeando-en-web</link>
		<comments>http://www.bluby.org/blog/2009/03/texto-parpadeando-en-web/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 00:49:41 +0000</pubDate>
		<dc:creator>P-los</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.bluby.org/blog/?p=15</guid>
		<description><![CDATA[A petición de un cliente, requerí que en un sitio web determinado texto parpadeara. Lo primero que busqué, fue como hacerlo por medio de css, y me encontré con la siguiente instrucción: p{ &#160;&#160;text-decoration:blink; } Al verificar que trabajara, me doy cuenta que no funciona en Internet Explorer, así que despues de buscar un rato [...]]]></description>
			<content:encoded><![CDATA[<p>A petición de un cliente, requerí que en un sitio web determinado texto parpadeara.</p>
<p>Lo primero que busqué, fue como hacerlo por medio de css, y me encontré con la siguiente instrucción:<br />
<code><br />
p{<br />
&nbsp;&nbsp;text-decoration:blink;<br />
}<br />
</code></p>
<p>Al verificar que trabajara, me doy cuenta que no funciona en Internet Explorer, así que despues de buscar un rato más, doy con el siguiente bloque de Javascript que hace la misma función:<br />
<code><br />
function doBlink() {<br />
&nbsp;&nbsp;var blink = document.all.tags("BLINK")<br />
&nbsp;&nbsp;for (var i=0; i&lt;blink.length; i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;blink[i].style.visibility = blink[i].style.visibility == "" ? "hidden" : ""<br />
}<br />
function startBlink() {<br />
&nbsp;&nbsp;if (document.all)<br />
&nbsp;&nbsp;&nbsp;&nbsp;setInterval("doBlink()",1000)<br />
}<br />
window.onload = startBlink;<br />
</code><br />
Para esta segunda opcion, el texto que deseamos hacer que parpadee hay que encerrarlo en un bloque como el siguiente:<br />
<code><br />
&lt;blink&gt;texto parpadeante&lt;/blink&gt;<br />
</code></p>
<p>El problema al utilizar esta segunda opcion, es que causará problemas al realizar la <a href="http://validator.w3.org/">validación de estándares de la W3C</a>.</p>
<p>Si alguien tiene una mejor opción para lograr este cometido, será bienvenida para compartirse con la comunidad.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bluby.org/blog/2009/03/texto-parpadeando-en-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
