• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

elcsat

ajuda em flood php (acho que e assim que se chama)

5 mensagens neste tópico

bom dia, gostaria que me ajudassem num site que ando a fazer, sempre que é feito um registo no site em que esse tenha que ir para a base de dados, nao queria que o cliente sempre que fizesse refresh da pagina escrevesse uma na base de dados, ja pensei usar um cookie para isso ou uma sessao, mas  tava a pensar se havia alguma funçao que verificasse isso automaticamente, é isso que procuro uma funçao. cumprimentos nuno batista

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não me lembro de nenhuma função que faça isso; tens mesmo de escrever código para validar ou controlar as acções do utilizador.

Tens várias hipóteses:

a) verificar se o registo já existe na base de dados antes de o inserir. Se já existe é porque o cliente fez um refresh da página.

:confused: Arranjas uma chave única para cada inserção. Se a instrução INSERT do site der o erro de "chave duplicada", quer dizer que foi um refresh. Ignoras o erro e continuas normalmente.

c) Fazes o registo sem escrever nada na página e depois redireccionas o cliente para outra página. Assim, se ele fizer o refresh, faz o refresh à outra página, e não à página que insere dados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigada, mas nao se trata de registo se fosse era facil unique, primary key da base de dados registo unico na base de dados de username de email, mas nao se trata de registo, trata-se de mensagens, logo nao posso ir por verificaçoes na base de dados, mas posso usar um cookie por exemplo quando ele escreve a primeira vez na base de dados atribuir o titulo da mensagem ao cookie, se fizer um refresh e o cookie existir conclusao ignora simplesmente a inserçao na base de dados era isto que eu tinha em mente, quem diz isto diz sessoes mas para o meu caso e melhor cookies:P

obrigada pela resposta

bom fim de semana

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E quando é que apagas o cookie?

O utilizador não pode escrever duas mensagens seguidas, na mesma sessão, com o mesmo cookie?

Não sei como é que usas as mensagens no teu site, mas se for uma coisa tipo e-mail o utilizador não pode responder a uma mensagem a dada altura (título "Re: mensagem") e passados dois minutos lembrar-se que queria dizer mais qualquer coisa nessa mensagem e mandar *outra* mensagem com o mesmo título?

A respeito da chave única: o que eu escrevi foi abuso de linguagem. É claro que a chave duma tabela é única. O que eu queria dizer é que podes limitar uma coluna qualquer (independentemente de fazer ou não parte da chave da tabela) para ter valores únicos.

CREATE UNIQUE INDEX idx_titulo ON mensagem (titulo)

A chave primária de uma tabela não é mais que um UNIQUE INDEX especializado.

Das soluções que apresentei na minha mensagem anterior, a que eu gosto mais é a última

      /* trata dos dados recebidos */
      $sql = "INSERT INTO mensagem VALUES ($id, $titulo, $recipiente)";
      mysql_query($sql);
      header('Location: inbox.php'); /* sem mandar nada para o browser antes! */
      exit('Redireccionado para a <a href="inbox.php">caixa de entrada</a>.');

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigada, ja resolvi o problema :) mas fico grato pela resposta. cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora