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

Erro Ao Excluir Registro!


Martinsrj

Pergunta

Olá pessoal, eu aqui de novo. Estou fazendo um pequeno sistema de cadastro de funcionário pra estudo, porem quando eu digito Paulo e sei que existe esse funcionário no banco de dados ele dá a seguinte mensagem:

Preencha o campoNome :(

OBS.: No banco de dados tem cadastrado: Paulo, Paulo Jose, Paulo joaquim, mas o que eu quero excluir é apenas o funcionário Paulo.

<?php
$nome = trim($_POST["nome"]);
// Consiste Nome
if (empty ($nome)) {
$html = file ("exclusao.html");
$html = implode(" ",$html);
$erro = "<center><font color=\"#FF0000\">Preencha o campo<b>Nome</b></font></center>";
$html = str_replace ("<!mensagem>", $erro, $html);
echo ($html);
}
else {
// Cria uma conexão com o servidor MySQL
$conec = mysql_connect ("localhost","root","root");

// Declação do SQL
$declar = "select nome from funcionarios where nome ='$nome'";

// Roda a query, verifica se funcionário é cadastrado
$query = mysql_db_query ('tachion', $declar, $conec) or die ("Erro no acesso ao banco");
$achou = mysql_num_rows ($query);
// echo ($achou);
// Se encontra exclui, senão mostra mensagem
$tipo_msg = 'E';
if ($achou > 0) {
// Exclui registro na tabela funcionarios
$declar2 = "delete from funcionarios where nome = '$nome'";
if (mysql_db_query ('tachion', $declar2, $conec)) {
$ok = 1;
header ("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");
}
else {
$ok = 2;
header ("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");
}
}
else {
$ok = 3;
header ("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");
}
mysql_close ($conec);
}
?>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

23 respostass a esta questão

Posts Recomendados

  • 0

Esse abaixo é o formulário do exclusão.html

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body bgcolor="#fffffff">
<table width="640" border="0" cellpadding="0" align="center">
    <tr valign="top">
        <td>
            <p></p>
            <!mensagem>
            <p><b>Formulário de exclusão: <br>
                </b></p>
            <form method="get" action="exclusao.php">
            <p>Nome Completo:
                <input type="text" name="nome" size="25" maxlength="50">
            </p>
            <p>
                <input type="submit" name="submit" value="Enviar">
            </p>
            </form>
            <center> <b> <a href="index.html">Home</a></b></center>
        </td>
    </tr>
    
<tr>
    <td>&nbsp;</td>
</tr>
</table>        
</body>
</html>
E esse aqui é do exibe mensagem:
<body bgcolor="#ffffff" text="#000000" link="#333399" vlink="#cc0000" alink="#663399">

<?php

$ok = trim($_POST["ok"]);

global $ok;
$ok = trim($ok);
echo ("<p><center><img src=\"topo.gif\" width=\"640\" height=\"44\"></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 </font></b></center>");
        echo ("<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>");
        echo ("<center><b> <a href=\"inclusao.html\">Voltar</a></b></center>");
    }
}

