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

Sistema De Login Com Banco De Dados


Guest --Steffan --

Pergunta

Guest --Steffan --

Aee, estou iniciando essa doideira de PHP... preciso criar um sistema de login seguro, com PHP.

O meu servidor oferece o PHPMYADMIN, nele eu criei um banco de dados, e coloquei o nome de stemar87_login

Nele eu criei a seguinte tabela, p/ informar os usuários e suas senhas

CREATE TABLE usuarios (

id tinyint(3) NOT NULL auto_increment,

login varchar(50) NOT NULL,

senha varchar(32) NOT NULL,

primary key(id)

);

INSERT INTO usuarios VALUES ('','Felipe','82722');

INSERT INTO usuarios VALUES ('','Maria','12655');

Peguei esse modelo acima em um site, creio que onde coloquei felipe e maria, e suas senhas, sejam as informações p/ login dessas 2 pessoas.

Criei então 3 páginas: login.php / valida_session.php / logout.php

Além da página login.html (onde vai o form p/ digitar login e senha)

E também a página destino, apostilas.htlm, que é p/ onde vai ser redirecionado, caso esteja correto o login e senha. (ou pelo menos onde deveria ir, não está dando certo...)

Continuando...

Essa é a página login.html (só formulário):

<form name="form1" method="post" action="login.php">

<p>Login:

<input name="login" type="text" id="login">

</p>

<p>Senha:

<input name="senha" type="text" id="senha">

</p>

<p>

<input type="submit" name="Submit" value="Enviar >>">

</p>

</form>

Ela está em http://contabeis.freehostia.com/login.html

Veja as outras páginas:

login.php

<?php

//obtem os valores digitados

$login = $_POST["login"];

$senha = $_POST["senha"];

//acessa ao banco de dados

$cn = mysql_connect("localhost", "usuario", "senha");

mysql_select_db("banco");

$resultado = mysql_query("select * from usuarios where login = '$login'");

$linhas = mysql_num_rows($resultado);

if ($linhas ==0)//testa se a consulta retornou algum registro

{

echo "Nome ou senha incorreto(s). ";

echo "<a href=login.html>Clique aqui</a> para voltar.";

} else {

if ($senha != mysql_result($resultado, 0, "senha"))//confere a senha

{

echo "Nome ou senha incorreto(s). ";

echo "<a href=login.html>Clique aqui</a> para voltar.";

}else{//usuario correto.. vamos criar os cookies com sessions...

session_start();//nunca esqueça de por isso antes de usar session

$_SESSION["login_usuario"] = $login;

$_SESSION["senha_usuario"] = $senha;

// redireciona par a pagina principal

header("Location: apostilas.html");

}

}

mysql_close($cn);

?>

valida_session.php

<?php

session_start();

if (isset($_SESSION["login_usuario]) AND isset($_SESSION["senha_usuario"])) {

$login_usuario = $_SESSION["login_usuario"];

$senha_usuario = $_SESSION["senha_usuario"];

}else{

echo "Você não efetuou o login.";

exit();/*caso não tinha session.. quer dizer.. ele não logou*/

} /*aqui primeiro ele checa para ver se exite essas Sessoes, e depois ele coloca o valor das sessoes nessas variaveis... para fazermos os testes!*/

if(!(empty($login_usuario) OR empty($senha_usuario)))

{

//acessa ao banco de dados

$cn = mysql_connect("localhost", "usuario", "senha");

mysql_select_db("banco");

$resultado = mysql_query("select * from usuarios where login = '$login_usuario'");

if (mysql_num_rows($resultado) == 1)/*caso exista esse login.. vamos testar a senha então*/

{

if ($senha_usuario != mysql_result($resultado, 0, "senha"))

{

unset ($_SESSION["nome_usuario"]);/*apaga a session que existia mas era errada..*/

unset ($_SESSION["sehna_usuario"]);

echo "Você não efetuou o login.";

exit();

}

}else {

unset ($_SESSION["nome_usuario"]);

unset ($_SESSION["sehna_usuario"]);

echo "Você não efetuou o login.";

exit();

}

}else{

echo "Você não efetuou o login.";

exit();/*caso das sessions estarem vazias*/

}

mysql_close($cn);

/* Em toda página que você for querer proteger(só para quem estiver logado pode entrar na pagina)... ponha isso no começo dela (antes da tag htlm):

<?php

include "valida_session.php";

?>

*/

?>

logout.php

<?php

session_start();

$_SESSION = array();

session_destroy();

header("Location: login.htm");

?>

Ao clicar no botão enviar, em vez de carregar a página destino, aparece um erro:

Warning: mysql_connect(): Can't connect to MySQL server on 'contabeis.freehostia.com' (111) in /home/www/stemar87.freehostia.com/login.php on line 6

Warning: mysql_select_db(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/www/stemar87.freehostia.com/login.php on line 7

Warning: mysql_select_db(): A link to the server could not be established in /home/www/stemar87.freehostia.com/login.php on line 7

Warning: mysql_query(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/www/stemar87.freehostia.com/login.php on line 9

Warning: mysql_query(): A link to the server could not be established in /home/www/stemar87.freehostia.com/login.php on line 9

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/stemar87.freehostia.com/login.php on line 10

Nome ou senha incorreto(s). Clique aqui para voltar.

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/www/stemar87.freehostia.com/login.php on line 29

Informações: login.php:

Linha 6: $cn = mysql_connect("localhost", "usuario", "senha");

Linha 7: mysql_select_db("banco");

Linha 9: $resultado = mysql_query("select * from usuarios where login = '$login'");

Linha 10: $linhas = mysql_num_rows($resultado);

Linha 29: mysql_close($cn);

Me ajudem a corrigir...

Obrigado.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Para conectar você usa assim:

mysql_connect("localhost", "usuario", "senha");
mysql_select_db("banco");
Ou assim:
$cn = mysql_connect("localhost", "usuario", "senha");
mysql_select_db("banco", $cn);

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...