Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sir Pereira

Login codificado

Mensagens Recomendadas

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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/

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Sir Pereira

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

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

:D

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.