PHP en Blogger

¿Qué es PHP? Un lenguaje de programación y hoy por hoy es uno de los más extendidos. No es cuestión de entrar en detalles pero, para que se entienda un poco, su característica principal es que no lo ejecuta el navegador sino el servidor donde está alojado el archivo y, de esa manera, entre otras cosas, es posible crear páginas web dinámicas ya que las páginas se generan en función de instrucciones de todo tipo.

¿Es posible ejecutar archivos PHP en Blogger? Sí, eso no es problema. Blogger no soporta PHP y el único lenguaje que podemos utilizar es JavaScript pero, tal como lo dicen en Anuj Pathania's Blog, es posible ejecutar PHP utilizando JavaScript. De hecho, he visto que en varios artículos se hablaba de cosas similares tales como un widget que contaba la cantidad de veces que se había visto un post. Es sencillo, copiamos, pegamos y listo, capaz que funciona pero, todo eso tiene algunas dificultades que pueden ser menores como que ese archivo externo deje de funcionar por cualquier motivo o algo peor: que no sepamos que es lo que hace ese archivo.

Y si digo esto es porque el PHP es un idioma poderoso MUY poderoso que permite hacer muchas cosas. Así que, como con todos los otros archivos que utilizamos, debemos asegurarnos (hasta donde sea posible) que sólo hagan lo que dicen hacer y nada más. Pero, seguridad al margen, también hay algo práctico, los archivos deben funcionar y si bien nadie puede garantizarnos que los que alojemos nosotros funcionarán siempre, cuando son alojados y administrados por otros, lo más probable es que terminen fallando por mucha voluntad que tenga quien los ofrece.

Y al final de cuentas, no es tan difícil crear una cuenta gratuita en algún hosting gratuito y allí jugar un rato a ver que sale.

La idea de estas entradas es esa, mostrar una pequeña cantidad de ejemplos aprovechando el servicio de byethost del que hablé hace unos dias.

El primero de ellos es el más sencillo; vamos a detectar la IP de los visitantes y, eventualmente bloquearlos. No será un filtro de spam y trolls muy efectivo pero será sencillo de implementar diablo2

Un script en Blogger caragrá el archivo PHP que estárá en otro servidor, este se ejecutará y nos devolverá un dato. Ese dato lo procesaremos en Blogger con otro script. Suena engorroso pero no lo es; primero que nada, necesitamos el archivo PHP y este debe tener una instrucción especial que nos permitirá esa "comunicación entre ambos, debe comenzar con:
Header("content-type: application/x-javascript");
luego tendrá la instrucción que lee la IP y la guarda en una variable:
$IP=$_SERVER['REMOTE_ADDR'];
por último, nos devolverá ese dato en una variable que en este caso, llamé laIP:
$salida = 'var laIP = "' . $IP . '";';
echo $salida;
y nada más. El archivo completo será así:
<?
Header("content-type: application/x-javascript");
$IP=$_SERVER['REMOTE_ADDR'];
$salida = 'var laIP = "' . $IP . '";';
echo $salida;
?>
Lo guardo con el nombre devolverIP.php y en Blogger lo agrego antes del </head> de este modo:
<script src='URL_MI_SERVIDOR/devolverIP.php' type='text/javascript'></script>
Listo. Si miro mi blog ... no veré nada risa

Si quisiera mostrarla, en lugar de colocar el script allí lo pondría en la sidebar y debajo de ese script, pondría algo así:
SU IP ES: <script type='text/javascript'>document.write(laIP);</script>
o cualquier cosa similar. Este es un ejemplo: click aquí

Pero la idea es otra, la idea es detectar la IP y verificarla así que nos podemos basar en cualquiera de los scripts que andan por la red y que hacen esto. Una de las variantes sería más o menos así:
<script src='URL_MI_SERVIDOR/devolverIP.php' type='text/javascript'></script>
<script type="text/javascript">
//<![CDATA[
var lista_IPs = new Array();
// aquí ponemos la lista de IPs escritas de manera completa o parcial
lista_IPs[0] = '194.8.74';
lista_IPs[1] = '194.8.75';
lista_IPs[2] = '91.214.44.228';
lista_IPs[3] = '76.31.76.20';
// ahora, comparamos esa lista con la IP detectada
for(var i=0; i < lista_IPs.length; i++) {
eval('var verificar = /^' + lista_IPs[i] + '/ ;');
if (verificar.test(laIP)) {
// y si está en la lista hacemos algo, por ejemplo
// alert('LA IP FUE RECONOCIDA'); // una ventana de alerta
// history.go(-1); // o lo enviamos por donde vino
// window.location.replace("http://www.portalmix.com/curiosos/finalinternet.shtml") // o lo mandamos a otro sitio cualquiera
break;
}
}
//]]>
</script>
Hay muchos sitios donde podemos buscar información sobre PHP e incluso, ejemplos que podemos usar. Uno de ellos es phpclasses.org que dispone de cientos de tutoriales y códigos para descargar y que podemos estudiar o modificar. Basándome en uno de ellos llamado Google Page Rank Checker vamos con un segundo ejemplo sencillo: mostrar el PageRank de nuestro sitio de manera dinámica, es decir, chequeándolo.

El contenido del archivo PHP está en este archivo de texto y es largo (ni siqueira pretendo entenderlo) pero, básicamente funciona como el anterior con el agregado de esa clase o rutina especial que es la que busca y lee el PageRank:
<?php
Header("content-type: application/x-javascript");

Class GooglePR {
.......
// aqui va el código de la clase
.......
}

$dominio = 'http://nombreBlog.blogspot.com/';
$pageRank = new GooglePR();
$VPR = $pageRank-<GetPR($dominio);
$salida = 'var elPR = "' . $VPR . '";';
echo $salida;

?>
El proceso es siempre el mismo, se ejecuta el código y luego, se envia el resultado en una variable que leeremos con JavaScript, en este caso se llama elPR así que en Blogger usaría para mostrarlo donde quisiera:
<script src='URL_MI_SERVIDOR/mipagerank.php' type='text/javascript'></script>

MI PAGE RANK: <script type='text/javascript'>document.write(elPR);</script>
Un último ejemplo un poco más complejo y más útil: un formulario de contacto.

Como, en casi todo servicio de hosting nos proveen la posibilidad de tener cuentas de mail y poseen el servicio para manejaros, podemos encontrar muchos ejemplos en la web de cómo crear formularios de todo tipo, sin demsiadas restricciones y con muchas variantes. Este es uno muy simple que usa Ajax y consta de dos archivos, el primero es el formulario y el segundo el que procesa los datos, es decir, el que envia el mail.

Sería muy largo de explicar en detalle y no es nada original, sólo una copia modificada de alguno de los tantos que andan dando vuelta por allí y, en este caso, como no necesitamos ningún tipo de respuesta, bastaría simplemente crear un enlace al archivo:
<a href="URL_MI_SERVIDOR/formularioMAIL.php"> FORMULARIO DE CONTACTO </a>

0 comentarios:

Publicar un comentario