Villanos.net El Villano
- la revista de villagüeb -
¡Hola! :) ¿Cómo te llamas?
Impuesto de conexión...
¡Pégalo en tu página!
Jom
Buscar
Suscripción
Trastero
Kiosco
Top
E-mail
Editorial
Opinión
Técnicas
¡L@ hicimos!
i-niciativas
Villagüeb
Navegando
CajónDeSastre

Reconocer y saludar al visitante de una página

Antes de nada, un par de aclaraciones. Este no es un curso de Javascript, sólo pretende explicar como aprovechar algunas facilidades de dicho lenguaje para aquellos que quieran añadir funcionalidad a sus páginas. Por ello, se va a explicar cómo poner este código en tu página sin entrar en mucho detalle sobre el código en sí. Pretendemos que sea algo práctico al alcance de cualquiera.
Si aún así todo, te resulta complejo seguir el artículo. Bájate este fichero y copia las líneas de código que contiene dentro de tu página. Preferiblemente justo antes del </head>. Sólo con eso te funcionará :)

El código está basado en el uso de galletas (cookies) sobre las que hay una leyenda negra sobre si con ellas se vulnera la seguridad de nuestro ordenador. Realmente las galletas no tienen problemas de seguridad, aunque su uso malintencionado podría interpretarse como una invasión de la privacidad. En otro artículo hablaremos largo y tendido del tema. De momento, este programilla se limita a guardar el nombre del visitante si es que nos lo quiere dar por lo que nadie debería sentirse ofendido. A cambio, nuestras páginas cobran un toque de personalidad que siempre las hace más amigables.

Bueno, vamos allá. Como decía, el truco para identificar al visitante consiste en guardar esa galleta o cookie con su nombre. Esta se almacena en un fichero que tiene el navegador en el disco duro de su ordenador, y podemos recuperarla cuando queramos. Para realizar estos procesos vamos a utilizar un código sencillito en javascript que podrás poner en tu página con sólo seguir las instrucciones de este artículo paso a paso.

Lo primero que necesitas saber es que el javascript no es parte habitual del html, por lo que para ponerlo en una página hay que indicarlo de manera diferente. Se puede incluir código javascript en cualquier lugar de una página. Para ello se debe poner el siguiente código dentro del html:

<script language="JavaScript">
<!-- Ocultar el código a los navegatas caducos --

A continuación vendrían las líneas de código en javascript, y para finalizar, hay que poner:

<// -- hasta aquí ocultamos -->
</script>

Simplemente, creetelo ;)
Ahora lo que necesitamos es unas funcioncillas para trabajar con las galletas. Yo tengo estas que cogí de por ahí y que he ido adaptando. Gracias a ellas, nos podemos olvidar de la parte más compleja del programa. Basta con pegarlas al principio del código y a partir de ahí, nos bastará con escribir leer_galleta() o poner_galleta() para conseguir nuestros objetivos. Estas tres funciones son:


//___ función auxiliar para "despedazar" una galleta ___

function valor_galleta (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

//___ función que lee la galleta a partir de su nombre ___

function leer_galleta(name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;

while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return valor_galleta (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}

return null;
}

//___ función que guarda el contenido de una galleta ___

function poner_galleta(name, value) {
var argv = poner_galleta.arguments;
var argc = poner_galleta.arguments.length;
var expdate = new Date();

expdate.setTime (expdate.getTime() + 365*(24 * 60 * 60 * 1000)); // dead in 1 año
var expires = (argc > 2) ? argv[2] : expdate;
var path = (argc > 3) ? argv[3] : "/";
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}

Así que ya tenemos nuestras herramientas. Ya sólo hace falta utilizarlas.
Lo primero que tiene que hacer nuestro programa es comprobar si conoce al visitante. Para ello tratamos de leer la galleta con lo que sabremos si había estado aquí antes...

//___ aquí empieza el programa para saludar a los visitantes ___
//___ lo primero, mirar a ver si lo conocemos ___

var visitante = leer_galleta("el_visitante");

A nuestra galleta la hemos llamado "el_visitante". Si nuestro visitante había estado antes, la función leer_galleta() nos devolverá su nombre. Si no, nos devolverá un valor identificado como null y con ello sabremos que es la primera vez.

En ese caso le preguntamos su nombre mediante la instrucción prompt() y lo que el visitante teclea nos lo guarda en la variable visitante. Si no teclea nada, volvemos a obtener el valor null por lo que nosotros mismos le bautizamos. En este caso como "Navegante".

if ( visitante == null )
{
//___ era un desconocido y le preguntamos su nombre ___

visitante = prompt( "¡Hola! :) ¿Como te llamas?" , "");
if ( visitante == null )
{
//___ No nos lo ha querido decir :( ___

alert('Bueno, pues yo te llamaré Navegante');
visitante = 'Navegante';
}
}

Ahora que de una manera u otra lo tenemos identificado, lo que vamos a hacer es guardar su nombre. Para ello, nada más sencillo que utilizar la función poner_galleta().

//___ guardamos su nombre en una galleta ___

poner_galleta( "el_visitante", visitante );

Finalmente, vamos a componer el mensaje de saludo.
En la variable visitante tenemos su nombre, por lo que montamos un mensaje de la forma: "¡Hola, Vilma! :) ¡Qué alegría verte por aquí!"

//___ preparamos el mensaje de saludo ___

var mensaje = '¡Hola '

//___ le incoporamos el nombre que nos ha dado ___

mensaje += visitante + '! ¡Qué alegría verte por aquí! :)'

//___ y finalmente le saludamos ___

alert( mensaje );

Con la instrucción alert() nuestro mensaje de saludo se presentará en una ventanita cada vez que el visitante vuelva a nuestra página.
Esperemos que sea a menudo ;)

El código completo listo para que lo utilices lo puedes coger aquí. Copia las líneas de código que contiene dentro de tu página. Preferiblemente justo antes del </head>.

Escrito por Colegota
Hecho por villanos.net en Junio de 1999