← Desenvolvimento

[PHP] Validar Clicks Antes de Inserir Pontos na BD...

Lida 6372 vezes

Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Boas!!
Precisava urgentemente de ajuda para um projecto que estou a desenvolver e que pretendo pôr online ainda este fim de semana.
Tá tudo pronto e a funcionar a 100%, só que tenho um problema...
O projecto é um site TOP LIST, onde vários sites se irão registar. Ao se registarem, é-lhes atribuido um link com uma ID (EX: http://sitetop.net/in.php?id=5).
Por cada click proveniente desse link vai contar 1 ponto, de modo que quantos mais clicks um site enviar para o TOP, mais alto vai ficar no Racking.
Tudo isto é muito bonito... ou era... Era até o ppl começar a utilizar um link como uma imagem, simplesmente inserindo o link (que supostamente seria para o ppl clickar para o site a fim de somar pontos) dentro das tags <IMG>.
Assim sendo quando a imagem (que não é imagem nenhuma) é carregada pelo browser, conta como um ponto na base de dados.

O que eu queria era uma função para adicionar ao site para que por exemplo com a função time() me gerasse um link  de verificação que teria de ser clickado manualmente para então depois inserir mais um ponto na Base de dados.(EX: http://sitetop.net/in.php?id=5&check=02445457)

Para quem não entendeu bem, o que eu quero é algo tipo isto:
http://mradar.com/?i=1000
O site gera um link com um código de segurança para então depois inserir + 1 ponto na BD, mesmo que se volte atrás, ou se faça refresh á página, o click só conta uma vez.
 

Alguem sabe alguma função para o efeito?
NOTA: não pode ser com SESSION e muito menos com cookies porque isto é para um top WAP, e os telemóveis (a grande maioria) não suporta essas funcionalidades.

Desde já muito obrigado.
Offline

cenourinha 
Elite
Mensagens 4094 Gostos 21
Troféus totais: 34
Trófeus: (Ver todos)
Mobile User Apple User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4

Isso tem que ser um script que conte o número de visualizações da imagem.

Acho que vais ter de usar iframes, mas como é um site Wap não sei...
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Citação de: "cenourinha"
Isso tem que ser um script que conte o número de visualizações da imagem.

Acho que vais ter de usar iframes, mas como é um site Wap não sei...


Não, não estás a perceber...
O que eu pretendo é uma função para impedir que o ppl em vez de um link ponham uma imagem com a sua ID, o que iria marcar pontos na BD.

Por ex, mete isto numa página:
<img src="http://webtuga.com" alt="webtuga"/>
e vais ver que te conta + 1 valor no teu contador, embora não tenhas sequer acedido ao site.

É isto que eu quero evitar, só que no meu caso tem a ver com a contagem para o ranking dos sites.
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Eu acho que sei mais ou menos como fazer isso, mas estou com preguiça de escrever, amanhã eu digo algo.  :wink:
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Citação de: "kingless"
Eu acho que sei mais ou menos como fazer isso, mas estou com preguiça de escrever, amanhã eu digo algo.  :wink:


Ok, fico a aguardar :roll:
Offline

OFFICER 
Membro
Mensagens 2076 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Citação de: "=IceBurn="
Citação de: "cenourinha"
Isso tem que ser um script que conte o número de visualizações da imagem.

Acho que vais ter de usar iframes, mas como é um site Wap não sei...


Não, não estás a perceber...
O que eu pretendo é uma função para impedir que o ppl em vez de um link ponham uma imagem com a sua ID, o que iria marcar pontos na BD.

Por ex, mete isto numa página:
<img src="http://webtuga.com" alt="webtuga"/>
e vais ver que te conta + 1 valor no teu contador, embora não tenhas sequer acedido ao site.

É isto que eu quero evitar, só que no meu caso tem a ver com a contagem para o ranking dos sites.


O que tu queres é uma página em que só depois de clicado manualmente conta o voto certo? Tens a opção de ter o tal linkzinho e só aí contar o voto, em vez de contar o voto apenas com in.php?id=1 contar voto só quando tem in.php?id=1&m=sim

Acho que assim se tornaria mais fácil, depois no teu ficheiro de in..terias que modificar e ele apenas inserir o voto caso tenha a variável "$m" = sim lol

Pronto..se percebi mal, peço desculpa, mas fica aqui a sugestão.
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

OFFICER, é isso que eu pretendo...
O problema do ppl linkar com uma imagem já está resolvido, porque em vez do link ser http://sitetop.net/?id=5 passa a ser http://sitetop.net/in.php?id=5 ou seja, antes de contar + 1 ponto o utilizador tem mesmo que aceder á página e clickar manualmente no link <a href='.../?id=5'>[ Enter ]</a>, caso não clickar, a página é redirectionada dentro de 10 segundos.
Só que agora é precisamente essa nova variável que eu preciso para que se  o utilizador voltar atrás e clickar [ Enter ] novamente aquilo não voltar a contar mais um ponto, que é precisamente o que acontece agora.

Portanto a variável teria que ser sempre a mesma para cada utilizador até que este se desliga-se da net...

Tenho a certeza que isto não é nenhum bicho de 7 cabeças (LoL), mas não me ocorre mm nada para resolver isto e lançar o site....  :?
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

podias colocar cookies na pagina onde o utilizador tem que clicar em [Enter] algo tipo:

setCookie("clicou",  $_SERVER['REMOTE_ADDR'], time()+60*60*24*30);

Depois no principio do mesmo ficheiro colocavas:

if(isset($_COOKIE['clicou']) OR $_COOKIE['clicou'] != "") {
Header("Location:  http://www.sitetop.com");
}

Não sei se percebeste a ideia mas cookies é o melhor para se fazer isso  :wink:
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Não pode ser Kingless, os telemóveis não suportam cookies.

Aqui está mais um exemplo do que eu preciso, se usarem Opera conseguem aceder:
http://top.2wap.net/in.php?id=500

Reparem como fica o URL depois de clickarem em "Enter",
fica algo tipo isto:
http://top.2wap.net/index.php?id=500&check=MTE0OTk1ODU1NA==
Offline

OFFICER 
Membro
Mensagens 2076 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Citação de: "=IceBurn="
Não pode ser Kingless, os telemóveis não suportam cookies.


Não sei se suporta sessions, mas podias colocar uma session por cada click..ficando algo como:

http://sitetop.net/?id=5&SID=12345asef355346

Algo assim, claro que aquela sid nem existe e foi feita ao calhas, seria bem maior mas..seria 1 método de proteger.

Depois podias colocar uma protecção, se a SID a seguir ainda for igual..não deixa votar, algo assim..

Agora não sei é se é possivel, trabalhar com wap é mais complicado pelo motivo de não haver certas coisas essenciais..
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Esqueci-me de ler a "NOTA"  :?
Offline

OFFICER 
Membro
Mensagens 2076 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Citação de: "=IceBurn="
Não pode ser Kingless, os telemóveis não suportam cookies.

Aqui está mais um exemplo do que eu preciso, se usarem Opera conseguem aceder:
http://top.2wap.net/in.php?id=500

Reparem como fica o URL depois de clickarem em "Enter",
fica algo tipo isto:
http://top.2wap.net/index.php?id=500&check=MTE0OTk1ODU1NA==


Acho que cria uma espécie de sessão.. é boa ideia..
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Mas porquê criar um top para telemoveis  :-k
Offline

OFFICER 
Membro
Mensagens 2076 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

É a área dele..trabalhar em wap..mas também, acredito que exista bastantes pessoas que utilizem o telemóvel para visitar sites, mas a única coisa que acho piada na internet de telemóvel é o MSN e mesmo assim acho que não tem nada a ver..
Offline

10igner 
Membro
Mensagens 717 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Citação de: "=IceBurn="
OFFICER, é isso que eu pretendo...
O problema do ppl linkar com uma imagem já está resolvido, porque em vez do link ser http://sitetop.net/?id=5 passa a ser http://sitetop.net/in.php?id=5 ou seja, antes de contar + 1 ponto o utilizador tem mesmo que aceder á página e clickar manualmente no link <a href='.../?id=5'>[ Enter ]</a>, caso não clickar, a página é redirectionada dentro de 10 segundos.
Só que agora é precisamente essa nova variável que eu preciso para que se  o utilizador voltar atrás e clickar [ Enter ] novamente aquilo não voltar a contar mais um ponto, que é precisamente o que acontece agora.

Portanto a variável teria que ser sempre a mesma para cada utilizador até que este se desliga-se da net...

Tenho a certeza que isto não é nenhum bicho de 7 cabeças (LoL), mas não me ocorre mm nada para resolver isto e lançar o site....  :?

a navegação por  telemovel também tem ip?

se tiver podes gravar o ip juntamente com o voto, se o ip já existir os votos adicionais com o mesmo ip num determinado espaço de tempo não são contabilizados.

o código php não o sei, mas que dá para fazer isto, dá.