Controle - Enquete JSP

6 respostas
A

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&gt
<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

<%<a class="mention" href="/u/page">@page</a> contentType=“text/html” import=“<a href="http://java.io">java.io</a>.*”%>

<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>

6 Respostas

Marlon_Meneses

se vc nao tem controle d login e senha entao a unica maneira eh fazer o controle atraves do ip!

A

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.

A

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( votou ?” + jaVotou);

out.println( votou teste?” + (jaVotou==1));

if (jaVotou == 1){

%>




Você  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>

//    <img width="+ (100 - (100 * opc[i] / total )) +">);

);

out.println(nomOpc[i] + " - " + opc[i] + " Votos. 
");

}

%>

clique aqui   para voltar
a pagina principal.

A

Alguém conseguiu me entender ?

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… :wink:

Simples… e deve ter uma maneira mais simples de fazer ainda, não tive tempo de pensar.

Mas a idéia é essa, entendeu?

A

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… :wink:

Simples… e deve ter uma maneira mais simples de fazer ainda, não tive tempo de pensar.

Mas a idéia é essa, entendeu?

Pior que isso e muito complexo, para meu nivel de entendimento java, não pode dar um exemplo atraves de codigo ?

Criado 31 de agosto de 2007
Ultima resposta 8 de set. de 2007
Respostas 6
Participantes 3