Validação de campos em enquete usando campos escondidos

Olá pessoALL

Estou criando uma enquete e preciso validar para que o usuário não consiga votar duas vezes no mesmo dia, acontece que os campos que quero validar são campos que não aparecem no formulário “ip do usuário e data que ele votou”.

Estou usando o código abaixo… se eu deixar os campos visíveis funciona OK.

Já tentei em vários eventos e também coloquei o código em método PHP chamando em vários eventos da seguinte forma: valida();

//Usando o evento onBeforeInsert
//os campos ipvota e datavota são campos escondidos

$sqlEnq = "select idaprovacao from tblaprovacao where ipvota = '".{ipvota}."' AND datavota = '".{datavota}."'  ";
sc_lookup(lookupEnq,$sqlEnq);
if(!empty({lookupEnq}))
{
     sc_error_message("<h3>ATENÇÃO!!!</h3> <h3>Você já votou hoje, retorne amanhã...</h3>");
}

olhe melhor a documentação da macro sc_lookup

coloque a validação no OnValidate (é pra isso que serve)

Já fiz teste no evento onValidate e outros, mas não funciona…
Só funciona para os campos que aparecem no formulário…

Aqui você coloca “and”, mas se esquece que se a pessoa tiver contratado ip dinâmico, o que ocorre mais de 90% das vezes, ele pode mudar a qualquer momento.
E isto irá invalidar sua query.
Ela sempre retornará vazia se o ip mudar.

Esqueci de responder outra questão.
Se quando os campos não estão visíveis não pega o ip e etc.
Use a variáveis pré-definidas do php.
Ex: $ip = $_SERVER[“REMOTE_ADDR”];
Quanto a data tem no manual do php ou google como pegar.
Você também pode fazer a gambiarra de deixar os campos visíveis e depois de pegar os dados usar as macros do SC para esconder estes campos.
Isto tem no manual das macros -> http://www.scriptcase.com.br/docs/pt_br/v81/macros-scriptcase/macros-scriptcase#sc_field_display.

Obrigado Alexandre,

Quanto ao IP dinâmico não teria problema, afinal é apenas uma enquete, entretanto resolvi usar o campo data e um outro campo onde vai o número de cadastro do usuário, dessa forma você pode votar hoje e pode voltar a votar amanhã.

Resolução do problema -->
Quanto ao campo que não estava sendo exibido fui em “editar campos” tirei-os de: “Campos não mostrados” e exibi os mesmos no bloco, selecionei cada campo individualmente e marquei-os como “Campo escondido”.

Isso aqui em minha humilde opinião é uma Pegadinha pois “Campos não mostrados” e “Campo escondido” são duas coisas diferentes, inclusive minha pergunta deveria ser; “Validação de campos em enquete usando campos não mostrados”.

Obrigado pelo retorno.