HdN 0 Denunciar post Postado Agosto 12, 2009 Ola pessoal quem puder da uma força!! estou fazendo um sistema de login/senha com login/senha ja definidos e esta dando erro no header <html> <head> <title>Login/Senha</title> <body> <?php $login = $_POST["login"]; $senha = $_POST["senha"]; //echo "login: $login, Senha: $senha"; if($login == "abc" and $senha == "123"){ header("location: index.php"); exit; }else{ header("location: index.php?error=erro"); exit; } ?> <a href="index.php">Voltar</a> </body> </html> erro: Warning: Cannot modify header information - headers already sent by (output started at C:\Documents ... \www\login\act.php:5) in C:\Documents ...\www\login\act.php on line 27 Compartilhar este post Link para o post Compartilhar em outros sites
~TiuTalk~ 7 Denunciar post Postado Agosto 12, 2009 O problema é que voccê já inseriu HTML antes do PHP: <html> <head> <title>Login/Senha</title> <body> <?php ... O ideal é fazer TODOS os redirecinamentos, inicio de sessão e manipulação de cookies ANTES de enviar qualquer html pro cliente (navegador). :) Move o bloco de PHP todo pra antes do HTML (pra primeira linha do arquivo) que deve funcionar. Compartilhar este post Link para o post Compartilhar em outros sites
HdN 0 Denunciar post Postado Agosto 13, 2009 eu removi todos o HTML, so ficou o PHP: <?php $login = $_POST["login"]; $senha = $_POST["senha"]; //echo "login: $login, Senha: $senha"; if($login == "abc" and $senha == "123"){ header("location: index.php"); exit; }else{ header("location: index.php?error=erro"); exit; } ?> e ainda fica dando o erro: Warning: Cannot modify header information - headers already sent by (output started at C:\Documents ...\www\login\act.php:4) in C:\Documents ...\www\login\act.php on line 15 Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Agosto 13, 2009 Tem alguma coisa estranha... O erro está dizendo que é na linha 15, e só tem 14 linhas no seu código. http://forum.imasters.com.br/index.php?/topic/342563-dicas-para-uso-de-variaveis-de-sessao/ Dá uma olhada neste link pra ver se te ajuda em alguma coisa. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Juninho14 0 Denunciar post Postado Agosto 13, 2009 deve ter algum include antes desse código para dar esse erro com certeza ou algum HTML ou algum "echo" por que senão não daria este erro não. Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Agosto 13, 2009 Na página do formulário, nomeie ela como: login.html no action de seu form de login, adicione: logar.php na página logar.php apenas adicione o código: <?php $login = $_POST['login']; $senha = $_POST['senha']; //echo "login: $login, Senha: $senha"; if($login == 'abc' and $senha == 123){ header("location: index.php"); }else{ header("location: index.php?error=erro"); } ?> Compartilhar este post Link para o post Compartilhar em outros sites
HdN 0 Denunciar post Postado Agosto 14, 2009 eu refiz o codigo, acho que ta quase so tem um problema pagina: index.php <form name="fpower" action="index.php" method="post"> L:<input type="text" name="login" /><br/> S:<input type="text" name="senha" /> <input type="submit" value="ok" /> <a href="index.php">Limpar!</a> </form> <?php if(isset($_POST['login'])){ $login = $_POST['login']; $senha = $_POST['senha']; if($login == 'abc' and $senha == '123'){ header("Location: act.php"); }else{ $msg = "Login ou Senha invalida!"; header("Location: index.php?msg=$msg"); } } echo $_GET["msg"]; ?> pagina: act.php <?php if(($_POST['$login'] and $_POST['$senha']) == ''){ //if(!($_POST['$login'] and $_POST['$senha']) == ''){ $msg = "Favor logar antes!"; header("Location: index.php?msg=$msg"); }else{ echo "bem vindo!"; } ?> quando eu coloco a senha, ele verifica, se tiver errada ele devolve, se nao esse passa td certinho!! PROBLEMA: quando eu tento entrar direto na pagina "act.php"(digitando pelo browser) ele acessa normal a pagina, queria que se tivesse fazendo isso ele mandasse para a index.php, mas quando eu fiz isso mesmo eu digitando a senha correta ele manda p/ a index.php como bloqueio o acesso sem dar erro digitando a senha correta! Compartilhar este post Link para o post Compartilhar em outros sites
fetish 3 Denunciar post Postado Agosto 14, 2009 Você teria que usar SESSION/(ou) Cookie para verificar se o jogador está logado ou não. Ou então por MySQL, você cria uma tabela com o status da pessoa :} Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Agosto 14, 2009 Tem alguma coisa estranha... O erro está dizendo que é na linha 15, e só tem 14 linhas no seu código. Correto, o erro aponta a última linha do código dele, mas olhe só: headers already sent by (output started at C:\Documents ...\www\login\act.php:4) A parte negritada mostra que houve uma saída na linha 4, que é exatamente a linha do $_POST[ "senha" ], isso significa que ele está pegando os dados sem verificar a existência deles, ele está recebendo um E_NOTICE, "Undefined index senha" para resolver isso, será necessário uma verificação: $login = isset( $_POST['login'] ) ? $_POST['login'] : null; $senha = isset( $_POST['senha'] ) ? $_POST['senha'] : null; //echo "login: $login, Senha: $senha"; if($login == 'abc' and $senha == 123){ header("location: index.php"); }else{ header("location: index.php?error=erro"); } Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Agosto 14, 2009 Complementando: $login = isset( $_POST['login'] ) ? $_POST['login'] : null; $senha = isset( $_POST['senha'] ) ? $_POST['senha'] : null; if($login != null and $senha != null){ //echo "login: $login, Senha: $senha"; if($login == 'abc' and $senha == 123){ header("location: index.php"); }else{ header("location: index.php?error=erro"); } }else{ header("location: index.php?error=erro"); } Compartilhar este post Link para o post Compartilhar em outros sites
HdN 0 Denunciar post Postado Agosto 15, 2009 intao galera eu tinha refeito o codigo e deu certo depois apareceu um novo problema. nova pagina: index.php <form name="fpower" action="index.php" method="post"> L:<input type="text" name="login" /><br/> S:<input type="text" name="senha" /> <input type="submit" value="ok" /> <a href="index.php">Limpar!</a> </form> <?php if(isset($_POST['login'])){ $login = $_POST['login']; $senha = $_POST['senha']; if($login == 'abc' and $senha == '123'){ header("Location: act.php"); }else{ $msg = "Login ou Senha invalida!"; header("Location: index.php?msg=$msg"); } } echo $_GET["msg"]; ?> nova pagina: act.php <?php if(($_POST['$login'] and $_POST['$senha']) == ''){ //if(!($_POST['$login'] and $_POST['$senha']) == ''){ $msg = "Favor logar antes!"; header("Location: index.php?msg=$msg"); }else{ echo "bem vindo!"; } ?> quando eu digito a senha ele verifica td certo, se tiver ok ele passa se nao ele devolve para pagina index.php com uma msg de erro!! NOVO PROBLEMA: quando eu tento acessa a pagina act.php(digitando o nome no browser) ele acessa normal, eu queria que se tivesse fazendo isso ele mandasse para a index.php(forçando que eu digite a senha), mas quando eu fiz isso, acho que nao soube montar essa verificação e mesmo quando eu digito login/senha correta ele manda p/ a index.php. como bloqueio o acesso(ao act.php) sem dar erro digitando a senha correta! Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Agosto 15, 2009 Você vai ter que usar SESSION ou COOKIE, porque o POST não vem pra segunda página. Mais ou menos assim. if($login == 'abc' and $senha == '123'){ session_start(); $_SESSION['logado'] = true; header("Location: act.php"); Daí na act.php, você faz o teste. session_start(); if(!isset($_SESSION['logado'])){ $msg = "Favor logar antes!"; header("Location: index.php?msg=$msg"); }else{ echo "bem vindo!"; } Este é um código somente de exemplo... Está bem inseguro, mas dá pra você entender a lógica. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites