Jump to content

Question

Boa tarde, sou iniciante em desenvolvimento web e fiz um site pra mim mesmo como forma de teste.

Queria adicionar um botão de FAVORITO em imagens de uma galeria para avaliação dos usuários.

Não consigo achar um tutorial, ou uma aula.

Alguém por aqui tem uma ideia de como eu posso fazer?

Obrigado.

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 1

Isso é algo muito simples desde que você tenha uma noção nem que seja básica de como manipular dados...

  • A cada upload de imagem ela deve ser registrada em um banco de dados
  • A tabela para esse afim deve possuir uma coluna para identificar-la outra para contagem de votos.
CREATE TABLE `imagens` (
    `id` int(9) NOT NULL AUTO_INCREMENT  COMMENT 'Esse é o identificador da imagem',
    `nome` varchar(200) NOT NULL DEFAULT '' COMMENT 'Nome do arquivo de imagem',
    `votos` int(9) NOT NULL DEFAULT '0' COMMENT 'Contador de votos',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  • Ao exibir a imagem adicione um botão cujo irá chamar uma função enviando a informação de qual imagem é.
<button onclick="votar('<?= $identificar_imagem ?>')">Votar na imagem</button>
  • A função por sua vez irá executar um ajax para que não haja recarregamento passando por um protocolo GET a informação de qual imagem foi votada para um arquivo.
function votar(id_da_imagem) {
  // Execute o ajax informando o arquivo e o identificador da imagem
  // ('arquivo_de_voto.php?imagem='+ id_da_imagem);
}
  • No arquivo que vai receber essa informação faça um SQL SELECT na tabela de imagem selecionado a imagem que tenha o ID da informação GET['imagem']
  • Com essa informação adicione um variável de contagem.
$contagem = ($resultado_de_votos_da_imagem += 1);
  • Então é só fazer o SQL UPDATE nessa mesmo registro atualizando a coluna de votos.

 

Ponderações:

Você também deve possuir uma segunda tabela que irá armazenar quem já votou nessa imagem, para que antes de fazer o updade possa checar se aquela pessoa já votou na imagem, do contrário uma pessoa pode clicar milhares de vezes no botão assim votando diversas vezes.

Usar-se de manipulador de tempo para que um maldosos não vá ao console ou em outra aplicação http e adicione uma função em micro-segundo para voto (é como se a pessoa clicasse centenas de vezes por segundo) sobre esse botão ou o arquivo que recebe, do contrário seu servidor será sobrecarregado de requisições (isso se a conexão e a máquina dele aguentar).

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.