Jump to content
Hijack

[Resolvido] Erro em redirecionamento

Recommended Posts

Hijack

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 by Hijack

Share this post


Link to post
Share on other sites
Hijack

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.

Share this post


Link to post
Share on other sites
HappyHippyHippo

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

Share this post


Link to post
Share on other sites
Hijack

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 by Hijack

Share this post


Link to post
Share on other sites
HappyHippyHippo

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

Share this post


Link to post
Share on other sites
Hijack

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.

Edited by Rui Carlos
Removidas imagens desnecessárias

Share this post


Link to post
Share on other sites
Hijack

Boa tarde yoda, obrigado por ter respondido.

Também já estive a corrigir esses erros, mas continua na mesma.

Share this post


Link to post
Share on other sites
miggf

tenta usar isto

echo "<meta http-equiv='refresh' content='0; url=pagina.php'>"; exit();

onde usas o header

Edited by miggf

Share this post


Link to post
Share on other sites
Hijack

Experimenta mudar os caminhos dos redireccionamentos, e usar um caminho mais seguro.

Um caminho mais seguro, como assim?

Share this post


Link to post
Share on other sites
Lfscoutinho

Boas,

O problema é que estás a tentar a mudar os cabeçalhos depois de já teres imprimido algo.

Share this post


Link to post
Share on other sites
Hijack

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.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.