Ir ao conteúdo
  • Cadastre-se

Sistema de login (php + Mysql)


Abma12

Posts recomendados

Bem pessoal, estou com uma dúvida de programação web (php)

Eu estou precisando muito de um sistema de login (com Session) eficiente e simples ...

Eu já sei fazer a página de cadastro perfeitamente bem !

Mas quando chega na página de login complica ... :(

Eu tentei usar isso como a página "action" do Formulário de login


<?php
include('conn.php');
$User = $_POST['User'];
$Senha = $_POST['Senha'];

$logar = mysql_query("SELECT * FROM Users WHERE USER='$User' AND SENHA='$Senha'") or die("Erro ao selecionar");

if (strlen($Senha)< 1)
echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=index.php'>
<script type=\"text/javascript\">
alert(\"Usuário ou senha não cadastrados no nosso banco de dados!\");
</script>
";

if ($num_rows > 0) {
session_start();
$_SESSION['User'] = $_POST['User'];
header ("Location: pgt.php");
}
else {
$errorMessage = "Invalid Login";
session_start();
$_SESSION['User'] = '';
header ("Location: pgt.php");
}


?>

Mas ai quando ele redireciona para está página (a protegida)

<?php
include('log.php');
session_start();
if (!isset($_SESSION['User'])) {
echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=index.php'>
<script type=\"text/javascript\">
alert(\"Usuário não está logado!\");
</script>
";

}

?>
<!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=utf-8" />
<title>PGT</title>
</head>

<body>
<div align="right"> Seja bem vindo !</div>
</body>
</html>

Ele diz que o usuário não existe :confused:

Link para o comentário
Compartilhar em outros sites

  • Moderador

esse seu codigo ta bem estranho tente fazer +- assim:


<?php
session_start();

$login = $_POST["email"];
$senha = $_POST["senha"];

if (empty($login) or empty($senha)) {
echo "<script>
alert('Preencha todos os campos');
history.go(-1);
</script>";
exit;
}

include 'includes/conexao.php';

$sql = "SELECT * FROM usuario WHERE email ='$login' AND senha = '$senha' ";
$dados = mysql_query($sql, $conecta);
$num = mysql_num_rows($dados);

if ($num == 0){
echo "<script>
alert('Usuario ou senha Incorreta');
history.go(-1);
</script>";
exit;
} else {
$linha = mysql_fetch_array($dados);
$coduser = $linha["idUsuario"];

$_SESSION["codusuario"] = $coduser;
$_SESSION["email"] = $login;

header ("Location: index.php");
}
// mysql_free_result($dados);
mysql_close($conecta);
?>

e na pagina protegina você coloca assim no cabeçalho antes do doctype:


<?php
session_start();
setcookie("ck_authorized", "true", 0, "/");

if(!isset($_SESSION["email"]))
header("location: index.php");
else
$login = $_SESSION["email"];
?>

claro que isso foi parte de um sistema que desenvolvi. no email você troca para onde você faz o login.

eu sempre opto por usar o email como usuario de login, lembrando que é mais difícil os usuario esquecerem de seu proprio email do que um usuario qualquer criado na hora do cadastro.

Link para o comentário
Compartilhar em outros sites

esse seu codigo ta bem estranho tente fazer +- assim:


<?php
session_start();

$login = $_POST["email"];
$senha = $_POST["senha"];

if (empty($login) or empty($senha)) {
echo "<script>
alert('Preencha todos os campos');
history.go(-1);
</script>";
exit;
}

include 'includes/conexao.php';

$sql = "SELECT * FROM usuario WHERE email ='$login' AND senha = '$senha' ";
$dados = mysql_query($sql, $conecta);
$num = mysql_num_rows($dados);

if ($num == 0){
echo "<script>
alert('Usuario ou senha Incorreta');
history.go(-1);
</script>";
exit;
} else {
$linha = mysql_fetch_array($dados);
$coduser = $linha["idUsuario"];

$_SESSION["codusuario"] = $coduser;
$_SESSION["email"] = $login;

header ("Location: index.php");
}
// mysql_free_result($dados);
mysql_close($conecta);
?>

e na pagina protegina você coloca assim no cabeçalho antes do doctype:


<?php
session_start();
setcookie("ck_authorized", "true", 0, "/");

if(!isset($_SESSION["email"]))
header("location: index.php");
else
$login = $_SESSION["email"];
?>

claro que isso foi parte de um sistema que desenvolvi. no email você troca para onde você faz o login.

eu sempre opto por usar o email como usuario de login, lembrando que é mais difícil os usuario esquecerem de seu proprio email do que um usuario qualquer criado na hora do cadastro.

Dif, desde já agradeço muito, vou testa-lo assim que puder ^^

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...