Bom Dia !
Galera preciso de uma super ajuda "orientação", de como fazer com que o mesmo usuario não vote.
Abaixo segue meu codigo da enquete.
Ja pesquisei ja tentei, mas o detalhe é que eu não estou conseguindo fazer.
o usuario que acabou de voltar, não poderá votar novamente.
HTML
html>
<head>
<title>pesquisa </title>
</head>
<body bgcolor="#000000" text="#FFFFFF">
<h1>Pesquisa</h1>
<form name=“form_pesquisa” action=“enquete2.jsp” method=“POST”>
Informe seu nome:
<input name=“eNome” size=“20”>
<h4> Qual a aula que voce mais detesta na faculdade:</h4>
<select name=“aulas”>
<option value=“0”>WEB</option>
<option value=“1”>ALGORITMOS</option>
<option value=“2”>JAVA</option>
<option value=“3”>ESTATISTICA</option>
<option value=“4”>ADMINISTRAÇÃO</option>
</select>
<center><input type=“submit” value=“Enviar resposta”></center>
</form>
</body>
</html>
JSP
<%@page contentType=“text/html” import=“java.io.*”%>
<html>
<head>
<title>jsp page</title>
</head>
<body bgcolor="#000000" text="#FFFFFF" vlink="#003399">
<%
int opc[]=new int[5];
String nomOpc[]={“WEB”,“ALGORITMOS”,“JAVA”,“ESTATISTICA”,“ADMINISTRAÇÃO”};
String nomCor[]={“marrom”,“azul”,“purpura”,“ouro”,“verde”};
int total=1;
String nomArq=“resultado.txt”;
//le o arquivo
File arq= new File(nomArq);
if(arq.exists()){
BufferedReader br= new BufferedReader(new FileReader(nomArq));
String lin;
int i=0;
while((lin=br.readLine())!=null){
opc[i]=Integer.parseInt(lin);
total+= opc[i];
i++;
}
br.close();
}else{//arq vazio
for(int i=0;i<opc.length;i++)
opc[i]=0;
}
int indice=Integer.parseInt(request.getParameter(“aulas”));
opc[indice]+=1;
//monta o grafico
for (int i = 0; i < opc.length; i++) {
out.println("<img src=‘image\" + nomCor[i] + ".gif’ width = " + ((100 * opc[i])/total) + “heigth=10>”
// “<img src = ‘’ width=” + (100 - (100 * opc[i] / total )) + " heigth=10>");
);
out.println(nomOpc[i] + " - " + opc[i] + " Votos. <br>");
}
//regrava o arquivo
PrintWriter saida= new PrintWriter(new FileWriter(nomArq));
for(int i=0;i<opc.length;i++)
saida.println(opc[i]);
saida.close();
%>
clique aqui para voltar
a pagina principal.
</body>
</html>
se vc nao tem controle d login e senha entao a unica maneira eh fazer o controle atraves do ip!
Tenho uma senha e login, mas ela é padrão.
Tipo
login felix
senha felix
E como assim controle de ip ?
Isso e somente um trabalho , e isso e um controle local.
Olha as alterações que eu fiz tentando fazer o que eu quero.
Mas ainda estou tendo problemas.
%@page contentType=“text/html” import=“java.io.*”%>
jsp page
<%
int opc[]=new int[5];
String nomOpc[]={“WEB”,“ALGORITMOS”,“JAVA”,“ESTATISTICA”,“ADMINISTRAÇÃO”};
String nomCor[]={“marrom”,“azul”,“purpura”,“ouro”,“verde”};
int total=1;
String nomArq=“C:\temp\resultado.txt”;
//le o arquivo
File arq= new File(nomArq);
if(arq.exists()){
BufferedReader br= new BufferedReader(new FileReader(nomArq));
String lin;
int i=0;
while((lin=br.readLine())!=null){
opc[i]=Integer.parseInt(lin);
total+= opc[i];
i++;
}
br.close();
}else{//arq vazio
for(int i=0;i<opc.length;i++)
opc[i]=0;
}
int jaVotou=0;
String aluno = request.getParameter(“eNome”);
//Cria arquivo voto.txt e verifica se existe ou seja se já votou
String nomArq1=“C:\temp\quemVotou.txt”;
File arq1= new File(nomArq1);
if(arq1.exists()){
BufferedReader br1= new BufferedReader(new FileReader(nomArq1));
String lin1;
int i1=0;
while((lin1=br1.readLine())!=null){
out.println("Linha:" + lin1);
out.println("Aluno:" + aluno);
if (aluno.equalsIgnoreCase(lin1)){
jaVotou=1;
out.println("Entrou no if");
}
i1++;
}
br1.close();
}else{//arq vazio
jaVotou=0;
}
out.println(“Já votou ?” + jaVotou);
out.println(“Já votou teste?” + (jaVotou==1));
if (jaVotou == 1){
%>
Você já votou
<%} else { %>
Você não votou
<%}
//regrava o arquivo de votação
PrintWriter saida= new PrintWriter(new FileWriter(nomArq));
for(int i=0;i<opc.length;i++)
saida.println(opc[i]);
saida.close();
//Grava arquivo de voto
PrintWriter saida1= new PrintWriter(new FileWriter(nomArq1));
saida1.println(aluno);
saida1.close();
int indice=Integer.parseInt(request.getParameter(“aulas”));
if (jaVotou==0) opc[indice]+=1;
//monta o grafico
for (int i = 0; i < opc.length; i++) {
out.println("<img src=‘image\" + nomCor[i] + ".gif’ width = " + ((100 * opc[i])/total) + “heigth=10>”
// “”);
);
out.println(nomOpc[i] + " - " + opc[i] + " Votos.
");
}
%>
clique aqui para voltar
a pagina principal.
Alguém conseguiu me entender ?
Eu faria assim:
Criaria uma tabela no banco, com o titulo da enquete e um id.
Outra pra gravar as perguntas da tua enquete, todas com chaveadas com o id da enquete criada.
Depois, tu pode criar uma tabela armazenando ids dos teus usuários que votaram em determinada enquete.
Quando teu usuário for votar, antes de computar o voto, consulta as tabelas do teu banco, procurando pelo id do usuário e o id da dita enquete, pra ver se já não votou…
Simples… e deve ter uma maneira mais simples de fazer ainda, não tive tempo de pensar.
Mas a idéia é essa, entendeu?
[quote=zirocool]Eu faria assim:
Criaria uma tabela no banco, com o titulo da enquete e um id.
Outra pra gravar as perguntas da tua enquete, todas com chaveadas com o id da enquete criada.
Depois, tu pode criar uma tabela armazenando ids dos teus usuários que votaram em determinada enquete.
Quando teu usuário for votar, antes de computar o voto, consulta as tabelas do teu banco, procurando pelo id do usuário e o id da dita enquete, pra ver se já não votou…
Simples… e deve ter uma maneira mais simples de fazer ainda, não tive tempo de pensar.
Mas a idéia é essa, entendeu?[/quote]
Pior que isso e muito complexo, para meu nivel de entendimento java, não pode dar um exemplo atraves de codigo ?