Foros del Web » Programando para Internet » ASP Clásico »

ayuda por codigo

Estas en el tema de ayuda por codigo en el foro de ASP Clásico en Foros del Web. Necesito ayuda ya que tengo un codigo asp que lo que hace es construir encuestas, esta muy bueno, el tema es que le quiero agregar ...
  #1 (permalink)  
Antiguo 01/01/2003, 14:27
(Desactivado)
 
Fecha de Ingreso: agosto-2002
Mensajes: 1.458
Antigüedad: 21 años, 10 meses
Puntos: 0
ayuda por codigo

Necesito ayuda ya que tengo un codigo asp que lo que hace es construir encuestas, esta muy bueno, el tema es que le quiero agregar a mi codigo algo para que el usuadio solo pueda votar una sola vez , ya que el problema que tiene es que un mismo usuario puede votar la veces que quiera , a cambio de la ayuda que me pueda brindar prometo pasarle el codigo completo de este sistema de encuesta, no lo pongo en el foro por que es demasiado largo , en todo caso lo mandaria por mail que me pase el interesado que me quiera ayudar

muchas gracias y espero que pronto me puedan ayudar
  #2 (permalink)  
Antiguo 01/01/2003, 16:22
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 22 años, 3 meses
Puntos: 1
Como ya te respondio lexus, para evitar q el usuario vote varias veces, primero hay q verificar si ya voto mediante cookies :

http://www.forosdelweb.com/showthrea...ncuesta+cookie

Busca "encuesta cookies" con el buscador, en el ultimo topic urjose expone codigo para eso.
Sera tan bueno como dices si obvia esa caracteristica tan importante ?

saludos!
  #3 (permalink)  
Antiguo 01/01/2003, 21:27
 
Fecha de Ingreso: febrero-2001
Mensajes: 149
Antigüedad: 23 años, 4 meses
Puntos: 0
a ver puedes probar con esta condición, creo que te debe de funcionar a la perfección

if ((not id="") AND (not Request.Cookies("Votado" & id)="si")) then
SQL="UPDATE tabla SET votos=votos+1 WHERE id="&id&";"
conexion.Execute (SQL)
Response.Cookies("Votado" & id).Expires = Date + 1
Response.Cookies("Votado" & id) = "si"
End If

Bueno esa es la base, tu ya lo acomodas de acuerdo a tus necesidades sale!

saludos
__________________
Mensajes Anonimos
www.mensajesanonimos.com
  #4 (permalink)  
Antiguo 02/01/2003, 16:30
(Desactivado)
 
Fecha de Ingreso: agosto-2002
Mensajes: 1.458
Antigüedad: 21 años, 10 meses
Puntos: 0
este es parte del codigo principal donde pondrian el control de cookies para que vote una sola vez ?


<%
ID = Request("ID")
If ID = "" Then
ID = 30
End If
Title = "Encuestas"
%>

<html>

<head><link rel="STYLESHEET" type="text/css" href="style.css">
<title>Encuesta del mes</title>

<script language="JavaScript">

function gatherForm(form){
if(form.Mode[0].checked){
form.submit();
}else{
form.action="collect.asp";
form.submit();
}
}

</script>
<meta http-equiv="" content="text/html; charset=iso-8859-1"><meta http-equiv="" content="text/html; charset=iso-8859-1"></head>


