Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wilvp

Bloquear a exibição de 2 páginas a mesmo tempo

Recommended Posts

Preciso limitar o usuario logado na session de abrir duas páginas.php ao mesmo tempo, por exemplo fechando a anterior ou mesmo fechando a pagina aberta algo assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá wilvp

 

Isso que disseste não está muito esclarecedor essas páginas php são do servidor?

 

Ou qualquer uma página web .php no browser? 

 

Já tens algum código feito?

 

 

Abraço

 

Vítor Mendes

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou explicar a minha necessidade, meu site tem uma página com o nome ganha.php, e nessa página o usuário vê um vídeo por 30s e após o tempo um botão aparece para ele apertar e ganhar uma moeda, o problema é que usuários estão abrindo essa página ganha.php em várias guias do navegador e ganhando muitas moedas, preciso de evitar isso pois usuários estão pegando 9 moedas a cada 30s é isso vai acabar com o site é a diversão do ranking de moedas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bloqueia por ip. é só guardar o ip e a hora da ultima moeda ganha e não deixa registrar mais moedas para aquele ip dentro de um determinado intervalo

Compartilhar este post


Link para o post
Compartilhar em outros sites

É que a cada 30s na página aparece o botão de ganhar a moedas, eles vão juntando, só n queria que burlasem abrindo várias abas

Compartilhar este post


Link para o post
Compartilhar em outros sites

podes usar uma seção pra guardar a hora da última atualização e se der menos de 30 segundos da anterior descarta

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, no JS tu consegue criar um evento que fica escultando se o mouse saiu de um determinado elemento. 

Tu pode fazer desse tipo:

https://jsfiddle.net/wessleysanttos/e9qmwbjp/1/

 

Ai caso ele saia a primeira vez, ja cancela de cara. Ai na segunda ele não tenta sair, seila. 

 

Segue aqui todos os eventos que é possível manipular com o jQuery.

http://api.jquery.com/category/events/mouse-events/ 

Compartilhar este post


Link para o post
Compartilhar em outros sites
55 minutos atrás, wessleysanttos disse:

Olha, no JS tu consegue criar um evento que fica escultando se o mouse saiu de um determinado elemento. 

Tu pode fazer desse tipo:

https://jsfiddle.net/wessleysanttos/e9qmwbjp/1/

 

Ai caso ele saia a primeira vez, ja cancela de cara. Ai na segunda ele não tenta sair, seila. 

 

Segue aqui todos os eventos que é possível manipular com o jQuery.

http://api.jquery.com/category/events/mouse-events/ 

tentei mais quero que ele não possa abrir 2 paginas ganhar.php ao mesmo tempo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Wilvp

 

Eu não te aconselho a utilizares as session para fazer isso sendo assim porque ?

 

Actualmente há muitos navegadores... 

Um exemplo-> 

Eu iniciei sessão no chrome e apareceu o botão cliquei ganhei uma moeda e percebi e esperei e o botão voltou a aparecer eu já percebi então que o botão aparece de 30 em 30 sec .

Então abri o firefox e o internet explorer e iniciei sessão neles o que acontece repara se eu abrir a página com tempos diferente vou sempre conseguir acabar por enganar o sistema !!!! Inclusive nem que seja com outro dispositivo;

ou inclusive ALTERANDO O CÓDIGO DIRECTAMENTE NO NAVEGADOR, como o timer é em js é perfeitamente possível de alterar...

 

Uma das melhores soluções serie teres uma tabela numa base de dados que guardaria a hora e a data em que o utilizador clicou nesse mesmo botão para ganhar a moeda ...

 

E sempre que ele clicasse nesse botão tu ias ver se o ultimo registo que fez(data mais recente desse mesmo utilizador logado) correspondia com o tempo 30sec

 

Ou seja um exemplo pratico->

 

Temos o utilizador joão clicou no botão no dia 09/05/2017 na hora 10:07:00

 

O joão como é uma pessoa esperta decidiu "enganar" o sistema e no mesmo dia ás 10:07:10 voltou a clicar no botão 

 

