Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
Sir Pereira

Login codificado

Recommended Posts

Sir Pereira

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 -.-')

Share this post


Link to post
Share on other sites
softklin

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.

Share this post


Link to post
Share on other sites
Sir Pereira

Esqueçam, resolvido :thumbsup:

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/

Share this post


Link to post
Share on other sites
scorch

Que tipo de header precisas?

Podes ver isto.


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
Sir Pereira

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

Share this post


Link to post
Share on other sites
Nazgulled

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 :D

Share this post


Link to post
Share on other sites
softklin

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.

Share this post


Link to post
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
Sign in to follow this  

×

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.