<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<div align="left">
<table width="800" height="64" border="0">
<tr>
<td><img src="file:///D|/portalfamel2/imagenes/lolo2.jpg" width="800" height="80"></td>
</tr>
</table>
<table width="803" height="40" border="0">
<tr>
<td><div align="center">
<p>&nbsp;</p>
<p><font color="#804040" size="+2"><u>Encuesta del mes</u></font></p>
</div></td>
</tr>
</table>
<br>
<br>
<br>
</div>
<div align="center">
<table width="83%" cellspacing="0" cellpadding="2"><tr><td align="left" width="25%" valign="top" class="bold">
<form action="default.asp">
<table width="100" border="1" bordercolor=#ccccff><tr><td>
<table border=0 cellspacing=0 cellpadding=5 bgcolor=#4f4f4f>
<tr>
<td colspan=3 bgcolor=#000000 align=center class="bold2">Seleccione
una encuesta</td>
</tr>
<tr>
<td colspan=3 bgcolor=#000000 align=center> <select name="ID" onChange="gatherForm(this.form)" class="input">
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open Application("ASPPollDSN")
sql = "select * from Poll"
Set rs = conn.Execute(sql)
Do While Not rs.EOF
%>
<option value="<%=rs("ID")%>"><%=rs("PollName")%>
<%
rs.MoveNext
Loop
%>
</select> </tr>
<tr>
<td colspan=3 align=right bgcolor=#FFFFFF class="bold"> Votar en encuesta:
<input type="radio" name="Mode" value="Vote" CHECKED>
<br>
Ver resultados:
<input type="radio" name="Mode" value="View"> </td>
</tr>
<tr> <td colspan=3 align=right bgcolor=#000000 align=center>
<input type="button" value=" Ir " onClick="gatherForm(this.form)" class="inline"></td></tr>
</table></td></tr>
</table>
</form>
<br>
<div align="left" class="bold"> </div></td><td align="center" width="75%" valign="top">
<table width="100" border=1 cellspacing=2 cellpadding=0 bordercolor=#ccccff><tr><td>
<form method="post" action="collect.asp">
<input type="hidden" name="id" value="<%=id%>">
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open Application("ASPPollDSN")
sql = "select * from Poll where ID = " & ID
Set rs = conn.Execute(sql)
If rs.EOF = False Then
%>
<table border=0 cellspacing=0 cellpadding=10 bgcolor=#4f4f4f>
<tr>
<!-- <td colspan=3 bgcolor=#2f2f4f align=center><font face="verdana" color=#f5fcdc>
Poll: <%=rs("PollName")%>
</td> -->
</tr>
<tr>
<td colspan=3 bgcolor=#000000 align=left class="bold2"><%=rs("PollQuestion")%> </tr>
<%
For I=1 To 5
choice = rs("Choice" & I)
If choice <> "" Then
%>
<tr>
<!-- <td width=50 colspan=1 bgcolor=#4f4f4f>&nbsp;</td> -->
<td colspan=2 bgcolor=#FFFFFF class="bold" align="left"> <%=choice%></td>
<td bgcolor=#FFFFFF align="left"><input type="radio" name="choice" value="<%=I%>">
</td>
</tr>
<%
End If
Next
%></tr>
<% If rs("GetName") = "1" Then %>
<tr>
<td colspan=1 align=right bgcolor=#FFFFFF class="bold"> Your Name:</td>
<td colspan=2 align=right bgcolor=#FFFFFF> <input type="text" name="Name">
</td>
</tr>
<% End If %>
<tr> <td colspan=3 align=right bgcolor=#000000 align=center>
<input type="submit" value="Enviar voto" class="inline"></td></tr>
</table>
<%
Else
Response.Write "Elija una opcion de encuesta !"
End If
%></td></tr>
</form>
</table></td>
</tr>
</table>
</div>
</body>
</html>
  #5 (permalink)  
Antiguo 03/01/2003, 05:13
(Desactivado)
 
Fecha de Ingreso: agosto-2002
Mensajes: 1.458
Antigüedad: 21 años, 10 meses
Puntos: 0


POR FAVOR NECESITO AYUDA SOBRE ESTE TEMA

MUCHAS GRACIAS A QUIEN ME PUEDA AYUDAR
  #6 (permalink)  
Antiguo 03/01/2003, 13:00
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
a ver como tienes validado el ingreso de usuario?...

usai b de datos o algo por el estilo?
cookies o sessiones?
  #7 (permalink)  
Antiguo 03/01/2003, 13:08
(Desactivado)
 
Fecha de Ingreso: agosto-2002
Mensajes: 1.458
Antigüedad: 21 años, 10 meses
Puntos: 0
USA BASE DE DATOS , LO QUE QUIERO ES USAR COOKIES PERO NO SE COMO HACERLO.

LA BASE DE DATOS ESTA COMPUESTA POR UN LADO POR LOS RESULTADOS DE LA ENCUESTA , ES DECIR ACUMULA LAS RESPUESTAS SOBRE LA OPCION ELEGIDA Y POR EL OTRO LADO EN LA BASE ESTAN LAS OPCIONES QUE SE PUEDEN ELEGIR , EL TEMA ES QUE ANDA BIEN PERO UN MISMO USUARIO PUEDE VOTAR LAS VECES QUE QUIERA ESTO ES LO QUE QUIERO EVITAR
  #8 (permalink)  
Antiguo 03/01/2003, 13:23
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
bueno para empezar tendrias que tener en tu base de datos una tabla que identifique a tus usuarios para controlar esto con cookies o algo por el estilo...

te recomiendo que crees una tabla donde guardes algun dato que diferencie a tus usuarios...

para entrar al sitio te pide el alguna parte la autentificacion?..