// exclusão
if ($tipo_msg == 'E') {
    // se exclusão ok
    if ($ok == 1) {
    echo ("<br><br>");
    echo ("<center><b><font size = 4> Exclusão Efetuada </font></b></center>");
    echo ("<br>");
    echo ("<center><b> <a href=\"exclusao.html\">Voltar</a></b></center>");
    }
    // se deu erro na exclusão
    if ($ok == 2) {
        echo ("<br><br>");
        echo ("<center><b><font size = 4> Erro - Exclusão não efetuada </font></b></center>");
        echo ("<br>");
        echo ("<center><b> <a href=\"exclusao.html\">Voltar</a></b></center>");
        }
        // se funcionário não cadastrado
        if ($ok == 3) {
        echo ("<br><br>");
        echo ("<center><b> Funcionário não cadastrado </b></center>");
        echo ("<center><b> <a href=\"exclusao.html\">Voltar</a>
    </br></center>");
        }
    }
        

?>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

  • 0

Continua o mesmo erro colocando o post, mas se você colocar o get o erro é esse:

Warning: Cannot modify header information - headers already sent by (output started at C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\projeto1\exclusao.php:3) in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\projeto1\exclusao.php on line 36

A linha 36 é esta:

header ("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");
As alterações abaixo, Exclusao.html
<body bgcolor="#fffffff">
<table width="640" border="0" cellpadding="0" align="center">
    <tr valign="top">
        <td>
            <p></p>
            <!mensagem>
            <p><b>Formulário de exclusão: <br>
                </b></p>
            <form method="post" action="exclusao.php">
            <p>Nome Completo:
                <input type="text" name="nome" size="25" maxlength="50">
            </p>
            <p>
                <input type="submit" name="submit" value="Enviar">
            </p>
            </form>
            <center> <b> <a href="index.html">Home</a></b></center>
        </td>
    </tr>
    
<tr>
    <td>&nbsp;</td>
</tr>
</table>        
</body>
</html>
Exclusao.php
<?php
$nome = trim($_POST["nome"]);
// Consiste Nome
if (empty ($nome)) {
    $html = file ("exclusao.html");
    $html = implode(" ",$html);
    $erro = "<center><font color=\"#FF0000\">Preencha o campo<b>Nome</b></font></center>";
    $html = str_replace ("<!mensagem>", $erro, $html);
    echo ($html);
}
else {
    // Cria uma conexão com o servidor MySQL
    $conec = mysql_connect ("localhost","root","root");
    
    // Declação do SQL
    $declar = "select nome from funcionarios where nome ='$nome'";
    
    // Roda a query, verifica se funcionário é cadastrado
    $query = mysql_db_query ('tachion', $declar, $conec) or die ("Erro no acesso ao banco");
    $achou = mysql_num_rows ($query);
    echo ($achou);
    // Se encontra exclui, senão mostra mensagem
    $tipo_msg = 'E';
    if ($achou > 0) {
        // Exclui registro na tabela funcionarios
        $declar2 = "delete from funcionarios where nome = '$nome'";
        if (mysql_db_query ('tachion', $declar2, $conec)) {
        $ok = 1;
        header ("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");
            }
            else {
                $ok = 2;
                header ("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");
            }
        }
        else {
            $ok = 3;
            header ("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");
        }
        mysql_close ($conec);
}
?>
</body>
</html>
exibe_mensagem.php
<?php
// Recebe variáveis globais do formulário
//global $nome;
//$nome = trim($nome);

// Tirar espaço em branco da variável recebida através do formulário
$nome = trim($_POST["nome"]);
// Consiste Nome
if (empty ($nome)) {
    $html = file ("exclusao.html");
    $html = implode(" ",$html);
    $erro = "<center><font color=\"#FF0000\">Preencha o campo<b>Nome</b></font></center>";
    $html = str_replace ("<!mensagem>", $erro, $html);
    echo ($html);
}
else {
    // Cria uma conexão com o servidor MySQL
    $conec = mysql_connect ("localhost","root","root");
    
    // Declação do SQL
    $declar = "select nome from funcionarios where nome ='$nome'";
    
    // Roda a query, verifica se funcionário é cadastrado
    $query = mysql_db_query ('tachion', $declar, $conec) or die ("Erro no acesso ao banco");
    $achou = mysql_num_rows ($query);
    echo ($achou);
    // Se encontra exclui, senão mostra mensagem
    $tipo_msg = 'E';
    if ($achou > 0) {
        // Exclui registro na tabela funcionarios
        $declar2 = "delete from funcionarios where nome = '$nome'";
        if (mysql_db_query ('tachion', $declar2, $conec)) {
        $ok = 1;
        header ("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");
            }
            else {
                $ok = 2;
                header ("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");
            }
        }
        else {
            $ok = 3;
            header ("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");
        }
        mysql_close ($conec);
}
?>

Me ajuda aí pessoal!!!

Muito obragado pela paciencia.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Beraldo, beleza?!

Fiz o que você pediu:

$query = mysql_db_query ('tachion', $declar, $conec) or die ("Erro no acesso ao banco");

$achou = mysql_num_rows ($query);

// echo ($achou); <<<===

Mas deu o seguinte erro:

Warning: Cannot modify header information - headers already sent by (output started at C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\projeto1\exclusao.php:3) in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\projeto1\exclusao.php on line 45

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

Desde já agradeço pela atenção,

Abrs.

Link para o comentário
Compartilhar em outros sites

  • 0

Continua dando este erro:

Warning: Cannot modify header information - headers already sent by (output started at C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\projeto1\exclusao.php:3) in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\projeto1\exclusao.php on line 45

Coisa de louca... rsrsrs

Não sei nem mais o que faço.

Link para o comentário
Compartilhar em outros sites

  • 0

:D Sim.

Olá Beraldo!

Vou colocar abaixo todo o código exclusao.php:

<html>

<body>

<?php

// Recebe variáveis globais do formulário

//global $nome;

//$nome = trim($nome);

// Tirar espaço em branco da variável recebida através do formulário

$nome = trim($_POST["nome"]);

// Consiste Nome

if (empty ($nome)) {

$html = file ("exclusao.html");

$html = implode(" ",$html);

$erro = "<center><font color=\"#FF0000\">Preencha o campo<b>Nome</b></font></center>";

$html = str_replace ("<!mensagem>", $erro, $html);

// echo ($html);

}

else {

// Cria uma conexão com o servidor MySQL

$conec = mysql_connect ("localhost","root","root");

// Declação do SQL

$declar = "select nome from funcionarios where nome ='$nome'";

// Roda a query, verifica se funcionário é cadastrado

$query = mysql_db_query ('tachion', $declar, $conec) or die ("Erro no acesso ao banco");

$achou = mysql_num_rows ($query);

// echo ($achou);

// Se encontra exclui, senão mostra mensagem

$tipo_msg = 'E';

if ($achou > 0) {

// Exclui registro na tabela funcionarios

$declar2 = "delete from funcionarios where nome = '$nome'";

if (mysql_db_query ('tachion', $declar2, $conec)) {

$ok = 1;

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

}

else {

$ok = 2;

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

}

}

else {

$ok = 3;

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

}

mysql_close ($conec);

}

?>

</body>

</html>

################################################################

Agora do exclusao.html

<!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=iso-8859-1" />

<title>Untitled Document</title>

</head>

<body bgcolor="#fffffff">

<table width="640" border="0" cellpadding="0" align="center">

<tr valign="top">

<td>

<p></p>

<!mensagem>

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

</b></p>

<form method="post" action="exclusao.php">

<p>Nome Completo:

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

</p>

<p>

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

</p>

</form>

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

</td>

</tr>

<tr>

<td>&nbsp;</td>

</tr>

</table>

</body>

</html>

Obrigado Beraldo pela atenção!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Coloquei o codigo php antes de <html>, mas deu o mesmo erro.

Esse aqui é o codigo de exibe_mensagem.php:

<html>

<head>

<title>Exibe Mensagem</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">

<?php

$ok = trim($_POST["ok"]);

global $ok;

$ok = trim($ok);

echo ("<p><center><img src=\"topo.gif\" width=\"640\" height=\"44\"></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 </font></b></center>");

echo ("<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>");

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

}

}

