
02/08/2005, 17:20
|
| | Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 20 años, 1 mes Puntos: 9 | |
En la tabla donde controlas si ya votaron, además de guardar la IP del usuario que votó y la fecha a partir de la cual se le permite votar, deberías guardar el Id de la encuesta, para saber en que encuesta ya registró su voto el usuario.
El Ip del usuario lo sacas con Request.ServerVariables("REMOTE_ADDR") (creo, no recuerdo en este momento si era ese). La fecha y hora a partir de la cual el usuario puede votar de nuevo en esa encuesta, lo haces con la función DateAdd. Y lo demás sería un insert común, en el cual tendrías que insertar el ip del usuario, el resultado de DateAdd y el Id de la encuesta. Antes, lógicamente, tendrías que comprobar que el IP del usuario no esté en la tabla de control, y si está, que no sea con el Id de la encuesta a la cual quiere votar. Algo así:
IpUsuario = Request.ServerVariables("REMOTE_ADDR")
IdEncuesta = 'Acá iría el id de la encuesta
set conn = server.createObject("ADODB.Connection")
conn.open(strCOnexion)
set rs = conn.execute("SELECT campo_FechaParaVotar FROM tabladecontrol WHERE campo_IpUsuario = " & IpUsuario & " AND campo_IdEncuesta = " & IdEncuesta & " ORDER BY campo_FechaParaVotar")
if rs.eof then
'Si el rs no contiene ningún registro, entonces le permito votar
elseif
rs("campo_FechaParaVotar") < now() then
'El usuario ya votó en la misma encuesta, pero
'como el "campo_FechaParaVotar" es menor que la fecha actual,
'también le pemito votar
else
'Le informo al usuario que no puede votar
end if
rs.close()
conn.close()
set rs = nothing
set conn = nothing
El Elseif no iría, solo lo hice para ponerle comentarios. Se puede hacer con un OR para no repetir las mismas acciones (if rs.eof or rs("campo_Fecha...") < now() then...).
Espero que hayas entendido las explicaciones y no haberme hecho tanto lío.
Saludos!.
--------------------------------------------
Respecto al final del mensaje, no estoy tan seguro que funcione con el or, porque si el rs te arroja 0 registros, entonces no habrá ningún rs("campo_Fecha") con el cual hacer la sentencia condicional. Por lo tanto, me parece que sí vas a necesitar el elseif, pero ahí ya entra en duda la estructura del código, porque estarías escribiendo dos veces el mismo código, salvo que en ambas situaciones llames a una función o procedimiento que te ejecute la tarea completa de votación.
------------------- segunda edicion ---------------
Me confundí en una parte del código.
__________________ Add, never Remove
Última edición por mariano_donati; 02/08/2005 a las 17:33 |