Jump to content

[Resolvido] Sistema de login


joaocasta

Recommended Posts

Boa noite, tenho o seguinte problema no meu sistema. Tenho tudo o necessário, mas falta alguma coisa na pagina do login, porque eu queria que depois do login feito ele redireccionasse para a pagina index.php e ele faz isso, mas se a pessoa escrever no url "formulario_login.html" aparece o formulario e eu queria que redireccionasse para a index.php.

Acho que confundi um pouco isto. Vou espetar aqui o code:

<html>
<head>
<title>Log-in</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="verifica_usuario.php">
<?php
   // se houver alguma mensagem de erro, coloca-la aqui
   echo $msg_erro;
?>
<input name="username" type="text" class="caixadetexto" size="15" /></div>
<input name="password" type="password" class="caixadetexto" size="15" /></div>
<input type="submit" name="Submit" value="login" />
</form>

</body>
</html>

verifica_usuario.php

<?php
// começar ou retomar uma sessão
session_start();
// se vier um pedido para login
if (!empty($_POST)) {

include "config.php";

// receber o pedido de login com segurança
$username = mysql_real_escape_string($_POST['username']);
$password = sha1($_POST['password']);

// verificar o utilizador em questão (pretendemos obter uma única linha de registos)
$login = mysql_query("SELECT * FROM users WHERE username = '$username' AND password = '$password'");

if ($login && mysql_num_rows($login) == 1) {

 // o utilizador está correctamente validado
 // guardamos as suas informações numa sessão
 $_SESSION['id'] = mysql_result($login, 0, 0);
 $_SESSION['username'] = mysql_result($login, 0, 1);

 echo "<p>Sessão iniciada com sucesso como {$_SESSION['username']}</p>";
 echo "Ir para a <a href='index.php'>conta</a>";
} else {

 // falhou o login
 echo "<p>Utilizador ou password invalidos. <a href=\"formulario_login.html\">Tente novamente</a></p>";
}
}
?>

Espero que me possam ajudar! 😉

Link to comment
Share on other sites

tens que verificar se o user esta logado e depois fazes um redirect

<?php
/* This will give an error. Note the output
* above, which is before the header() call */
header('Location: http://www.example.com/');
?>

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

Boa noite, tenho o seguinte problema no meu sistema. Tenho tudo o necessário, mas falta alguma coisa na pagina do login, porque eu queria que depois do login feito ele redireccionasse para a pagina index.php e ele faz isso, mas se a pessoa escrever no url "formulario_login.html" aparece o formulario e eu queria que redireccionasse para a index.php.

Acho que confundi um pouco isto. Vou espetar aqui o code:

...

Espero que me possam ajudar! 😉

Boas, terás de verificar na página do formulário se a tua sessão já se encontra iniciada, se sim envias a página para o index.php.

Ex:

session_start();
if(isset($_SESSION['username'])) //Se já tem login
{
 header("Location: index.php");
 exit();
}

Poderás fazer por exemplo um login_valido.php onde colocas este código e sempre que queres que a verificação seja feita.

Por razão de segurança poderas ver se o id e o username existem na base de dados, maneiras mais seguras existem se quiseres posso deixar aqui uma mas como não foi isso que perguntaste.

Espero ter ajudado

Edited by tiagotavares

Tiago Tavares

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.