Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas Ao Chamar Scripts Com O Header


Jairovisks

Pergunta

Galera meu problema é o seguinte:

Tenho uma página que cria um formuluário HTML e envia os dados desse form usando POST para um script PHP que verifica se os campos obrigatórios foram preenchidos, caso não tenham sido preenchidos ele refaz o form e caso tenham ele conecta no banco MySQL e grava as alterações e depois chama OUTRO script usando o HEADER para mostrar a mensagem se gravou com sucesso ou não, entretanto quando mando gravar aparece a seguinte mensagem:

"Warning: Cannot modify header information - headers already sent by (output started at C:\Arquivos de programas\Apache Group\Apache2\htdocs\CursoPHP\inclusao.php:12) in C:\Arquivos de programas\Apache Group\Apache2\htdocs\CursoPHP\inclusao.php on line 117"

Ele grava normalmente no banco mas não chama o script de mensagem.

Eu sou novo em Programação PHP e sou leigo no assunto alguém sabe o que tá dando errado, ou existe outra forma de chamar um outro script??

Segue abaixo as páginas de script:

--Aqui eu crio o primeiro form a ser preenchido.

INCLUSAO.HMTL

<HTML>

<HEAD>

<TITLE>Inclusão.html</TITLE>

<META http-equiv="Content-Type" CONTENT="text/html; charset=iso-8859-1">

</HEAD>

<BODY bgcolor="#FFFFFF" text="000000" link="#333399" vlink="#cc0000" alink="#663399">

<TABLE width="640" border="0" cellspacing="0" aling="center">

<TR>

<TD>

<P><img src="img/index_15.jpg" width="640" heigth="44"></P>

<P><B>Formulário de Inclusão:<br></B></P>

<FORM METHOD="POST" action="inclusao.php">

<P>Nome Completo:

<input type="text" name="nome" size="25" maxlength="50">

</P>

<P>Unidade:

<input type="text" name="unidade" size="40" maxlength="40">

</P>

<P>Telefone:

<input type="text" name="telefone" size="10" maxlength="10">

</P>

<P>E-mail:

<input type="text" name="mail" size="25" maxlength="40">

</P>

<P>Cargo:

<input type="text" name="cargo" size="40" maxlenth="40">

</P>

<P>

<input type="submit" name="Submit" value="Enviar">

<center><b><a href="index.html">Home</a></b></center>

</P>

</FORM>

</TD>

</TR>

<TR>

<TD>&nbsp;</TD>

</TR>

</TABLE>

</BODY>

</HTML>

--Aqui eu verifico se os campos foram preenchidos e em caso afirmativo grava os dados no banco, e chamo um script que exibem uma mesnagem se foi com sucesso ou não.

INCLUSAO.PHP

<HTML>

<HEAD>

<TITLE>inclusão</TITLE>

<META NAME="GENERATOR" CONTENT="MAX's HTML Beauty++ 2004">

</HEAD>

<BODY>

<?php

//recebe variáveis globais do formulário

$nome=$_POST["nome"];

$unidade=$_POST["unidade"];

$telefone=$_POST["telefone"];

$email=$_POST["email"];

$cargo=$_POST["cargo"];

//tira o espaços em branco das variáveis vindas do formulários

$nome=trim($nome);

$unidade=trim($unidade);

$telefone=trim($telefone);

$email=trim($email);

$cargo=trim($cargo);

//consiste as variáveis recebidas

if (empty($nome) || empty($unidade) || empty($telefone) || empty($cargo)) {

//se campos obrigatórios não preenchido recria o formulário e exibe msg de erro

echo ('

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body bgcolor="#FFFFFF" text="#000000" link="#333399" vlink="#CC0000" alink="#663399">

');

echo ("<P><center><img src=\"img/index_51.gif\"></center></p>");

echo ("<font color=\"#FF0000\"><b>Campos Obrigatórios não preenchidos</b></font>");

echo ("

<table width=\"640\" boder=\"0\" cellspacing=\"0\" align=\"center\">

<tr>

<td>

<p><b>Formulário de Inclusão:<br></b></p>

<FORM METHOD=\"POST\" action=\"inclusao.php\">

<P>Nome Completo:

<input type=\"text\" name=\"nome\" size=\"25\" maxlength=\"50\">

</P>

<P>Unidade:

<input type=\"text\" name=\"unidade\" size=\"40\" maxlength=\"40\">

</P>

<P>Telefone:

<input type=\"text\" name=\"telefone\" size=\"10\" maxlength=\"10\">

</P>

<P>E-mail:

<input type=\"text\" name=\"mail\" size=\"25\" maxlength=\"40\">

</P>

<P>Cargo:

<input type=\"text\" name=\"cargo\" size=\"40\" maxlenth=\"40\">

</P>

<P>

<input type=\"submit\" name=\"Submit\" value=\"Enviar\">

<center><b><a href=\"index.html\">Home</a></b></center>

</P>

</FORM>

</td>

</tr>

<tr>

<td>&nbsp;</td>

</tr>

</table>

</body></html>");//fim do echo

}//fim do if

else{

//inclui os dados na tabela de funcionários

//Cria uma conexão com o banco mySql pasando host, username, e senha

$conec=mysql_connect("localhost","root","") or die ("Falha na conexão com o banco de dados!");

//Declaração SQL

$declar= "INSERT into funcionarios value('$nome', '$unidade', '$telefone', '$email', '$cargo')";

//roda a query e trata o resultado

$tipo_msg='I';

if (mysql_db_query("unicamp", $declar, $conec)){

$ok=1;

header("Location:exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");

}//fim do if

else{

$ok=2;

header("Location:exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");

}//fim do else

//fecha a conexão com o serfidor mySQL

mysql_close($conec);

}//fim do else

?>

</BODY>

</HTML>

--Aqui é o sript que exibe a mensagem de gravação no banco

EXIBE_MENSAGEM.PHP

<HTML>

<HEAD>

<TITLE>Exibe Mensagem</TITLE>

<META http-equiv="content-type" NAME="GENERATOR" CONTENT="text/html; charset=iso-8859-1">

</HEAD>

<BODY>

<?php

global $ok;

$ok=trim($ok);

echo ("<p><center><img src=\"img\index_15.jpg\"></center></p>");

if ($tipo_msg=='I'){

//se inclusão ok

if ($ok==1){

echo ("<br><br>");

echo ("<center><b><font size=4> Inclusão efetuada com sucesso</font></b></center>");

echo ("<br><br>");

echo ("<center><b><a href=\"inclusao.html\">Voltar</a></b></center>");

}

//se deu erro na inclusão

if ($ok==2){

echo ("<br><br>");

echo ("<center><b><font size=4>ERRO: Inclusão Não efetuada</font></b></center>");

echo ("<br><br>");

echo ("<center><b><a href=\"inclusao.html\">Voltar</a></b></center>");

}

}

?>

</BODY>

</HTML>

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Lembre-se que header() deve ser utilizada antes que qualquer saida seja enviada, seja pelo HTML, linhas ou espaços em branco em um arquivo, ou a partit do PHP. É um erro muito comum ler código com a função include(), ou require(), ou outra função que acesse arquivos, e ter espaços ou linhas em branco antes da função header(). O mesmo problema existe quando usar um arquivo PHP/HTML.

http://www.php.net/header

Ou seja, vai dar sempre erro se você colocar HTML junto com o header...

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo também sou iniciante em php, mas penso que se você usar javascript pode dar certo

if (mysql_db_query("unicamp", $declar, $conec)){

$ok=1;

echo "<script>alert('Inclusão efetuada com sucesso!');window.location.href="inclusao.html";</script>";

}

if ($ok==2){

echo "<script>alert('ERRO: Inclusão Não efetuada!');history.back(-1);</script>";

}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...