si no es asi...por ahi dieron la idea que capturaras el numero IP del cliente.

bueno eso lo puedes lograr por medio de las variables de servidor...

pero respondeme primero para seguir guiandote.
  #9 (permalink)  
Antiguo 03/01/2003, 13:24
Avatar de Leonardo A. Sanchez  
Fecha de Ingreso: julio-2000
Ubicación: Mexico D.F.
Mensajes: 151
Antigüedad: 23 años, 11 meses
Puntos: 0
Mira no vas a poder hacer una verificacion 100% segura, a menos que de algun modo puedas validar la identidad del usuario que te contesta la encuesta.

Esto lo puedes hacer bien creando una seccion donde las personas de afilien si desea poder hacer cosas como contestar encuentras, y ahi si podrias contra ese id, validar si contesto o no alguna encuesta.

O la otra forma que no es mejor es usar las cookies que te proponen, pero ten en cuenta que si el usuario borra sus cokkies podria votar nuevamente.
__________________
En las manos de su manejador, la vida de Michael Jordan vale unos 20 millones, en las manos de Dios, cuanto crees que valdria tu vida? Entregasela y el hara de tu vida la mas valiosa del mundo entero.
  #10 (permalink)  
Antiguo 03/01/2003, 17:34
(Desactivado)
 
Fecha de Ingreso: agosto-2002
Mensajes: 1.458
Antigüedad: 21 años, 10 meses
Puntos: 0
mi encuesta esta metida dentro de una seccion que el usuario primero se logea previamente para ingresar ya que es una opcion mas para clientes registrados.-

Es una de las opciones de un menu solamente de usuarios registrados , por una tabla que yo mismo les doy de alta-
  #11 (permalink)  
Antiguo 03/01/2003, 20:43
 
Fecha de Ingreso: enero-2002
Mensajes: 106
Antigüedad: 22 años, 4 meses
Puntos: 0
Lo que pudes hacer es restringirlo con la IP del usuario es mas seguro que con Cookies porque asi si borran las cookies de los temps pues volveran a votar y no van a ser tan reales las votaciones.

Añade en tu base de datos una tabla que se llame ip

entonces
con esto vas a grabar la IP
u_input=request.form("u_input")
u_ip=request.servervariables("remote_addr")

sql = "insert into TablaPoll(ip, selection" & u_input &") "
sql = sql & "values ('" & u_ip & "',1)"
rs.Open sql, cn

if u_input = "" then

la votacion

<%conexion a la base de datos%>

despues

set rs = server.createobject("ADODB.Recordset")
sql = "select ip from ballot where ip ='" & u_ip & "'"

rs.Open sql, cn
if rs.eof then

been_here_before="No"
end if
rs.close

sql = "insert into TablaPoll(ip, selection" & u_input &") "
sql = sql & "values ('" & u_ip & "',1)"
rs.Open sql, cn
end if

ya lo demas tu lo decides
__________________
Jherrera.NET
  #12 (permalink)  
Antiguo 05/01/2003, 09:03
 
Fecha de Ingreso: junio-2002
Mensajes: 93
Antigüedad: 22 años
Puntos: 0
A mi juicio lo mas sencillo es hacerlo con cookies.
Lo de la ip tiene tambien el inconveniente de las Ip's dinamicas (usuarios que se conectan con modem a traves de un servidor).

Asi que te pongo un ejemplo para que lo estudies y decidas

if request.cookies("encuestas")("nombre_de_encuesta") ="" then
response.cookies("encuestas").expires=date+1000
response.cookies("encuestas")("nombre_de_encuesta" )="votado"
tu codigo para votar

else
response.write("tu ya votaste en esta encuesta")
end if

De esta forma puedes controlar en que encuesta votaron (si es que hay mas de una).

Espero te sirva

Saludos Kaki
  #13 (permalink)  
Antiguo 06/01/2003, 13:43
Avatar de kalvin  
Fecha de Ingreso: noviembre-2002
Mensajes: 28
Antigüedad: 21 años, 6 meses
Puntos: 0
De acuerdo

http://www.2enetworx.com/dev/projects/minisurvey.asp

prueba en esta dirección es un sistema de encuesta bastante bueno. te facilitan todo el codigo en asp y valida las Votaciones mediante la ip del participante. Ademas tiene una caracteristica bastante buena es que puedes hacer un lote de preguntas y asignarle un periodo de vigencia para la pregnta de la encuesta...

lo unico que podrias considerar encontra es que esta en ingles ....

espero que te sirva....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:23.