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

RicardoR

Header

8 mensagens neste tópico

Boas

Introduzi uma função if e else que vou por aqui:

<?php
if($_POST['nome']) {
if($_POST['email']) {
if($_POST['password']) {
if($_POST['password1']) {
if($_POST['password']==$_POST['password1']){
include "adic1.php";
}else{
echo "<center>As passwords não coincidem, volte a inserir.</center>";
header('Location: index.php?p=01');
}
}else{
echo "<center>Não voltou a inserir a password.</center>";
header('Location: index.php?p=01');
}}else
{
echo "<center>Por favor insira a password.</center>";
header('Location: index.php?p=01');
}
}else{
echo "<center>Não inseriu o email.</center>";
header('Location: index.php?p=01');
}
}else{
echo "<center> Não inseriu o nome.<center>";
header('Location: index.php?p=01');
}

?>

Quando fui testar istonão introduzi o nome e deu-me o erro:

Warning: Cannot modify header information - headers already sent by (output started at /home/a6483987/public_html/adic1.php:54) in /home/a6483987/public_html/adic1.php on line 55

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A função header() server para definir headers HTTP. Se começares a enviar coisas para o output então o servidor já te enviou os headers automaticamente, logo não a podes usar.

Que é como quem diz:

para usares a função header(), não podes ter enviado nada para o output.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso é porque o browser já leu os "cabeçalhos" e, portanto não podes voltar a mandar mais nada para os mesmos... portanto das duas uma, ou executas isso antes de enviares os cabeçalhos ou em vez do

else
{
echo "<center> Não inseriu o nome.<center>";
header('Location: index.php?p=01');
} 

usas:

else
{
echo "<center> Não inseriu o nome.<center>";
?>
<script type="text/javascript">
window.location="index.php?p=01";
</script>
<?php
} 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só uma coisa

Isso é porque o browser já leu os "cabeçalhos" e, portanto não podes voltar a mandar mais nada para os mesmos... portanto das duas uma, ou executas isso antes de enviares os cabeçalhos ou em vez do

else
{
echo "<center> Não inseriu o nome.<center>";
header('Location: index.php?p=01');
} 

usas:

else
{
echo "<center> Não inseriu o nome.<center>";
?>
<script type="text/javascript">
window.location="index.php?p=01";
<script>
<?php
} 

Ali em vez do 2º <script> é </script>

Abraço :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu pessoalmente apos fazer o echo desses javascripts, costumo meter um "exit" ou die, por vezes pode dar jeito para nao voltar a executar código...

0

Partilhar esta mensagem


Link 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