Ivo Pereira Posted January 9, 2010 at 07:29 PM Report Share #305047 Posted January 9, 2010 at 07:29 PM 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 More sharing options...
Guest NoOne Posted January 9, 2010 at 08:00 PM Report Share #305050 Posted January 9, 2010 at 08:00 PM experimenta: header("Location: home.php"); Link to comment Share on other sites More sharing options...
Ivo Pereira Posted January 9, 2010 at 08:16 PM Author Report Share #305051 Posted January 9, 2010 at 08:16 PM Não resultou. Link to comment Share on other sites More sharing options...
softklin Posted January 9, 2010 at 09:22 PM Report Share #305059 Posted January 9, 2010 at 09:22 PM 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 More sharing options...
Ivo Pereira Posted January 9, 2010 at 09:23 PM Author Report Share #305060 Posted January 9, 2010 at 09:23 PM 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 More sharing options...
Ivo Pereira Posted January 9, 2010 at 11:18 PM Author Report Share #305097 Posted January 9, 2010 at 11:18 PM Já agora, uma dúvida, se eu precisar de colocar um header no meio do código como o posso colocar, visto que sou sempre obrigado a colocá-lo antes das tags html, echos, etc ? Abraço 👍 Link to comment Share on other sites More sharing options...
scorch Posted January 9, 2010 at 11:34 PM Report Share #305104 Posted January 9, 2010 at 11:34 PM Que tipo de header precisas? Podes ver isto. PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
Ivo Pereira Posted January 9, 2010 at 11:58 PM Author Report Share #305119 Posted January 9, 2010 at 11:58 PM 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 More sharing options...
Guest id194 Posted January 10, 2010 at 03:01 PM Report Share #305213 Posted January 10, 2010 at 03:01 PM Esqueçam, resolvido 🙂 Por essa razão (e muitas outras) é que misturar PHP com HTML dá sempre merdum. http://www.revista-programar.info/front/article/76 Link to comment Share on other sites More sharing options...
Ivo Pereira Posted January 10, 2010 at 03:21 PM Author Report Share #305218 Posted January 10, 2010 at 03:21 PM Mas isso era em relação à minha primeira dúvida, correcto? Link to comment Share on other sites More sharing options...
Guest id194 Posted January 10, 2010 at 08:05 PM Report Share #305271 Posted January 10, 2010 at 08:05 PM Sim. Link to comment Share on other sites More sharing options...
Ivo Pereira Posted January 12, 2010 at 12:02 PM Author Report Share #305644 Posted January 12, 2010 at 12:02 PM E em relação à minha última questão, sugestões? 👍 Link to comment Share on other sites More sharing options...
Ivo Pereira Posted January 14, 2010 at 12:31 PM Author Report Share #306042 Posted January 14, 2010 at 12:31 PM Boas pessoal, desculpem o BUMP, mas continuo com o mesmo problema 😄 Experts do PHP, nenhuma solução? 😛 Cumps 🙂 Link to comment Share on other sites More sharing options...
Guest id194 Posted January 14, 2010 at 05:56 PM Report Share #306103 Posted January 14, 2010 at 05:56 PM 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 More sharing options...
Ivo Pereira Posted January 14, 2010 at 07:33 PM Author Report Share #306125 Posted January 14, 2010 at 07:33 PM Mas na altura ele não tem sessão iniciada 😄 aliás, porque depois de entrar, entro numa página com um código que me termina as sessões abertas... Link to comment Share on other sites More sharing options...
softklin Posted January 14, 2010 at 07:41 PM Report Share #306127 Posted January 14, 2010 at 07:41 PM 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 More sharing options...
Ivo Pereira Posted January 14, 2010 at 08:23 PM Author Report Share #306134 Posted January 14, 2010 at 08:23 PM 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 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