Informações de usuário

Olá pessoal!

Me pediram pra fazer um formulário com uma pesquisa aki na empresa, mas não é pra identificar ninguém no formulário. O pessoal só vai responder um determinado questionário e pronto.

Agora o problema: Como eu faço pra verificar se o cara já participou do formulário? Pra uma mesma pessoa não responder o formulário várias vezes. não vai poder logar.

Alguém tem uma idéia?

Faça o seguinte:

Pegue a informação de usuário (se você estiver usando o Internet Explorer e o IIS dá para pegar a informação do usuário do Windows que está logado. Se em vez do IIS você estiver usando o Tomcat ou Apache ainda dá para pegar essa informação, mas é um pouco mais complicado. Veja um post - http://www.guj.com.br/posts/list/26264.java - para ver como é que se faz isso.)
Uma vez que você pegou a informação de usuário (digamos usuário = “abcde\zemane”), gere um hash desse nome, e grave esse hash junto com os resultados da pesquisa que ele respondeu. Dessa forma, você não guardou o nome do usuário.
Para ver se o usuário já respondeu a pesquisa, procure pelo hash do nome do usuário a pesquisa.

(Você poderia, em vez do hash do usuário, pegar o hash da máquina, que é mais fácil de obter no web server, não requerendo configuração, mas aí você não poderia fazer com que duas pessoas diferentes respondessem a mesma pesquisa na mesma máquina.)

bom complicado isso…

  • por exemplo você poderia validar pelo IP da maquina, se aquele IP já votou vc barra…
  • poderia ser por cookie, se a cookie existir vc barra
  • você poderia fazer um login e então depois o usuario vota e logicamente você valida isso.

tem varias alternativas você tem que analisar qual abordagem será mais adequada conforme o seu projeto.

falow

Vc pode pegar o endereço mac de cada pessoa que votar na pesquisa e assim tem controle e não permite que ela vote duas vezes, porém se várias pessoas usarem a mesma maquina vc vai ter problemas tenho esse exempo de código que peguei na internet ele não resolve o problema mais pega o ip da pessoal e te devolve um objeto process com a execução do camando


import java.io.IOException;

public class PegaIp {

	public static void main(String[] args) {

		String comando = "ipconfig /all";
		try {
			Process p = Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL " + comando);

		} catch (IOException e) {
			e.printStackTrace();
		}

	}
}

espero ter ajudado

você pode bolar algo como convite para preenchimento que pode ser impresso ou por email mas neste ultimo caso você deve garantir a transparência do processo uma vez que o convite seria direcionado.

cara tive outra ideia usa o mesmo codigo só que executando o comando dos que trás o nome do usuário local na maquina armazena esse usuário e quando ele for votar faz uma verificação tinha o comando dos que faz isso com netstat se não me engano, pois tem muito tempo que não mexo com isso espero ter ajudado

Vc nao pode pedir o usuário no começo, mas na hora de gravar, gravar em tabelas diferentes, assim: em uma apenas o nome dos usuários (só pra vc ter uma relação de quem já participu), na outra só as respostas, sem relacionar em nada as respostas com o usuário ?

Duro seria falar pros usuários que tavam pedindo o nome mas não ia gravar as respostas relacionadas…rs…

Escolhi uma das respostas propostas acima e resolvi meu problema!

Muito obrigado pessoal!
8)