Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

chamycal

[Resolvido] Header Location não funciona

Recommended Posts

Não sei o que estou fazendo de errado:

 

<?php
ini_set( 'display_errors', true );error_reporting( E_ALL );

$nome  = $_POST["nome"];
$senha = $_POST["senha"];
if(($nome == "admin") and ($senha == "123456"))
{
setcookie("login",$nome);
setcookie("pass",$senha);	
header("Location:adm.php");
exit;
}
else
{
echo "Senha ou Login inválidos";
}

?>

 

Ele não redireciona pra pagina adm.php

 

Não sei o que eu faço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

A menos que a mensagem original tenha sido editada nesse meio tempo, os alertas de erro já estão habilitados.

 

Se a versão do PHP for 5 ou superior, error_reporting() está mal configurado. Deveria ser E_ALL | E_STRICT.

 

Quanto ao redirecionamento não ocorrer, experimente, no Chrome ou no Firefox (pelo menos os que eu sei), na "aba" Rede (ou Network, no Chrome), teclar Ctrl + Shift + J e testar o redirecionamento.

 

Se aparecer escrito adm.php em vermelho, pode ser que o sistema não esteja "alcançando" esse arquivo, talvez por não existir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bruno, Fiz até um novo arquivo simples pra ver, fiz o negócio de ctrl + shift + j, Apareceu isso aqui:

chrome/RendererExtensionBindings:281Uncaught Error: chrome.tabs can only be used in extension processes. See the content scripts documentation for more details.

 

aqui o source:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
</head>

<body>
<?php
header("location: iii.php");
exit;

?>
</body>
</html>

 

Não sei mais o que fazer não!

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não pode enviar um header depois de setar saidas entendeu ?

 

por isso que esse teu header ai no meio do html não funciona.

O setcookie() é considerado um header tb.

http://php.net/setcookie

 

 

Se os erros estivessem habilitados(como supos o @Bruno Augusto), teriam aparecido um Warning com esse motivo que citei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@William, Não entendi, Fiz sem cookies agora e o erro continua olha:

2.php

<?php
ini_set( 'display_errors', true );
error_reporting( E_ALL );

header("Location: i.php");
exit;
?>

 

quero que vá para i.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
</head>

<body>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

está tudo correto.

 

Testei aqui, e acessando:

localhost/2.php

 

fui direcionado para i.php

 

o seu problema está em outra parte do processo.

Como você chega na 2.php ?

 

oque acontece ? como fica a tua URL ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando eu entro aqui em local host no 2.php nada redireciona e minha url fica assim: http://localhost/sites_dinamicos/site_1/2.php (Nada de anormal pois é meu diretório)

 

Com as mensagens de erros habilitadas aparece isso: Warning: Cannot modify header information - headers already sent by (output started at C:\apache2triad\htdocs\sites_dinamicos\site_1\2.php:1) in C:\apache2triad\htdocs\sites_dinamicos\site_1\2.php on line 5

 

tem uma coisa que parece não fazer muito sentido, Mas eu fiz um site aqui em LocalHost normalmente, Existia uma DIV chamada "header" hoje ela não estava mais funcionando... Não parece ter muito a ver mas...

 

Estou usando o Apache2Triad.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com as mensagens de erros habilitadas aparece isso: Warning: Cannot modify header information - headers already sent by (output started at C:\apache2triad\htdocs\sites_dinamicos\site_1\2.php:1) in C:\apache2triad\htdocs\sites_dinamicos\site_1\2.php on line 5

essa é uma informação muito muito importante.

 

salve esse teu arquivo em UTF8 SEM BOM:

http://wbruno.com.br/blog/2011/04/19/problemas-acentuacao-ajax-como-resolver/#bom

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pow @William, Obrigado, Eu abri e fiz isso ai no Notepad++ e redirecionou normalmente, Eu nunca tinha ouvido falar disso,Você pode me falar por que isso aconteceu e o que significa isso?

 

vlw ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
ini_set( 'display_errors', true );error_reporting( E_ALL );

Se os erros estivessem habilitados(como supos o @Bruno Augusto), teriam aparecido um Warning com esse motivo que citei.

Em minha defesa, que fique registrado ante a uma acusação de nível moderado, que eu não supus absolutamente nada.

 

Apenas li a segunda linha do código postado.

 

Quanto ao motivo em si (até para justificar esse post), é que quando você salva COM BOM, automaticamente três caracteres na maioria das vezes inúteis são adicionadas no início do arquivo.

 

Alguns editores podem até não exibí-los e portanto você pode não tê-los visto, mas que eles estão lá, estão.

 

E, por ser um texto literal, afeta negativamente o funcionamento de header().

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.