Jump to content

Login codificado


Ivo Pereira
 Share

Recommended Posts

Boas pessoal,

é o seguinte, tenho um pedaço de código para proteger um pouquinho só, enquanto não tenho isto com SQL, e então o que me vai fazer se a password estiver certa é enviar-me para a página home.

<?php

require_once('functions.php');


if ((ISSET ($_POST['password'])) AND (ISSET ($_POST['login']))) {

$password_encriptada = codifica($_POST['password'],1000);

if (($_POST['login'] == "gestao") AND ($password_encriptada == "044a670f0eb3127e54ebf813660dea64")) {
	header('Location: home.php');
} else {
	echo "<div align='center'>Password incorrecta</center>";
}
}

?>

<form id="login-form" action="index.php" method="post">
	<fieldset>

		<legend>Iniciar sessão</legend>

		<label for="login">Utilizador</label>
		<input type="text" id="login" name="login"/>
		<div class="clear"></div>

		<label for="password">Palavra-chave</label>
		<input type="password" id="password" name="password"/>
		<div class="clear"></div>

		<br />

		<input type="submit" style="margin: -20px 0 0 287px;" class="button" name="commit" value="Entrar"/>	
	</fieldset>
</form>

Mas dá-me o erro de:

Warning: Cannot modify header information - headers already sent by (output started at gestao/index.php:13) in gestao/index.php on line 30

Sugestões? (tou farto do erro dos headers -.-')

Link to comment
Share on other sites

Antes de qualquer header nunca deve vir um output, não tem lógica. Verifica onde o erro te diz:

(...) output started at gestao/index.php:13 (...)

E vê se tens algum echo, erro, espaço em branco fora de zona de código PHP, etc.

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Esqueçam, resolvido 👍

Problema resolvido pessoal, seguinte quando se usa o header("Location:"); não pode haver o comando echo ou qualquer trecho de codigo html, nem mesmo um espaço por isso estava tendo erros, pois meu script estava assim

<?php

conteudo do script 1

?>

<?php

conteudo do script 2

?>

<?php

conteudo do script 3

?>

a linha em branco entre cada trecho do codigo era tido como codigo html por isto do erro.

Obrigado pela ajuda

in http://under-linux.org/f95/php-erro-ao-usar-o-header-location-91730/

Link to comment
Share on other sites

Obrigado, já me ajudou numas cenas 🙂

Btw, visto que o tópico é em relação ao login, e ainda tenho aqui uma dúvida com o login:

É o seguinte, tenho este código para trabalhar com sessões (vai fazer o include de outras páginas para iniciar e eliminar sessões), no entanto, parece que ao trabalhar com isto me ignora a condição:

			if (($_POST['login'] == "gestao") AND ($password_encriptada == "044a670f0eb3127e54ebf813660dea64")) {

porque qualquer username e password que eu coloque, ele entra...

Aqui o código do login completo:

<?php

require_once('functions.php');
include('../sessao/start.php');

if (ISSET ($_SESSION['login'])) {
header('Location: home.php');
} else {
	if ((ISSET ($_POST['password'])) AND (ISSET ($_POST['login']))) {
			$password_encriptada = codifica($_POST['password'],1000);

			if (($_POST['login'] == "teste") AND ($password_encriptada == "044a670f0eb3127e54ebf813660dea64")) {
				header("Location: home.php");
			} else {
				echo "<div align='center'>Password incorrecta!</center>";
}
  }
}

?>

Cumps

Link to comment
Share on other sites

Tu estas a verificar se uma variável de sessão existe antes de qualquer coisa, logo, não interessa o user/pass que inseres porque se essa variável de sessão existe, ele entra logo.

Já um professor do secundário me dizia que o computador é burro, ele não faz nada que tu não lhe mandas fazer. O que é verdade, esse teu "erro" não é um erro, ele está a fazer exactamente o que tu lhe estás a mandar fazer 😄

Link to comment
Share on other sites

Se calhar era melhor pores uma mensagens de debug, digo, trocar os header(...) nesse código que mostraste e substituir por echo "passei o if manhoso", ou coisas do género, e ver onde o código realmente vai. Faz isso com sessão iniciada e noutra tentativa, sem sessão iniciada.

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Porreiro, já funciona 🙂

O problema estava mesmo num código de sessões que eu tinha antes, que me ia logo declarar o valor da sessão, e aí ele iria logo dizer que a sessão já estava criada, logo redireccionava para o home.php 😛

Obrigado a todos, e obrigado pela compreensão pela estupidez LOL -.-

😄

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
 Share

×
×
  • 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.