Ir para conteúdo
Fórum Script Brasil
  • 0

Visualizando uma pagina uma unica vez por visitante


lucasr

Pergunta

Bom amigos é o seguinte.

Eu gostaria de implementar em algumas de minhas paginas um codigo que não permitice o usuário visualizar uma determiada pagina duas vezes com o mesmo Ip.

Exemplo

ele entra na home do meu site, vai pra outra pagina, e essa pagina que o usuário está visualizando, gostaria que fosse exibida apenas uma vez para ele.

Se ele atualizar ou sair da pagina e voltar, gostaria que exebisse uma mensagem ou imagem falando que não é possivel revisualizar essa determinada pagina...

alguém poderia me ajudar a implementar isso?

Obrigado

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

esse script e pra exibir banner anuncios 1 ves por dia ai você pode usar a criatividade!

<?
#####CONEXÃO A MYSQL
@mysql_connect('localhost','user','pass')or die ('Falhou a conexão: '.mysql_error());
@mysql_select_db('db')or die ('Erro ao selecionar a BD: '.mysql_error());
////end conexão
?>
<?php
include "connect.php";
/* como o sistema só contabiliza 1 IP por 24 horas, então este sisteminha resolve o
problema e exibe o script do afiliado apenas 1 vez por IP por 24 horas */
$timestamp=time();
$timeout=time()-86400;
$result=mysql_query("DELETE FROM ips24 WHERE timestamp<$timeout");
$result2=mysql_query("SELECT ip FROM ips24 WHERE ip='$REMOTE_ADDR'");
$resultado=mysql_num_rows($result2);
if($resultado == 0){
echo 'SCRIPT DO BANNER';
}
else{
echo '';
}
$result=mysql_query("INSERT INTO ips24 VALUES ('$timestamp','$REMOTE_ADDR','$PHP_SELF')");
$result=mysql_query("SELECT DISTINCT ip FROM ips24") or die(mysql_error());
?>
CREATE TABLE
CREATE TABLE `ips24` (
`timestamp` int(20) NOT NULL default '0',
`ip` varchar(25) collate latin1_general_ci NOT NULL default '',
`local` varchar(70) collate latin1_general_ci default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

Link para o comentário
Compartilhar em outros sites

  • 0

nvzinho

Aparentemente funcionou, porem apos uma pessoa visualizar a pagina nenhuma outra visualiza... só depois de 24 horas, eu queria que a cada usuario que entrasse visualizasse uma vez...

porem a pagina só está sendo visualizada uma unica vez, os novos ips que visualizam não veem nd...

obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Vamos pela lógica:

1 - O cara entra no site/página:

2 - Ao entrar é guardado no banco: "página visitada + ip_usuário + data_hora_visita";

3 - Ao voltar no site/página o que você faz: pega novamente : "página visitada + ip_usuário + data_hora_visita";

4 - você checa se existe isso no banco

5 - Se existir bloqueia, senão libera acesso.

Qual a dificuldade?

Link para o comentário
Compartilhar em outros sites

  • 0

Tá ai véio, testado e funcionado, adapte-o conforme sua necessidade.

tabela: acessos

CREATE TABLE `acessos` (
  `ip` varchar(60) NOT NULL,
  `datahora` datetime NOT NULL,
  `url` varchar(200) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- 
-- Extraindo dados da tabela `acessos`
-- 

INSERT INTO `acessos` VALUES ('127.0.0.1', '2011-07-18 08:07:11', 'http://localhost/a/index.php');
Segue o script php comentado.
<?php
mysql_connect('localhost','root','pass') or die (mysql_error());
mysql_select_db('meu_banco');


$ip = $_SERVER['REMOTE_ADDR']; //pega o ip do cara
$data_hora = date('Y-m-d h:m:s'); //pega datahora do acesso
$url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; //pega o link/url que ele está acessando


//Verificando se existe esse ip já visitou essa página.
$sql = "select * from acessos where ip = '".$ip."' and url = '".$url."'";
$result = mysql_query($sql) or die (mysql_error());
$qtde = mysql_num_rows($result);
if($qtde == 0) {
mysql_query("insert into acessos values('".$ip."','".$data_hora."','".$url."')");

/*
aqui vai todo o código caso ele não tenha visitado o link
*/

}
else {
echo "<script>alert('Você só pode acessar essa url')</script>";
echo "<script>history.go(-1)</script>";
}

?>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...