joaocasta Posted June 12, 2012 at 09:53 PM Report Share #462376 Posted June 12, 2012 at 09:53 PM 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 More sharing options...
pikax Posted June 12, 2012 at 10:00 PM Report Share #462378 Posted June 12, 2012 at 10:00 PM 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 More sharing options...
tiagotavares Posted June 12, 2012 at 10:26 PM Report Share #462383 Posted June 12, 2012 at 10:26 PM (edited) 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 June 12, 2012 at 10:29 PM by tiagotavares Tiago Tavares Link to comment Share on other sites More sharing options...
joaocasta Posted June 14, 2012 at 11:47 AM Author Report Share #462719 Posted June 14, 2012 at 11:47 AM Obrigado já está a funcar 😉 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now