Sistema De Login Usando Sessions E Mysql

Novo aqui no site? Talvez gostaria de assinar o
RSS feed do site?

Publicado em: 30/12/2007
Área: PHP
Visualizações: 6.359
Comentário(s): 5

imprimir envie por e-mail compartilhe
Bem amigo, como estou sem tempo irei publicar um artigo do fórum WMOnline, mas embreve estarei voltando a toda velocidade!
Bom pessoal..

Estava precisando de um sistema de login, e como naum haviam sistemas bons e confiáveis de login usando MySQL na Net, eu resolví estudar um pouco e fazer o meu próprio..

Ficou bom, e de acordo com os meus conhecimentos, sem falhas de segurança..

Bom vamos lá, execute isso no seu banco de dados MySQL:

SQL
CREATE TABLE `Sis_login` (
  `id` int(3) NOT NULL auto_increment,
  `login` varchar(8) default NULL,
  `senha` varchar(8) default NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;


Depois faça a página: login.php
PHP
<?
session_name("MeuLogin");
session_start();
session_destroy();

if($_GET[ 'login' ] == "falhou") {
    print $_GET[ 'causa' ];
}
?>
<form name="form1" method="post" action="loga.php?acao=logar">
Login: <input type="text" name="nome"><BR>
Senha: <input type="password" name="pwd"><BR>
<input type="submit">
</form>


Depois a página: loga.php
PHP
<?
session_name("MeuLogin");
session_start();

if($_GET[ 'acao' ] == "logar") {
    $conn = mysql_connect("localhost","user","senha"); //configure os dados do seu MySQL
    $banco = mysql_select_db("SEU_BANCO"); //coloque o nome do seu banco de dados
  
    $nome = $_POST[ 'nome' ];
    $q_user = mysql_query("SELECT * FROM Sis_login WHERE login='$nome'");

    if(mysql_num_rows($q_user) == 1) {
  
        $query = mysql_query("SELECT * FROM Sis_login WHERE login='$nome'");
        $dados = mysql_fetch_array($query);
        if($_POST[ 'pwd' ] == $dados[ 'senha' ]) {
            session_register("nome");
            header("Location: page.php");
            exit;
        } else {
            header("Location: login.php?login=falhou&causa=".urlencode('Senha Errada'));
            exit;
        }
    } else {
        header("Location: login.php?login=falhou&causa=".urlencode('User Inválido'));
        exit;
    }
}

//agora a parte que verifica se o login já foi feito
if(session_is_registered("nome") == false) {
    header("Location: login.php");
}
?>


Pronto, o principal já tá feito..

Bom pessoal, como pedido, eu to acrescentando no script, uma página para acrescentar usuários, creio q isso facilita aos q ainda não tem intimidade com a interface do MySQL..

Vamos lá, crie uma página com um nome qualquer, exemplo: new_users.php, e coloque esse código nela:
PHP

<?
if($_GET[ 'act' ]=="gravar") {
  $conn = mysql_connect("localhost","user","senha");
  $banco = mysql_select_db("SEU_BANCO");

  mysql_query("INSERT INTO Sis_login (id, login, senha)
  VALUES (NULL, '{$_POST[ 'nuser' ]}', '{$_POST[ 'senha' ]}')");

  print "<center>Usuário criado com sucesso!</center>";
} else {
?>
<form name="newuser" method="post" action="?act=gravar">
User: <input type="text" name="nuser" maxlength=8><BR>
Senha: <input type="password" name="senha" maxlength=8><BR><BR>
<input type="submit" value="Enviar!">
</form>
<?
}
?>


As páginas seguintes são só um complemento para mostrar o funcionamento do script:

page.php
PHP
<?
require("loga.php");
?>
Olá <B><? print $_SESSION[ "nome" ]; ?></B>,<BR>
Aqui vem qualquer coisa, inclusive um link para outras páginas.<BR><BR>
<a href="page2.php">Link</a>


page2.php
PHP
<?
require("loga.php");
?>
Olá <B><? print $_SESSION[ "nome" ]; ?></B>,<BR>

Aqui tb diz que está logado direitinho

Como visto acima, para restringir o acesso às páginas, é só vc acrescentar isso nas primeiras linhas da page:
PHP
<?
require("loga.php");
?>


E já era, todas as páginas que estiverem isso estarão protegidas.. Caso o login naum tenha sido feito, elas redirecionarão para a página que se faz o login..

Bom espero que tenham gostado, e que seja de bom proveito a todos..

Ps.: Testem esse script de preferência num servidor Linux, pois aqui mesmo no meu PC rodando Win, ele naum funfa..

Fui..



veja mais
Preencha o formulário para comentar:
Nome:*

E-mail:* (não será exibido)

Site: (http://)

Comentário:*

Deseja receber os comentários no e-mail?

Anti-spam: (nova imagem)





Luciano

   - Publicado em: 22/03/2008 - 00:01

Olá Igor. Gostaria que se possível verificasse o código dessas páginas para ver se não há nada de errado. Em todas recebo alguma mensagem de erro. Você já as revisou? Sabe se estão funcionando perfeitamente? Obrigado pela atenção.

 

Pedro

   - Publicado em: 13/05/2008 - 21:46

Cara.. reveja seu cod.. ta faltando fechar "]" e em algumas vc usa aspas dupla e em outras aspas simples!

 

Gabriel Tanure

   - Publicado em: 31/05/2008 - 23:07

Olá Igor Seu Script Não Funciona conserta aaiii!!

 

The Joker

   - Publicado em: 14/07/2008 - 15:13

Pessimo ... bem como vc mesmo disse vc apenas copiou né ... lamento ... mas verifique o cod.

 

Steve Junior

   - Publicado em: 20/12/2008 - 13:08

CARA VALEW MESMO......ESSE CODIGO ME SALVO.......MUITO BOM........

 

Autor da matéria
Igor Diniz
Eu sou www.igordiniz.com.br :D O mais bonito de todos os colunistas da Oficina da Net ;)

Todas as matérias de Igor Diniz

Publicidade
Seguir o Oficina da Net
RSS

RSS

RSS
Top matérias do mês
Matérias relacionadas

© 2005 - 2009 - Oficina da Net - v 4.0 - É proibida a reprodução parcial ou completa do conteúdo deste site sem autorização por escrito. Resolução adequada: 1024x768px.