Duda script basado en cookie

apawiper
11 de Noviembre del 2003
Hola buenas, tengo por aquí la típica función a usar con un formulario para evitar el envío masivo de formularios o votos por ejemplo. El tema es que guarda una cookie cuando se envía y luego la busca para ver si has mandado o no ya un formulario. Yo quería basandome en esto, que por ejemplo te deje enviar el formulario 5 veces, no sólo una, o mejor aún, X veces para según el caso dejar más o menos veces. Me podiaís decir cómo sería la función??

Os pongo la original:

//Esta función se usa para leer el cookie que se le indica en el argumento
function leeCookie(valor)
{
var dato;
var plant = new RegExp("("+valor+"=)([^;]*)(;*)")
dato = document.cookie.search(plant)
return RegExp.$2;
}
//Crea un cookie. Los argumentos son el nombre, el valor y el número de días que
//de vida que tendrá ese cookie
function creaCookie(nombre, valor, dias)
{
var expira = new Date();
expira.setDate(expira.getDate() + dias);
var cadexp =expira.toGMTString();
document.cookie = nombre+"="+valor + ";expires="+cadexp;
}
//Borra el cookie indicado en el argumento, poniéndole una fecha de caducidad ya pasada.
function borraCookie(nombre)
{
document.cookie = nombre+"= ; expires= Thu, 01-Jan-70 00:00:01 GMT"
}
//Comprobar si puede enviar formulario
//Primero comprueba que los cookies están activados en el cliente
//Luego comprueba el valor del cookie voto, si es "1" no permite enviar el formulario
//(devuelve false) y envía un aviso.
//Si no crea el cookie voto y da un mensaje de agradecimiento, devolviendo true para que
//funcione el submit del formulario y lo envíe por correo.
function compruebaCookie()
{
if (!document.cookie){
alert("Activa las cookies")
return false;
}
var repite = leeCookie("voto");
if (repite=="1")
{
alert("Sólo puedes enviarnos un formulario al día")
return false
}
else{
alert("Formulario correcto");
creaCookie("voto", "1", 1);
return true;
}
}

A enviarse el formulario se llama a la función compruebaCookie que es la que controla si debe dejar el voto o no