Biel. 9 Denunciar post Postado Outubro 3, 2013 Bom dia a todos. Pessoal gostaria que mim auxiliasse na seguinte questão. É o seguinte: Enviei um link para joao vizualizar meu projeto. Faz de conta que este é o link www.meusite.meusite.com.br Como saber se joão enviou ou não meu link para uma ou mais pessoas também ter acesso ao meu projeto? Se joão enviou meu link, então terei que bloquear o mesmo. A ideia é fazer com que meu projeto fique restrito somente a pessoa interessadas e não aquelas que querem copiar seu trabalho. Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
angelorubin 142 Denunciar post Postado Outubro 3, 2013 Olá, Veja se ajuda - http://forum.imasters.com.br/topic/232570-impedir-login-simultaneo/ Compartilhar este post Link para o post Compartilhar em outros sites
Biel. 9 Denunciar post Postado Outubro 3, 2013 Olá, Veja se ajuda - http://forum.imasters.com.br/topic/232570-impedir-login-simultaneo/ angelo obrigado, assim que resolver posto ae. Compartilhar este post Link para o post Compartilhar em outros sites
angelorubin 142 Denunciar post Postado Outubro 3, 2013 Olá, Me baseando na sua idéia, resolvi fazer um login no estilo que você falou, está bem simples, não permitindo a utilzação por mais de um usuário ao mesmo tempo (uso simultâneo), veja como ficou - http://angelorubin.besaba.com/Imasters/Php/Impedir AcessoSimultaneo/index.php nome: teste senha: teste Amanhã posto ele aqui completo a quem tenha interesse em ajudar a melhora-lo ou utilizá-lo mesmo. Compartilhar este post Link para o post Compartilhar em outros sites
angelorubin 142 Denunciar post Postado Outubro 4, 2013 Pensando aqui já encontrei um problema no login, se o usuário fechar o navegador, o campo status fica true no banco porque o logout é que faz a função de mudar. Alguém sugere algo? Segue o código para melhor entendimento: index .php <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>PHP - Impedir Acesso Simultâneo</title> </head> <body> <form action="verifica.php" method="post"> <label>Usuário</label> <input type="text" name="usuario" placeholder="digite seu nome"/> <label>Senha</label> <input type="password" name="senha" placeholder="digite sua senha"/> <input type="submit" value="Entrar"/> </form> </body> </html verifica.php <?php $usuario = $_POST['usuario']; $senha = $_POST['senha']; $instancia = new PDO("mysql:localhost;dbname=dbname", "user", "pass"); $instancia->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $prepara = $instancia->prepare("SELECT id, usuario, senha, status FROM login WHERE usuario = ? && senha = ?"); $prepara->bindParam(1, $usuario); $prepara->bindParam(2, $senha); $prepara->execute(); $dados = $prepara->fetch(PDO::FETCH_ASSOC); $contador = count($dados); if(!$dados['status']){ if($contador == 4) { session_start(); $_SESSION['usuario'] = $dados['usuario']; $_SESSION['senha'] = $dados['senha']; $_SESSION['id'] = $dados['id']; $id = $dados['id']; $instancia->query("UPDATE login SET status = true WHERE id = $id"); header("Location: restrito.php"); } else { echo 'Nome/senha incorreto(s), tente novamente.<br/>'; echo '<a href="index.php">voltar</a>'; } } else { echo 'O acesso já está sendo utilizado !<br/>'; echo '<a href="index.php">voltar</a>'; } ?> logout.php <?php session_start(); $id = $_SESSION['id']; $instancia = new PDO("mysql:host=localhost;dbname=dbname", "user", "pass"); $instancia->query("UPDATE login SET status = false WHERE id = $id"); session_destroy(); header("refresh: 2; url = index.php"); exit('Até Breve!'); ?> restrito.php <?php session_start(); if($_SESSION['usuario'] == ""){ header("location:index.php"); exit(); } ?> <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>PHP - Impedir Acesso Simultâneo - Restrito</title> </head> <body> <h1>Olá, <?php echo $_SESSION['usuario']; ?>, seja bem-vindo!</h1> <a href="logout.php">Sair</a> </body> </html> SQL -- phpMyAdmin SQL Dump -- version 3.4.9 -- http://www.phpmyadmin.net -- -- Servidor: 127.0.0.1 -- Tempo de Geração: 04/10/2013 às 15h00min -- Versão do Servidor: 5.5.20 -- Versão do PHP: 5.3.9 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- Banco de Dados: `imasters` -- -- -------------------------------------------------------- -- -- Estrutura da tabela `login` -- CREATE TABLE IF NOT EXISTS `login` ( `id` int(11) NOT NULL AUTO_INCREMENT, `usuario` varchar(50) NOT NULL, `senha` varchar(32) NOT NULL, `status` tinyint(1) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; -- -- Extraindo dados da tabela `login` -- INSERT INTO `login` (`id`, `usuario`, `senha`, `status`) VALUES (1, 'teste', 'teste', 0); /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; Compartilhar este post Link para o post Compartilhar em outros sites
Erick Plant 8 Denunciar post Postado Outubro 4, 2013 Expira o acesso através do tempo http://www.php.net/manual/pt_BR/function.session-cache-expire.php Compartilhar este post Link para o post Compartilhar em outros sites