Problema com redirecionamento.
Bom dia galera.
Já procurei em vários lugares, mas não encontrei algo que me ajudasse.
Estou tendo problemas com um script que faz uma gravação em um BD e após essa gravação, ele deveria redirecionar para a página que exibe os dados cadastrados.
Os arquivos são os seguintes:
index.php
CODE
<?php include 'sqls.php' ?><script type="text/javascript">
<!--
function MarcaTodos() {
for (var i = 0; i < document.forms[0].elements.length; i++) {
if(document.forms[0].elements*.name == 'arrId[]'){*
document.forms[0].elements.checked = !(document.forms[0].elements.checked);
}
}
}
//-->
*</script>*
*<script type="text/javascript"> *
*$().ready(function() {*
* var container = $('div.container');*
// validate the form when it is submitted
var validator = $("#form").validate({
errorContainer: container,
errorLabelContainer: $("ol", container),
wrapper: 'li',
meta: "validate"
});
$(".cancel").click(function() {
validator.resetForm();
});
});
*</script> *
*<form action="<?php $_SERVER['PHP_SELF']; ?>" id="form" method="post">*
*<div id='conteudo'>*
*<?php*
*if ($_GET['acao'] == "editar" || $_GET['acao'] == "cadastrar" ) {*
include 'form.php';
} else {
include 'areas.php';
}
*?>*
*<br />*
*<br />*
*</div>*
*</form>*
areas.php
CODE
*<h2>Áreas - Modo Administrativo</h2>**<br />*
*<?php*
*if ($_GET["msg"]) {*
* if ($_GET["msg"] == 1) {*
$msg = 'Nova área cadastrada com sucesso!';
$classe = 'aviso_inclusao';
} elseif ($_GET["msg"] == 2) {
$msg = 'Área atualizada com sucesso!';
$classe = 'aviso_edicao';
} elseif ($_GET["msg"] == 3) {
$msg = 'Iten(s) selecionado(s) excluídos com sucesso!';
$classe = 'aviso_exclusao';
}
echo "<div class=$classe>
$msg
* </div>*
* <br />";*
}
*?>*
*<div class="controles">*
* <input type="submit" class="submit" name="exclui" value="Deletar" /> *
* <input type="button" class="submit" name="volta" value="Voltar" onclick="java script:history.go(-1);" /> *
* <input type="button" class="submit" name="volta" value="Adicionar" onclick="java script:window.location='?aplicativo=<?php echo $_GET[aplicativo] ?>&subaplicativo=<?php echo $_GET[subaplicativo] ?>&acao=cadastrar';" /> *
*</div>*
*<table class="table-list">*
* <thead>*
* <tr>*
* <th class="centro"><input type="checkbox" name="chk_tudo" onclick="MarcaTodos();" /></th>*
* <th>Áreas</th>*
* </tr>*
* </thead>*
* <tbody>*
*<?php*
* $sql_lista = "SELECT * FROM $tab_areas";*
$rs_lista = pg_query($sql_lista)
or die("Não foi possível localizar menus.");
while ($linha = pg_fetch_assoc($rs_lista)) {
$cor = ($coralternada++ %2 ? "#fff" : "#f9f9f9");
$id = $linha["id"];
$area = $linha["descricao"];
* echo "<tr style='background-color: $cor;'>*
* <td class='centro'><input type='checkbox' name='arrId[]' value='$id' /></td>*
* <td><a href='?aplicativo=$_GET[aplicativo]&subaplicativo=$_GET[subaplicativo]&acao=editar&id=$id' title='Editar entrada'>$area</a></td>*
* </tr>*
";
}
*?>*
*</tbody>*
*</table>*
*<div class="controles">*
* <input type="submit" class="submit" name="exclui" value="Deletar" /> *
* <input type="button" class="submit" name="volta" value="Voltar" onclick="java script:history.go(-1);" /> *
* <input type="button" class="submit" name="volta" value="Adicionar" onclick="java script:window.location='?aplicativo=<?php echo $_GET[aplicativo] ?>&subaplicativo=<?php echo $_GET[subaplicativo] ?>&acao=cadastrar';" /> *
*</div>*
*<br />*
form.php
CODE
*<?php**if ($_GET['acao'] == 'editar') {*
$id = $_GET['id'];
$sql = "SELECT FROM $tab_areas WHERE id = $id";*
$rs = pg_query($sql)
or die('Não foi localizado o menus selecionado.' . $sql);
$rs = pg_fetch_assoc($rs);
$area = $rs["descricao"];
* ?> *
* <h2>Editar Área</h2>*
* <br />*
* <div class="container"> *
* <h4>Ocorreram erros na gravação dos dados. Verifique as informações abaixo.</h4> *
* <ol> *
* <li><label for="txt_area" class="error">Informe a nova área.</label></li> *
* </ol> *
* </div> *
* <table class="form-table">*
* <tr>*
* <th>ID: </th>*
* <td><input type="text" name="txt_id" value="<?php echo $id ?>" /></td>*
* </tr> *
* <tr>*
* <th>Nome da área: </th>*
* <td><input type="text" name="txt_area" id="txt_area" size="50" value="<?php echo $area ?>" title="Informe a nova área." class="{validate:{required:true}}" /></td>*
* </tr>*
* </table>*
* <div class="controles"><input type="submit" class="submit" name="edita" value="Salvar" /> <input type="button" class="submit" name="volta" value="Voltar" onclick="java script:history.go(-1);" /></div>*
*<?php*
*} elseif ($_GET['acao'] == 'cadastrar') {*
*?>*
* <h2>Cadastro de Áreas</h2>*
* <br />*
* <div class="container"> *
* <h4>Ocorreram erros na gravação dos dados. Verifique as informações abaixo.</h4> *
* <ol> *
* <li><label for="txt_area" class="error">Informe a nova área.</label></li> *
* </ol> *
* </div> *
* <table class="form-table">*
* <tr>*
* <th>Nome da área: </th>*
* <td><input type="text" name="txt_area" id="txt_area" size="50" title="Informe a nova área." class="{validate:{required:true}}" /></td>*
* </tr>*
* <tr>*
* </table>*
* <div class="controles"><input type="submit" class="submit" name="grava" value="Salvar" /> <input type="button" class="submit" name="volta" value="Voltar" onclick="java script:history.go(-1);" /></div>*
*<?php*
}
?>
sqls.php
CODE
*<?php **if ($_POST["grava"]) {*
* $area = anti_injection(utf8($_POST["txt_area"]));*
* $sql = "INSERT INTO $tab_areas(descricao) VALUES ('$area')";*
$rs = pg_query($sql)
or die("Não foi possível executar a consulta." . $sql);
* **header("Location:?aplicativo=" . $_GET['aplicativo'] . "&subaplicativo=" . $_GET['subaplicativo'] . "&msg=1");*
*} elseif ($_POST["edita"]) {*
* $id = $_POST["txt_id"];*
* $area = anti_injection(utf8($_POST["txt_area"]));*
* $sql = "UPDATE $tab_areas SET descricao = '$area' WHERE id = $id";*
$rs = pg_query($sql)
or die("Não foi possível executar a consulta." . $sql);
* **header("Location:?aplicativo=" . $_GET['aplicativo'] . "&subaplicativo=" . $_GET['subaplicativo'] . "&msg=2");*
*} elseif ($_POST["exclui"]){*
* $itens_uni = implode(", ", $_POST["arrId"]);*
* $sql = "DELETE FROM $tab_areas WHERE id IN (" . $itens_uni . ")";*
$rs = pg_query($sql)
or die("Não foi possível excluir os itens selecionados.");
* **header("Location:?aplicativo=" . $_GET['aplicativo'] . "&subaplicativo=" . $_GET['subaplicativo'] . "&msg=3");*
}
?>
O script em si, funciona. Ele inclui, atualiza e deleta os campos do BD.
O problema está no "header("Location:...". O script me retorna a seguinte mensagem: "Warning: Cannot modify header information - headers already sent by (output started at /data/dgr/dbm/menu.php:41) in /data/dgr/dbm/aplicativos/admin/areas/sqls.php on line 14".
Já tentei utilizar o comando ob_start(); antes de cada "header", a variável "outuput_buffering" do PHP.ini está configurada com 4096.
O erro me diz que o header já foi enviado pelo arquivo menu.php na linha 41, abaixo o código do arquivo menu.php
menu.php
CODE
*<div id="painel">**<p><?php echo "Campo Bom, " . date('d/m/Y'); ?></p>*
*<p>Olá <a href="?aplicativo=admin&subaplicativo=usuarios&acao=editar&id=<?php echo $session_id ?>" title="<?php echo $session_perfil ?>"><?php echo $session_nome ?></a>, <a href="logout.php" title="Sair do sistema">Logout</a></p>*
*</div>*
*<br />*
*<div class="menus">*
* <ul id="navigation" class="filetree treeview-famfamfam">*
* <li><span class="home"><a href="./" title="Página Inicial">Home</a></span></li>*
* <?php*
* $sql_menus = "SELECT $tab_menus.descricao, $tab_menus.link, $tab_menus.secao ";*
$sql_menus .= "FROM $tab_menus ";
$sql_menus .= "LEFT JOIN $tab_secoes ON $tab_secoes.id = $tab_menus.secao ";
$sql_menus .= "WHERE exibir = 1 AND $tab_secoes.descricao = 'principal' ";
if ($session_perfil == "Usuário") {
$sql_menus .= "AND $tab_menus.perfil = 'Usuário' ";
}
$sql_menus .= "ORDER BY $tab_menus.descricao";
$resultado = pg_query($sql_menus)
or die("Não foi possível gerar a barra de menus. Entre em contato com o admistrador do sistema.");
while ($linha = pg_fetch_assoc($resultado)){
$menu = $linha["descricao"];
$mlink = $linha["link"];
$secao = $linha["secao"];
* ?>*
* <li class="closed"><span class="folder"><a href="?aplicativo=<?php echo strtolower("$mlink"); ?>"><?php echo "$menu"; ?></a></span>*
* <ul>*
* <?php*
* $sql_submenus = "SELECT $tab_menus.descricao, $tab_menus.link *
FROM $tab_menus
LEFT JOIN $tab_secoes ON $tab_secoes.id = $tab_menus.secao
WHERE exibir = 1 AND $tab_secoes.descricao = '$mlink'
ORDER BY $tab_menus.descricao";
$submenus = pg_query($sql_submenus)
or die("Não foi possível gerar a barra de submenus. Entre em contato com o admistrador do sistema." . $sql_submenus);
while ($sublinha = pg_fetch_assoc($submenus)){
$submenu = $sublinha["descricao"];
$sublink = $sublinha["link"];
* ?>*
* <li><span class="file"><a href="?aplicativo=<?php echo strtolower("$mlink"); ?>&subaplicativo=<?php echo strtolower("$sublink"); ?>"><?php echo "$submenu"; ?></a></span></li>*
* <?php } ?>*
* </ul>*
* </li>*
* <?php*
}
* ?>*
* </ul>*
*</div>*
Não sei mais o q fazer. Espero conseguir ajuda aqui.
Obrigado.
Discussão (3)
Carregando comentários...