Ou seja a hora de agora menos a hora do ultimo registo dá 10 segundo ou seja significa que o utilizador enganou o sistema e das uma mensagem de alerta com um erro e não guardas o valor deste registo na base de dados...

 

É muito fácil de fazer e é bastante seguro pois não á uma forma "direta" de alterar um código feito em php e muito menos um registo numa base dados ....

 

 

Espero que te tenha ajudado ... se precisares de alguns links para te ajudar diz que tenho aqui alguns sobre subtracção de horas no sql mas basta pesquisares no google que encontras logo

 

Abraço

 

Vítor Mendes

 

 

 

 

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ment0r
      Boa tarde à todos.
      Pessoal, estou com o seguinte problema: preciso imprimir uma ficha mensal de trabalho, mas quando vou imprimir, a página para impressão sai "cortada".
       

       
      A imagem acima representa a ficha que preciso imprimir, está tudo ok com essa (tirei o cabeçalho, pois não vinha ao caso)
       

       
      Vejam como fica na impressão: com aproximadamente 2/3 da largura.
       
      <style> body { width: 100%; height: 100%; margin: 0; padding: 0; background-color: #FAFAFA; } * { box-sizing: border-box; -moz-box-sizing: border-box; } .page { width: 210mm; min-height: 297mm; padding: 4mm; margin: 1mm auto; border: 1px #D3D3D3 solid; border-radius: 5px; background: white; box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); } /*.subpage { padding: 0.5cm; border: 0px red solid; height: 257mm; outline: 2cm #FFEAEA solid; }*/ .cliente { margin-top: 30px; font-size: 20px; } th {font-size: 14px; } td {font-size: 12px; } .logo {height: 64px; margin: 20px 0px 0px 20px;} .font-cabecalho {font-size: 12px; margin-left: 20px; text-align: center; margin: 20px 0px 0px 20px;} @page { width: 100%; height: 100%; margin: 0; padding: 0; } @media print { html, body { width: 210mm; height: 297mm; } .page { margin: 0; border: initial; border-radius: initial; width: initial; min-height: initial; box-shadow: initial; background: initial; page-break-after: always; } } </style> Código CSS da página.
       
      O que pode ser? Como faço pra deixar a página de impressão igual à página PHP? Obrigado desde já à todos.

      Um abraço.
       
    • Por betogames
      Olá amigos, estou querendo saber, como colocar um numero limite para que a paginação funcione, exemplo: Quero que a pagina exiba no maximo 40 fotos e depois disso comece a paginação dos novos 40 fotos. Pagina 1= 1 a 40 fotos; pagina 2= 41 a 80 fotos............

      Vou enviar o codigo que fiz e se possivel alguém acerte pra mim, preciso muito disso:
       
    • Por Alvaro_php
      Pessoal boa noite
      Estou começando no PHP e estou com uma dúvida para poder enviar uma confirmação de uma página para outra e não quero mandar pela URL, para não ficar visível ao usuário
      Tenho um captcha e nele estou fazendo uma comparação para poder jogar para uma outra página , caso o código esteja certo
      <?php session_start();
          if( $_SESSION['captcha'] == $_POST['captcha']){
          header("location: emitir_titulo1.php");
          }else{
              echo "<h1>Erro - Código digitado errado</h1>";
          }
      ?>
      Até ai tudo bem esta fazendo certinho, o que eu quero é que na minha emitir_titulo1.php eu consiga fazer uma identificação qqer, onde demonstre que o usuário passou pelo captcha e não jogou o caminho completo até a página emitir_titulo1
      Tentei abri a session no emitir_titulo1 porém não deu certo, pois ela vem em branco, e quando coloco o caminho inteiro da página ele abre normalmente
      Tentei usar o $_POST, más não tem como ou não sei enviar mesmo, pois estou chamando a página pelo header
       
       
      Então mudei e tentei criar um arquivo txt com a palavra confirmado
      <?php session_start();
          if( $_SESSION['captcha'] == $_POST['captcha']){
              $fp = fopen("seguranca.txt","a+");
              $escreve = fwrite($ft,"confirmado");
              fclose($ft);
              header ("location: emitir_titulo1.php");
          }else{
              echo "<h1>Erro - Código digitado errado</h1>";
          }
      ?>
       
      e na página emitir_titulo1.php coloquei
      <?php  
          $arquivo = "seguranca.txt";
          $ft=fopen($arquivo,"r");
          $conteudo=fread($ft,filesize($arquivo));
          fclose($ft);
          
          if ($conteudo == 'confirmado')
          {
              unlink("seguranca.txt");
          }else{
              header("location: verificacao.php");
          }
      ?>
       
      Quando a página para executar e digito o código de verificação do captcha, aparece a mensagem abaixo
      Warning: fwrite(): supplied argument is not a valid stream resource in caminhodomeuservidor\valida.php on line 5
      Warning: fclose(): supplied argument is not a valid stream resource in caminhodomeuservidor\valida.php on line 6
      Warning: Cannot modify header information - headers already sent by (output started at caminhodomeuservidor\valida.php:5) in caminhodomeuservidor\valida.php on line 7
       
      Más quando coloco o caminho completo da minha página emitir_titulo1.php, ele continua abrindo a página normalmente, e o arquivo gerado esta em branco
       
      Alguém pode me dar uma ajuda, estou o dia todo nisso, o bom é que pesquisei bastante coisa, porém não tenho muito tempo para finalizar
       
      Desde já agradeço a todos
    • Por ramonjba
      Olá pessoal. Estou desenvolvendo uma especie de monitoramento, estou utilizando o MATERIALIZE, desta forma, optei por não trabalhar com responsividade, pois preciso do máximo de informações possíveis na tela, seja desktop ou mobile, fazendo o ajuste de zoom se preciso. Fiquei cerca de dois anos sem programar, eu havia feito esse projeto para meu TCC, porém após finalizar, deixei parado e acabei perdendo. Com o tempo, algumas ideias em relação ao projeto também mudaram, e para apresentar a informações das `Torres de Internet`, utilizei o collapsible-header conforme imagem `projeto_monitor`, pois, ao clicar em cima do `equipamento`, ele apresenta informações relacionadas a ele. Estou tendo problemas para alinhar estes `collapsible-header ` pois preciso preencher toda a tela, sem deixar espaçamentos. Para isso, fiz uma classe CSS contendo: 
       
      .row .col.quadroTorre1 { margin-top: -10%; margin-bottom: 10%; } .row .col.quadroTorre2 { margin-top: -7.3%; margin-bottom: 10%; } .row .col.quadroTorre3 { margin-top: -30%; margin-bottom: 10%; } .row .col.quadroTorre4 { margin-top: -1.7%; margin-bottom: 10%; }  
      E fiz uma verificação no código, para ver qual o numero de equipamentos que a `Torre` que está acima tem. Porém, como podemos observar, na segunda linha funcionou preenchendo os espaços, mas pulando para a terceira linha, já possui uma lacuna em branco, onde deveria estar situado o elemento. Além disso, os elementos da segunda linha, acabam se sobrepondo, conforme imagem `projeto_sobrepor`. Como fiquei cerca de 2 anos sem programar, estou encontrando algumas dificuldades e empacando nelas. A parte de front-end é a que gera maior dificuldade. Se alguém puder me auxiliar, agradeço. 
       
      Edit: Se alguém tiver dicas de como posso melhorar o preenchimento das lacunas em branco. 
       


    • Por CharlieAldrin
      Estou tentando fazer um chat, e nele é necessário saber se um usuário continua na página do chat, para caso ele saia informar o outro usuário.
      Encontrei em alguns lugares como solução fazer um ajax conferindo se o usuário está "dando sinal de vida" de 10 em 10 segundos (por exemplo), porém não entendi como fazer isso e nem como colocar no código. Alguém pode me ajudar por favor? 
      Ou me informar se existe alguma forma melhor de conferir isso?
       
      Valeu desde já :) 
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.