// exclusão

if ($tipo_msg == 'E') {

// se exclusão ok

if ($ok == 1) {

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

echo ("<center><b><font size = 4> Exclusão Efetuada </font></b></center>");

echo ("<br>");

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

}

// se deu erro na exclusão

if ($ok == 2) {

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

echo ("<center><b><font size = 4> Erro - Exclusão não efetuada </font></b></center>");

echo ("<br>");

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

}

// se funcionário não cadastrado

if ($ok == 3) {

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

echo ("<center><b> Funcionário não cadastrado </b></center>");

echo ("<center><b> <a href=\"exclusao.html\">Voltar</a>

</br></center>");

}

}

?>

</body>

</html>

O problema que não exclui, muito menos exibindo mensagem que foi excluido com sucesso.

E olha que eu coloquei depois apenas o codigo php.

da o mesmo erro naquela linha conforme eu informei anteriormente.

O problema que não exclui, muito menos exibindo mensagem que foi excluido com sucesso.

E olha que eu coloquei depois apenas o codigo php.

da o mesmo erro naquela linha conforme eu informei anteriormente.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Beraldo, olha eu aqui de novo. :D

Deu erro novamente:

Warning: Cannot modify header information - headers already sent by (output started at C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\projeto1\exclusao.php:2) in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\projeto1\exclusao.php on line 44

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

Link para o comentário
Compartilhar em outros sites

  • 0

A função Header com o argumento Location: aceita caminho relativo das URLs, também. Ou seja, não precisa do caminho completo do domínio.

Nesse caso, o erro ocorre porque o header() tenta enviar um cabeçalho para o protocolo HTTP, dizendo que é pra redirecionar pra tal endereço. Mas o cabeçalho HTML já foi enviado, e por isso não pode ser modificado.

O que significa? Que houve alguma saída HTML, seja por echo, seja fechando a tag do PHP e colocando uma linha ou espaço em branco, seja contendo uma linha ou espaço em branco, ou qualquer outra coisa HTML antes da primeira tag PHP ser aberta.

Para setar cookies ocorre a mesma coisa: não pode ter enviado nenhum cobeçalho para o protocolo HTTP.

Não li o script, mas darei uma olhada e comentarei sobre o local onde isso pode estar localizado.

Link para o comentário
Compartilhar em outros sites

  • 0

tenta colocar no header sempre o nomearquivo.php?

tira o http://caminho e deixa so o header("location: arquivo.php?exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");

o header também não funciona quando voce deixa um echo, print essas coisas antes dele.

fora que o header as vezes da uma palas esquisitas por causa dos espaços entres as linhas do codigo. Eu uso bastante o header e já tive dores de cabeca por causa dele.

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...