Hijack Posted September 15, 2013 at 09:20 AM Report #524609 Posted September 15, 2013 at 09:20 AM (edited) Bom dia, estou a enfrentar um problema que não estou a ser capaz de corrigir. Até agora tenho andado a trabalhar no meu localhost mas agora decidi testar tudo online e deparei-me com um problema que não ocorre no meu servidor local. O problema é na inserção de dados ou na exclusão dos mesmos. Após introduzir os dados no formulário novoartigo.php e clicar em submit, ele processa o registo mas depois permanece no arquivo processa_artigo.php. No caso da exclusão ele permanece também no ficheiro da exclusão quando na realidade, após ter concluído o registo ou a exclusão ele deveria redireccionar para a pagina novoartigo.php. Aqui estão os ficheiros: Ficheiro novoartigo.php <?php include('sistema/banco.php'); // A sessão precisa ser iniciada em cada página diferente if (!isset($_SESSION)) session_start(); $nivel_necessario = 1; $nivel_modo = 1; // Verifica se não há a variável da sessão que identifica o usuário if (!isset($_SESSION['UsuarioID']) OR ($_SESSION['UsuarioNivel'] < $nivel_necessario) OR ($_SESSION['UsuarioModo'] < $nivel_modo)) { // Destrói a sessão por segurança session_destroy(); // Redireciona o visitante de volta pro login header("Location: ../login.php"); exit; } ?> <?php include 'sistema/core/head.php'; ?> <body> <?php include 'includes/usertopbar.php'; ?> <!-- sidebar --> <?php include'includes/asidesideb.php'; ?> <!-- fim da sidebar --> <section id="main" class="column"> <?php @$emsg = $_GET['emsg']; switch ($emsg): case 1: echo '<h4 class="alert_success">O Artigo foi publicado com sucesso.</h4>'; break; case 2: echo '<h4 class="alert_warning">Todos os campos são obrigatórios.</h4>'; break; case 3: echo '<h4 class="alert_warning">Tem de atribuir uma categoria.</h4>'; break; case 4: echo '<h4 class="alert_warning">Não foi possivel criar o artigo, contacte o técnico</h4>'; break; case 5: echo '<h4 class="alert_warning">Falha ao carregar imagém, contacte o técnico</h4>'; break; default: echo '<h4 class="alert_info">Publique um novo artigo!</h4>'; break; endswitch; ?> <div id="caixa"><!-- Inicio da caixa --> <article class="module width_3_quarter"> <header><h3>Publicar Novo Artigo </h3></header> <form enctype="multipart/form-data" action="sistema/processa_artigo.php" method="POST" name="new_post"> <div class="module_content"> <table border="0" cellpadding="7" cellspacing="5" class=""> <tr> <td><label>Titulo:</label><input type="text" name="titulo"></td> </tr> <tr> <td><label>Descrição:</label><input type="text" name="descricao"></td> </tr> <tr> <td><label>Imagem</label><input height="50px" class="alt_btn" name="imagem" type="file" size="50" value="" maxlength="255" title="imagem"></td> </tr> <tr> <td></td> </tr> <tr> <td><label>Conteudo</label></td> </tr> <tr> <td><textarea rows="12" name="msg" wrap="physical" id="elm1"></textarea></td> </tr> <td style="width:25%; float:left; margin-right: 3%;"> <!-- to make two field float next to one another, adjust values accordingly --> <label>Categoria</label> <?php $sql = "SELECT id_categoria_noticia, categoria FROM tbl_categorias_noticias;"; $query = mysql_query($sql); ?> <select name="id_categoria_noticia" style="width:92%;"> <option selected>Selecione a Categoria</option> <?php while ($resultado = mysql_fetch_assoc($query)){ echo "<option value=". $resultado['id_categoria_noticia'] .">". $resultado['categoria'] ."</option>"; } ?> </select> </td> <td style="width:25%; float:right;"> <!-- to make two field float next to one another, adjust values accordingly --> <label>Tags</label> <input type="text" style="width:92%;"> </td> </tr> </table> </div> <footer> <div class="submit_link"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td> <select name="status"> <option value="0">Rascunho</option> <option value="1">Publicar</option> </select> </td> <td> <input type="submit" value="Publicar" class="alt_btn"> <input type="reset" value="Limpar"> </td> </tr> </table> </div> </footer> </form> </article> <!-- end of post new article --> <div class="clear"></div> </div><!-- Fim da caixa --> <?php include('sistema/core/footer.php'); ?> Ficheiro processa_artigo.php <?php require ('banco.php'); include('funcoes.php'); // A sessão precisa ser iniciada em cada página diferente if (!isset($_SESSION)) session_start(); $nivel_necessario = 1; $nivel_modo = 1; // Verifica se não há a variável da sessão que identifica o usuário if (!isset($_SESSION['UsuarioID']) OR ($_SESSION['UsuarioNivel'] < $nivel_necessario) OR ($_SESSION['UsuarioModo'] < $nivel_modo)) { // Destrói a sessão por segurança session_destroy(); // Redireciona o visitante de volta pro login header("Location:../login.php"); exit; } // Executar a inserção do novo artigo, quando é clicado o botão de submissão. if (!empty($_POST) AND (empty($_POST['titulo']) OR empty($_POST['msg']) OR empty($_POST['descricao']))) { header("Location:../novoartigo.php?emsg=2"); exit; } // Colocar condição para categoria else if ($_POST['id_categoria_noticia'] == 0) { // Imprime mensagem de erro header("Location:../novoartigo.php?emsg=3"); exit; } $id_categoria_noticia = limpacampos($_POST['id_categoria_noticia']); $titulo = limpacampos($_POST['titulo']); $descricao = limpacampos($_POST['descricao']); //$destaque = limpacampos($_POST['destaque']); $status = limpacampos($_POST['status']); $msg = $_POST['msg']; $imagem = ($_FILES['imagem']['name']); $pasta = "../imgnoticias/"; $pasta = $pasta . basename( $_FILES['imagem']['name']); $sql = "INSERT INTO tbl_noticias(id_categoria_noticia, titulo, descricao, imagem, status, msg, data) VALUES ('$id_categoria_noticia', '$titulo', '$descricao', '$imagem', '$status', '$msg', NOW())"; $query= mysql_query($sql); if(move_uploaded_file($_FILES['imagem']['tmp_name'], $pasta)) { echo "A imagem ". basename( $_FILES['uploadedfile']['name']). " foi carregada."; echo "<p><center><img src=\"images/$imagem\"></p></center>"; } else { header ("Location:../novoartigo.php?emsg=5"); } if ($query == 1) { header("Location:../index.php?emsg=1"); exit; }else{ header("Location:../novoartigo.php?emsg=4"); exit; } ?> Ficheiro excluir_artigo.php <?php require ('banco.php'); require_once('funcoes.php'); // A sessão precisa ser iniciada em cada página diferente if (!isset($_SESSION)) session_start(); // Verifica se não há a variável da sessão que identifica o usuário if (!isset($_SESSION['UsuarioID']) OR ($_SESSION['UsuarioNivel'] == FALSE) OR ($_SESSION['UsuarioEstado'] =='N')) { // Destrói a sessão por segurança session_destroy(); // Redireciona o visitante de volta pro login header("Location:../login.php"); exit; } $idartigo = $_GET['id_noticia']; //Atualiza a informação na base de dados $sql = "DELETE FROM tbl_noticias WHERE id_noticia='".$idartigo."';"; $query= mysql_query($sql); header("Location: ../novoartigo.php"); exit; $query= mysql_query($sql); if ($query != 0) { header("Location:../index.php?emsg=3"); exit; }else{ header("Location:../index.php?emsg=4"); exit; } mysql_close($ligacao); ?> Porque é que ao concluir os registos ou a exclusão dos mesmos, não me redirecciona para a pagina novoartigo.php e permanece no processa_artigo.php ou excluir_artigo.php? Os dados são inseridos ou excluídos, conforme o que desejar fazer, mas não redirecciona para a pagina pretendida. Alguém me pode explicar o que estou a fazer de errado? No wampp está tudo funcionar na perfeição mas online dá este problema. É a primeira vez que trabalho online. Obrigado a todos Edited September 15, 2013 at 09:21 AM by Hijack
HappyHippyHippo Posted September 15, 2013 at 09:50 AM Report #524610 Posted September 15, 2013 at 09:50 AM o que aparece ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Hijack Posted September 15, 2013 at 10:23 AM Author Report #524611 Posted September 15, 2013 at 10:23 AM Boa dia HappyHippyHippo, obrigado por ter respondido. Nada, a pagina aparece em branco. Permanece no ficheiro processa_artigo.php após executar o registo, como este ficheiro é apenas php então a tela fica em branco, mas deveria redireccionar para o novoartigo.php após submeter o registo.
HappyHippyHippo Posted September 15, 2013 at 10:42 AM Report #524612 Posted September 15, 2013 at 10:42 AM o que deverá estar a acontecer é que o PHP, por ser um servidor online e, se presumir, ser de produção, não está a apresentar as mensagens de erro. verifica no log de erros do servidor as últimas entradas por alguma indicação do erro que está a ocorrer. caso não saibas ver essa informação, "liga" o output dos erros com as instruções à cabeça do ficheiro que queres verificar (lembra-te de tirar depois de estar tudo pronto porque ninguem quer ver mensagens de erro) error_reporting(E_ALL); ini_set("display_errors", 1); IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Hijack Posted September 15, 2013 at 10:53 AM Author Report #524613 Posted September 15, 2013 at 10:53 AM (edited) Ok, vou fazer o que disseste e já digo alguma coisa. Obrigado Já experimentei e continua na mesma. Ele grava e apaga os registos normalmente, apenas não redirecciona para a pagina pretendida após executar as operações. Edited September 15, 2013 at 10:52 AM by Hijack
HappyHippyHippo Posted September 15, 2013 at 10:53 AM Report #524614 Posted September 15, 2013 at 10:53 AM verifica no log de erros do servidor as últimas entradas por alguma indicação do erro que está a ocorrer. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Hijack Posted September 15, 2013 at 11:09 AM Author Report #524617 Posted September 15, 2013 at 11:09 AM As unicas entradas de erros que o log apresenta são estas: error_log ASCII text [15-Sep-2013 09:09:37 Europe/Lisbon] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/meusite/public_html/admin/calendario.php:31) in /home/meusite/public_html/admin/sistema/core/head.php on line 6 [15-Sep-2013 09:10:12 Europe/Lisbon] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/meusite/public_html/admin/calendario.php:31) in /home/meusite/public_html/admin/sistema/core/head.php on line 6 [15-Sep-2013 09:14:02 Europe/Lisbon] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/meusite/public_html/admin/sistema/core/head.php:5) in /home/meusite/public_html/admin/sistema/core/head.php on line 6 [15-Sep-2013 09:15:23 Europe/Lisbon] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/meusite/public_html/admin/sistema/core/head.php:4) in /home/meusite/public_html/admin/sistema/core/head.php on line 5 [15-Sep-2013 09:16:24 Europe/Lisbon] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/meusite/public_html/admin/sistema/core/head.php:4) in /home/meusite/public_html/admin/sistema/core/head.php on line 4 [15-Sep-2013 09:16:28 Europe/Lisbon] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/meusite/public_html/admin/sistema/core/head.php:4) in /home/meusite/public_html/admin/sistema/core/head.php on line 4 [15-Sep-2013 09:16:34 Europe/Lisbon] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/meusite/public_html/admin/sistema/core/head.php:4) in /home/meusite/public_html/admin/sistema/core/head.php on line 4 [15-Sep-2013 09:16:43 Europe/Lisbon] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/meusite/public_html/admin/sistema/core/head.php:4) in /home/meusite/public_html/admin/sistema/core/head.php on line 4 [15-Sep-2013 09:16:46 Europe/Lisbon] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/meusite/public_html/admin/sistema/core/head.php:4) in /home/meusite/public_html/admin/sistema/core/head.php on line 4 [15-Sep-2013 09:16:49 Europe/Lisbon] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/meusite/public_html/admin/sistema/core/head.php:4) in /home/meusite/public_html/admin/sistema/core/head.php on line 4 [15-Sep-2013 09:17:17 Europe/Lisbon] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/meusite/public_html/admin/sistema/core/head.php:4) in /home/meusite/public_html/admin/sistema/core/head.php on line 4 [15-Sep-2013 09:23:22 Europe/Lisbon] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/meusite/public_html/admin/sistema/core/head.php:4) in /home/meusite/public_html/admin/sistema/core/head.php on line 4 [15-Sep-2013 09:23:24 Europe/Lisbon] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/meusite/public_html/admin/sistema/core/head.php:4) in /home/meusite/public_html/admin/sistema/core/head.php on line 4 [15-Sep-2013 09:23:24 Europe/Lisbon] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/meusite/public_html/admin/sistema/core/head.php:4) in /home/meusite/public_html/admin/sistema/core/head.php on line 4 e já foram corrigidas.
yoda Posted September 15, 2013 at 12:48 PM Report #524624 Posted September 15, 2013 at 12:48 PM Na função header, é obrigatório ter um espaço quando usas o Location (se bem me lembro) : header('Location: index.php'); before you post, what have you tried? - http://filipematias.info sense, purpose, direction
Hijack Posted September 15, 2013 at 01:03 PM Author Report #524626 Posted September 15, 2013 at 01:03 PM Boa tarde yoda, obrigado por ter respondido. Também já estive a corrigir esses erros, mas continua na mesma.
miggf Posted September 15, 2013 at 01:23 PM Report #524627 Posted September 15, 2013 at 01:23 PM (edited) tenta usar isto echo "<meta http-equiv='refresh' content='0; url=pagina.php'>"; exit(); onde usas o header Edited September 15, 2013 at 01:24 PM by miggf
yoda Posted September 15, 2013 at 02:34 PM Report #524630 Posted September 15, 2013 at 02:34 PM Experimenta mudar os caminhos dos redireccionamentos, e usar um caminho mais seguro. before you post, what have you tried? - http://filipematias.info sense, purpose, direction
Hijack Posted September 15, 2013 at 07:34 PM Author Report #524646 Posted September 15, 2013 at 07:34 PM Experimenta mudar os caminhos dos redireccionamentos, e usar um caminho mais seguro. Um caminho mais seguro, como assim?
yoda Posted September 15, 2013 at 07:50 PM Report #524647 Posted September 15, 2013 at 07:50 PM Em vez de andares para trás nas pastas, mete o caminho da pasta que queres abrir. before you post, what have you tried? - http://filipematias.info sense, purpose, direction
Lfscoutinho Posted September 16, 2013 at 12:39 PM Report #524717 Posted September 16, 2013 at 12:39 PM Boas, O problema é que estás a tentar a mudar os cabeçalhos depois de já teres imprimido algo.
Hijack Posted September 25, 2013 at 06:58 PM Author Report #525982 Posted September 25, 2013 at 06:58 PM Boa tarde, desculpem não ter respondido à mais tempo mas não foi possível vir antes. Antes de mais, obrigado a todos os que me ajudaram, resolvi usar a opção que o miggf sugeriu. Obrigado a todos uma vez mais.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now