← Desenvolvimento

Div aparece apenas uma vez ao utilizador

Lida 3648 vezes

Offline

Tjda 
Membro
Mensagens 690 Gostos 9
Troféus totais: 31
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Ola, preciso de criar uma div que apareça só uma vez ao utilizador, isto se ele clicar na div.

Ou seja, o utilizador entra no site, ve a Div clica, se voltar a entrar não verá a div.
Caso não clique, verá a div, até clicar.

Alguém sabe como fazer tal coisa ?
Offline

RuiGomes 
Membro
Mensagens 504 Gostos 0
Feedback +4

Troféus totais: 23
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 500 Posts 100 Posts

Na página de aterragem dessa div, geras um cookie.
Se o utilizador tiver o cookie, não mostra a div, se não tiver, mostra.
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

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

Podes fazzer com PHP ou JS.

Com PHP fica assim:
Código: [Seleccione]
<?php
if (!isset($_COOKIE["div"]) && $_COOKIE["div"] != 'esconder')
  echo 
"<div>Olá, Bem Vindo!</div>";

setcookie("div""esconder"time()+3600);
?>


PS: Não sei se funciona, seria melhor fazer em JS para poderes definir o cookie só quando o user clica na div... Isto suponde que seja um pop-up onde vais aplicar isto... Mas JS não é comigo... lol
Offline

Tjda 
Membro
Mensagens 690 Gostos 9
Troféus totais: 31
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

não é popup, clica e vai para outra pagina, tal como o RuiGomes disse, pior é que JS tb não é comigo ... vou ver se leio alguma coisa ...
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

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

não é popup, clica e vai para outra pagina, tal como o RuiGomes disse, pior é que JS tb não é comigo ... vou ver se leio alguma coisa ...

Então se clica e vai para outra pagina, nessa segunda pagina aplicas o cookie.
Código: [Seleccione]
<?php
setcookie
("div""esconder"time()+3600);
?>

E na anterior, onde aparece a div para clicar, metes o resto.
Código: [Seleccione]
<?php
if (!isset($_COOKIE["div"]) && $_COOKIE["div"] != 'esconder')
  echo 
"<div>Olá, Bem Vindo!</div>";
?>

Offline

RuiGomes 
Membro
Mensagens 504 Gostos 0
Feedback +4

Troféus totais: 23
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 500 Posts 100 Posts

Então se clica e vai para outra pagina, nessa segunda pagina aplicas o cookie.
Código: [Seleccione]
<?php
setcookie
("div""esconder"time()+3600);
?>

E na anterior, onde aparece a div para clicar, metes o resto.
Código: [Seleccione]
<?php
if (!isset($_COOKIE["div"]) && $_COOKIE["div"] != 'esconder')
  echo 
"<div>Olá, Bem Vindo!</div>";
?>


Exacto, era assim que faria.
Alterava apenas o tempo para o cookie expirar (no código do ORiOn é 1 dia) para um mês, porque se tiveres visitantes diários (se for um blog actualizado frequentemente ou algo do género), têm de clicar na div uma vez por dia para não levarem com ela..
Para isso basta alterares o time()+3600 e substituir por algo deste género: time()+3600*30, onde 30 é o número de dias.
Offline

Tjda 
Membro
Mensagens 690 Gostos 9
Troféus totais: 31
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Obrigado, 3600 = 1 hora ?
Offline

rtbfreitas 
Equipa
Mensagens 1497 Gostos 9
Feedback +24

Troféus totais: 30
Trófeus: (Ver todos)
Windows User Apple User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4

Obrigado, 3600 = 1 hora ?

Sim, 3600 segundos = 60 minutos.
Offline

Tjda 
Membro
Mensagens 690 Gostos 9
Troféus totais: 31
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Neste momento o código está assim:
Código: [Seleccione]
if (!isset($_COOKIE["div"]) && $_COOKIE["div"] != 'esconder')
  echo' <a href="http://www.survs.com/survey/4NEYK9QRSE">
   <div height="60px" style="background:#fbe705; width:100%;">
 <center> <img src="http://www.biovolts.com/Inquerito/improviso.png" /></center>
   </div></a>';
else
  echo'
 <div height="60px" style="background:#fbe705; width:100%;">Obrigado</div>';

mas não está a funcionar, nem se colocar ao contrario (o que está no else passar para o if e o do if para o else)