<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Php on Karpoke - Just Another Blog</title><link>http://karpoke.ignaciocano.com/tags/php/</link><description>Recent content in Php on Karpoke - Just Another Blog</description><generator>Hugo -- 0.159.0</generator><language>es</language><lastBuildDate>Sat, 13 Jul 2013 19:04:00 +0100</lastBuildDate><atom:link href="http://karpoke.ignaciocano.com/tags/php/index.xml" rel="self" type="application/rss+xml"/><item><title>Utilizando un tema hijo en WordPress</title><link>http://karpoke.ignaciocano.com/2013/07/13/utilizando-un-tema-hijo-en-wordpress/</link><pubDate>Sat, 13 Jul 2013 19:04:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/07/13/utilizando-un-tema-hijo-en-wordpress/</guid><description>&lt;p&gt;Un &lt;a href="http://codex.wordpress.org/Child_Themes"&gt;tema hijo en WordPress&lt;/a&gt; es un tema que hereda la funcionalidad de
otro, el tema padre, permitiendo modificar el estilo o añadir
funcionalidades a éste. Es la forma más sencilla y segura de modificar
un tema existente, ya sean cambios grandes o pequeños. Si utilizamos un
tema de otros, ya sea gratuito o de pago, crear un tema hijo es una
buena idea.&lt;/p&gt;
&lt;h2 id="por-qué-crear-un-tema-hijo"&gt;¿Por qué crear un tema hijo?&lt;/h2&gt;
&lt;p&gt;Porqué en algún momento cambiaremos algo del tema que estamos usando, y
en algún momento posterior es posible que haya una actualización de
dicho tema. En el mejor de los casos, nos deberemos preocupar de guardar
los cambios que hemos hecho en el tema y aplicarlos de nuevo tras la
actualización. En el peor, perderemos los cambios que hemos hecho.&lt;/p&gt;</description></item><item><title>Saltar a una entrada aleatoria en WordPress</title><link>http://karpoke.ignaciocano.com/2012/07/27/saltar-a-una-entrada-aleatoria-en-wordpress/</link><pubDate>Fri, 27 Jul 2012 00:20:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/27/saltar-a-una-entrada-aleatoria-en-wordpress/</guid><description>&lt;p&gt;Si queremos añadir un enlace que nos permita saltar a una entrada
aleatoria de un blog en WordPress, basta crear un archivo que contenga
lo siguiente:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;?php
require(&amp;#39;wp-blog-header.php&amp;#39;);
query_posts(array(&amp;#39;orderby&amp;#39; =&amp;gt; &amp;#39;rand&amp;#39;, &amp;#39;showposts&amp;#39; =&amp;gt; 1));
if (have_posts()) : the_post();
$url = get_permalink($post-&amp;gt;id);
header(&amp;#34;Location: &amp;#34; . $url);
endif;
wp_reset_query();
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Guardamos el archivo en una ruta accesible, por ejemplo en la raíz del
blog.&lt;/p&gt;
&lt;p&gt;Sólo queda añadir el enlace para que nos lleve a una &lt;a href="http://karpoke.ignaciocano.com/salta/"&gt;entrada
aleatoria&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Symfony en Ubuntu Lucid Lynx 10.04</title><link>http://karpoke.ignaciocano.com/2012/06/03/symfony-en-ubuntu-lucid-lynx-10-04/</link><pubDate>Sun, 03 Jun 2012 03:59:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/03/symfony-en-ubuntu-lucid-lynx-10-04/</guid><description>&lt;p&gt;&lt;a href="http://www.symfony-project.org/"&gt;Symfony&lt;/a&gt; es una &lt;em&gt;framework&lt;/em&gt; MVC escrito en PHP para el desarrollo
rápido de páginas web. Además, ofrece un conjunto de buenas prácticas
para desarrollar páginas más seguras y con un coste de mantenimiento
menor.&lt;/p&gt;
&lt;p&gt;Para que la instalación sea más segura, los ficheros de Symfony debería
estar fuera del &lt;code&gt;DocumentRoot&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="requisitos"&gt;Requisitos&lt;/h2&gt;
&lt;p&gt;Symfony se basa en entorno LAMPP, por lo que suponemos que ya tenemos
configurado Apache, MySQL y PHP versión 5.2.4 o superior. Para comprobar
si todo está correctamente configurado y que cumplimos los
requerimientos para Symfony, descargamos siguiente &lt;em&gt;script&lt;/em&gt; y lo
ejecutamos, pasando como parámetro la ruta al archivo &lt;code&gt;php.ini&lt;/code&gt; que
utiliza apache (por defecto, al ejecutarlo desde el terminal en lugar
del navegador, utiliza otro archivo &lt;code&gt;php.ini&lt;/code&gt;):&lt;/p&gt;</description></item><item><title>Obteniendo la IP pública, la IP privada y la dirección MAC en Bash</title><link>http://karpoke.ignaciocano.com/2011/08/14/obteniendo-la-ip-publica-la-ip-privada-y-la-direccion-mac-en-bash/</link><pubDate>Sun, 14 Aug 2011 19:26:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/08/14/obteniendo-la-ip-publica-la-ip-privada-y-la-direccion-mac-en-bash/</guid><description>&lt;p&gt;En los &lt;em&gt;scripts&lt;/em&gt; que escribimos, a menudo, es necesario conocer la IP pública
de nuestra red, o la IP privada y la dirección MAC de una interfaz de red. Con
el comando &lt;code&gt;ifconfig&lt;/code&gt; podemos conocer la información de las interfaces de red:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ ifconfig
eth0 Link encap:Ethernet direcciónHW 00:11:22:33:44:55
Direc. inet:192.168.0.30 Difus.:192.168.0.255 Másc:255.255.255.0
Dirección inet6: fe80::203:dff:fe3c:f419/64 Alcance:Enlace
ACTIVO DIFUSI–N FUNCIONANDO MULTICAST MTU:1500 Métrica:1
Paquetes RX:1627 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:1067 errores:0 perdidos:0 overruns:0 carrier:0
colisiones:0 long.colaTX:1000
Bytes RX:560137 (560.1 KB) TX bytes:235094 (235.0 KB)
Interrupción:19 Dirección base: 0xc800
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;eth1 Link encap:Ethernet direcciónHW 00:11:22:33:44:66
DIFUSI–N MULTICAST MTU:1500 Métrica:1
Paquetes RX:0 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:0 errores:0 perdidos:0 overruns:0 carrier:0 colisiones:0 long.colaTX:1000
Bytes RX:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupción:21 Dirección base: 0x8000 Memoria:ffcfe000-ffcfefff
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;lo Link encap:Bucle local
Direc. inet:127.0.0.1 Másc:255.0.0.0
Dirección inet6: ::1/128 Alcance:Anfitrión
ACTIVO BUCLE FUNCIONANDO MTU:16436 Métrica:1
Paquetes RX:3299 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:3299 errores:0 perdidos:0 overruns:0 carrier:0
colisiones:0 long.colaTX:0
Bytes RX:355696 (355.6 KB) TX bytes:355696 (355.6 KB)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Sin embargo, si queremos utilizar el dato en concreto—la IP privada o la
dirección MAC—, necesitaremos trabajar un poco la salida que muestra
&lt;code&gt;ifconfig&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Variables variables en Bash</title><link>http://karpoke.ignaciocano.com/2011/06/29/variables-variables-en-bash/</link><pubDate>Wed, 29 Jun 2011 12:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/06/29/variables-variables-en-bash/</guid><description>&lt;p&gt;Las variables variables se utilizan cuando queremos tener nombres de
variables que puedan usarse y modificarse de forma dinámica. &lt;a href="http://php.net/manual/en/language.variables.variable.php"&gt;PHP
permite su uso&lt;/a&gt; de forma directa:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;?php
$a = &amp;#39;hello&amp;#39;;
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Una variable variable toma el valor de una variable y lo usa para el
nombre de la variable. Podemos utilizar &amp;ldquo;hello&amp;rdquo; como nombre de variable
utilizando dos signos de dólar:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;?php
$$a = &amp;#39;world&amp;#39;;
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En este punto tenemos dos variables, &lt;code&gt;$a&lt;/code&gt; que contiene &amp;ldquo;hello&amp;rdquo; y
&lt;code&gt;$hello&lt;/code&gt; que contiene &amp;ldquo;world&amp;rdquo;. Así, las siguientes instrucciones
escriben &amp;ldquo;hello world&amp;rdquo;:&lt;/p&gt;</description></item><item><title>Usando una conexión segura en el panel de control de Wordpress</title><link>http://karpoke.ignaciocano.com/2011/06/14/usando-una-conexion-segura-en-el-panel-de-control-de-wordpress/</link><pubDate>Tue, 14 Jun 2011 14:17:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/06/14/usando-una-conexion-segura-en-el-panel-de-control-de-wordpress/</guid><description>&lt;p&gt;Si tenemos &lt;a href="http://karpoke.ignaciocano.com/2010/12/30/la-infame-actualizacion-de-wordpress-en-15-segundos/"&gt;instalado un WordPress&lt;/a&gt; y queremos &lt;a href="http://rackerhacker.com/2009/07/31/requiring-ssl-encryption-for-wordpress-administration/"&gt;iniciar sesión a
través de una conexión segura&lt;/a&gt;, deberemos modificar el fichero
&lt;code&gt;/usr/share/wordpress/wp-config.php&lt;/code&gt; y añadir:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;define(&amp;#39;FORCE_SSL_LOGIN&amp;#39;, true);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Si queremos que se use la conexión segura en todo el panel de control,
en lugar de lo anterior, añadiremos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;define(&amp;#39;FORCE_SSL_ADMIN&amp;#39;, true);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Para que esto funcione, es necesario que &lt;a href="http://karpoke.ignaciocano.com/2011/06/14/configurar-apache-para-servir-conexiones-seguras/"&gt;Apache esté configurado para
servir conexiones seguras&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="actualización-a-13-de-julio-de-2013"&gt;Actualización a 13 de julio de 2013&lt;/h4&gt;
&lt;p&gt;Si hemos iniciado sesión y navegamos por nuestra página web, deberíamos
asegurarnos de que seguimos usando una conexión segura, ya que estamos
enviando nuestra &lt;em&gt;cookie&lt;/em&gt; de sesión y alguien en la misma red podría
llegar a capturarla si no es así.&lt;/p&gt;</description></item><item><title>Ocultando cabeceras</title><link>http://karpoke.ignaciocano.com/2011/03/12/ocultando-cabeceras/</link><pubDate>Sat, 12 Mar 2011 14:26:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/12/ocultando-cabeceras/</guid><description>&lt;p&gt;Tras instalar Apache, tanto en las &lt;a href="http://karpoke.ignaciocano.com/2011/02/28/cabeceras-http-personalizadas-en-apache2/"&gt;cabeceras de la página&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ curl -I localhost
HTTP/1.1 200 OK
Date: Sat, 12 Mar 2011 11:55:12 GMT
Server: Apache/2.2.16 (Ubuntu)
Last-Modified: Sat, 02 Jan 2010 00:00:23 GMT
ETag: &amp;#34;aa34-b1-47c232cbc0633&amp;#34;
Accept-Ranges: bytes
Content-Length: 177
Vary: Accept-Encoding
Content-Type: text/html
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;como en las páginas de error:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;!DOCTYPE HTML PUBLIC &amp;#34;-//IETF//DTD HTML 2.0//EN&amp;#34;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;404 Not Found
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Not Found
The requested URL /terminus was not found on this server.
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Apache/2.2.16 (Ubuntu) Server at localhost Port 80
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;se muestra la versión de Apache, y de PHP si también lo hemos instalado.
Ocultar este tipo de información se conoce como seguridad por oscuridad,
por lo que no es realmente seguridad, pero puede ayudar a evitar ataques
automatizados.&lt;/p&gt;</description></item></channel></rss>