OBS: Nunca fiz um sitema de login antes e só mexi uma vez com MySQL então com certeza isso porderá ser melhorado!
Aqui você coloca os dados do sever^^
db.php
<?php //Endereço do Host MySQL$hostname = 'localhost';//nome de usuario$username = 'root';//senha do usuario$senha = '';//banco de dados desejado$banco = '';//faz a cenexão$db = mysql_connect ($hostname, $username, $senha);mysql_select_db ($banco, $db);?>
Aqui o arquivo de login
login.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Autenticação Simples de Usuário</title></head> <body><form action="autentifica.php" name="autenticacao" method="post"><table style="width:100%; height:100%; border:0px; text-align:center"><tr><td><table width="200" border="0" align="center"><tr><td width="50">Login:</td><td width="140"><input type="text" name="login" size="20" maxlength="20" /></td></tr><tr><td>Senha:</td><td><input type="password" name="senha" size="20" maxlength="8" /></td></tr><tr><td colspan="2"><input type="submit" name="entra" value="Entrar" /></td></tr></table></td></tr></table></form></body></html>
Faz o Logof
logof.php
<?phpinclude('db.php');$ip = getenv("REMOTE_ADDR");mysql_query("UPDATE usuarios_registrados Set ip='0000000000' Where ip='$ip'");header("Location:login.php");?>
Autentifica o Usuario
autentifica.php
<html><head><title>Login</title></head><body><?php$login = $_POST[login];$senha2 = $_POST[senha];//conecta ao banco de dadosinclude('db.php');//Verifica se o Login está correto$Busca = mysql_query("SELECT* FROM usuarios_registrados WHERE login='$login'");if(mysql_num_rows($Busca) == 0){echo "Este login não está registrado! <meta http-equiv='refresh' content='3;URL=login.php'>"; exit();}//Verifica se a Senha está coreta, caso o login esteja $Busca2 = mysql_query("SELECT* FROM usuarios_registrados WHERE senha='$senha2'");if(mysql_num_rows($Busca2) == 0){echo "Sua senha é invalida! <meta http-equiv='refresh' content='3;URL=login.php'>"; exit();}//Caso tudo esteja correto faz altenticação do usuario$ip = getenv("REMOTE_ADDR");$resultado = @mysql_query("SELECT* FROM usuarios_registrados WHERE login='$login'");while ($sql = @mysql_fetch_array($resultado)){$antigo = $sql["ip"];mysql_query("UPDATE usuarios_registrados Set ip='$ip' Where ip='$antigo'");echo "<b>Você está logado como ".$login.""; }?></body></html>
Formulario de Registro
register.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Registrando Usuário</title></head><body><form action="registra.php" name="autenticacao" method="post">Nick: <input type="text" name="nick" size="20" maxlength="30"><br>Login: <input type="text" name="login" size="20" maxlength="30"><br>Senha: <input type="password" name="senha" size="20" maxlength="30"><br>Email: <input type="text" name="email" size="20" maxlength="300"><br><input type="submit" name="cadastrar" value="Cadastrar" /></form></body></html>
Recebe Formulario de Registro
registra.php
<?php@$nick = $_POST[nick];@$email = $_POST[email];@$login = $_POST[login];@$senha2 = $_POST[senha];//loga no severinclude("db.php");//verifica se o Nick Já está em uso$Busca = mysql_query("SELECT* FROM usuarios_registrados WHERE nick='$nick'");if(!mysql_num_rows($Busca) == 0){ echo 'Desculpe! Mas seu Nick escolhido já está em uso'; exit(); }//verifica se o Login Já está em uso$Busca2 = mysql_query("SELECT* FROM usuarios_registrados WHERE login='$login'");if(!mysql_num_rows($Busca2) == 0){ echo 'Desculpe! Mas seu Login escolhido já está em uso'; exit(); }//Grava informações do cadastro$sqlinsert = mysql_query("INSERT INTO usuarios_registrados (login, senha, nick, email, ip) VALUES ('$login', '$senha2', '$nick', '$email', '000000000')");//Verifica se o usuario do foi registrado ou nao!if ($sqlinsert){ echo "Usuário ".$nick." resgistrado com sucesso"; } else { echo "Desculpe, mas por algum motivo você não foi registrado"; }?>
index de virificação para ver se funciona ne?
index.php
<?php//Inclui o arquivo de verificação, inclua nas paginas que deseja que o usuario veja só logadoinclude_once("verifica.php");?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Index de teste</title></head> <body><div>Olá : <?php $ip = getenv("REMOTE_ADDR");//conecta ao Banco de dadosinclude('db.php');$resultado = @mysql_query("SELECT* FROM usuarios_registrados WHERE ip='$ip'");while ($sql = @mysql_fetch_array($resultado)){//pega todos os dados do usuario e é amazendado em variaveis $login, $senha, $nick, $email e $ip$nick = $sql["nick"]; $login = $sql["login"]; $senha = $sql["senha"]; $email = $sql["email"]; $ip = $sql["ip"];//exibi dados das variaveisecho "Seu nick é <b>".$nick."</b><br>Sua senha é <b>".$senha."</b><br>Seu login é <b>".$login."</b><br>Seu email é <b>".$email."</b><br>Seu ip é <b>".$ip."</b>";}?></div><br /><br /><a href="logof.php">Sair</a><br /><br /><br /><a href="register.php">registra novo menbro</a></body></html>
Verifica se o usuario esta logado
verifica.php
<?php$ip = getenv("REMOTE_ADDR");include("db.php");$Busca = mysql_query("SELECT* FROM usuarios_registrados WHERE ip='$ip'");if(mysql_num_rows($Busca) == 0){header("Location:login.php");}?>
Tabela.sql
CREATE TABLE `usuarios_registrados` ( `login` varchar(300) NOT NULL, `senha` varchar(300) NOT NULL, `nick` varchar(300) NOT NULL, `email` varchar(300) NOT NULL, `ip` varchar(300) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;INSERT INTO `usuarios_registrados` VALUES('admin', 'admin', 'Adiministrador', 'animes-msn@hotmail.com', '0000000000');
Login: admin
Senha: admin
O bom disso que so deloga só se vc trocar o ip, e nem loga duas pessoas na mesma conta no mesmo tempo!
Baixe o script completo Aqui! Login.zip 3.98KB 77 downloads
Edição feita por: Xplosion, 19/10/2008, 20:02.