• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

cryteck

Erro Header PHP

7 mensagens neste tópico

Boa tarde, eu criei um sistema de login por sessões e um livro de visitas em php.

Na página do livro de visitas tem um link para inserir mensagens que vai para a pagina inserir_msg.php e o que eu queria é que os utilizadores só acedessem a essa página depois de fazer o login.

Para isso no sistema de login criei uma página de nome restrito.php com o seguinte código:

<?php ob_start(); ?>
<?php
session_start();
if (isset($_SESSION['login']) && isset($_SESSION['password'])){
   $login_utilizador = $_SESSION['login'];
}
else { 
   header("Location:login.php");
   exit();
}
?>
<?php ob_end_flush(); ?>

Na página inserir_msg.php pos uma include("restrito.php"), só que dá-me um erro:

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\site_login\inserir_msg.php:7) in C:\xampp\htdocs\site_login\restrito.php on line 7.

O que se passará ajudem-me..... :wallbash:

Abraços!!!! :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas eu já pos as funções <?php ob_start(); ?> e <?php ob_end_flush(); ?> na página restrito.php para activar o buffer mas agora dá-me 2 erros:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\site_login\inserir_msg.php:1) in C:\xampp\htdocs\site_login\restrito.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\site_login\inserir_msg.php:1) in C:\xampp\htdocs\site_login\restrito.php on line 8

Podias verfificar a página restrito.php haver se tem alguma coisa mal.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens algum output. Não podes ter output absolutamente nenhum antes de usares alguma função que precise de mudar os headers, como é o caso da session_start().

Tens boa solução, muda o session_start() para o início do script.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fogo não estou mesmo a conseguir, a causa dos erros que estão a dar não terá haver com a página

inserir_msg.php

<?php include("restrito.php");?>
<!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=utf-8" />
<link rel="stylesheet" href="fich_menus/cbcscbmenus.css" type="text/css" />
<title>Bombeiros Voluntários da Lixa </title>
<link href="estilo.css" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" href="imagens/favicon.ico">
<!-- Início da função de contagem de caracteres -->
<script language="javascript">
function ContaCaracteres(){
   intCaracteres = 400 - document.formulario.mensagem.value.length;
   if (intCaracteres > 0) {
      document.formulario.caracteres.value = intCaracteres;
      return true;
   }
   else {
      document.formulario.caracteres.value = 0;
      document.formulario.mensagem.value = document.formulario.mensagem.value.substr(0,400)
      return false;
   }

}
</script>
<!-- Fim da função de contagem de caracteres -->

</head>

<body>
<div id="global"> 
      <div id="topo"> <? include ("include/topo/topo.php")?> </div>
      <div id="imagem_principal"></div>
      <div id="menus_horizontais">    
      <?php  include("menus.php") ?>
      
      
      
      </div> 
      
      <div id="conteudo">  <?php
include("config.php");


if (isset($_POST['utilizador'])){

$utilizador =utf8_decode($_POST['utilizador']);
$destinatario =utf8_decode($_POST['destinatario']);
$mensagem =utf8_decode($_POST['mensagem']);

if ($_POST['utilizador'] == "" || $_POST['destinatario'] == "")
{
echo "Por favor preencha todos os campos corretamente.";
echo "<br>"; 
}

elseif ($_POST['mensagem'] == ""){
echo  "Por favor introduza a mensagem.";
echo "<br>"; 
}

else
{
$sql_inclu = "INSERT INTO livro(utilizador ,destinatario ,mensagem,data,hora) VALUES
('$utilizador', '$destinatario', '$mensagem', NOW(), NOW())";
$exe_inclu = mysql_query($sql_inclu) or die (mysql_error());



echo "Mensagem Inserida com sucesso";

}
}
?>

<form action="inserir_msg.php" method="post" name="formulario" id="formulario">
  <table width="52%" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td colspan="2">  <div align="center"> <a href="mensagens.php"> Ver Mensagens </a> </div> </td>
</tr>
<tr>
      <td width="14%"> <br><br>Utilizador</td>
      <td width="85%"><p> 
        </p>
        <p>
          <input name="utilizador" id="utilizador" style="border: 1px solid rgb(153, 153, 153); background-color: #eeeeee; color:     black;" type="text">
      <td width="1%"> </td>
    </tr>
    <tr>
      <td>Para:</td>
      <td><select name="destinatario" id="destinatario">
        <option value="Presidente"> Presidente </option>
        <option value="Comandante"> Comandante</option>
        <option value="Bombeiros"> Bombeiros </option>
        <option value="Associação">Associação </option>
        <option value="Todos"> Todos </option>
      </select></td>
    </tr>
    <tr>
      <td valign="top"><p></p>
      <p>Mensagem:</p></td>
      <td height="201"><p>
        <textarea name="mensagem" cols="47" rows="10" style="border: 1px solid rgb(153, 153, 153); background-color:                       #eeeeee; color: black;" id="mensagem" onKeyUp='ContaCaracteres();'></textarea>
      </p>
      <p>Ainda restam
        <input name="caracteres" type="text"  value="400" size="3" maxlength="3" readonly="readonly">
caracteres. </p></td>
    </tr>
    <tr>
      <td colspan="2">Adiccionar Smiles <br>
      <?
	include ("include/smileys/smileys.php");
	?></td>
    </tr>
   <tr>
   <td colspan="2">
    <div align="center"> 
      <input type="reset" name="reset" value="Limpar"> 
      <input type="submit" value="Enviar" name="enviar" id="enviar"> </div>
   </td>
   </tr>
</table>
</form>
  <? ob_end_flush(); ?>
  </div>
  <div id="lateral">
       <?php  include("include/relogio/relogio.php") ?> 
       <?php  include("include/temperatura/temperatura.php") ?> 
       <?php  include("include/votacao/votos.php") ?>
  </div>
   
</div>

<div id="fundo"> <?php  include("include/fundo/fundo.php") ?>  </div>
<br> <br>
</body>
</html>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\site_login\inserir_msg.php:1) in C:\xampp\htdocs\site_login\restrito.php on line 3

Na linha 1 do inserir_msg.php tens qualquer coisa antes do <?php.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Na pagina editar_msg.php tenho o seguinte codigo

<?php require("restrito.php")?>
<!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=utf-8" />
<link rel="stylesheet" href="fich_menus/cbcscbmenus.css" type="text/css" />
<title>Bombeiros Voluntários da Lixa </title>
<link href="estilo.css" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" href="imagens/favicon.ico">
<!-- Início da função de contagem de caracteres -->
<script language="javascript">
function ContaCaracteres(){
   intCaracteres = 400 - document.formulario.mensagem.value.length;
   if (intCaracteres > 0) {
      document.formulario.caracteres.value = intCaracteres;
      return true;
   }
   else {
      document.formulario.caracteres.value = 0;
      document.formulario.mensagem.value = document.formulario.mensagem.value.substr(0,400)
      return false;
   }

}
</script>
<!-- Fim da função de contagem de caracteres -->

</head>

<body>
<div id="global"> 
      <div id="topo"> <? include ("include/topo/topo.php")?> </div>
      <div id="imagem_principal"></div>
      <div id="menus_horizontais">    
      <?php  include("menus.php") ?>
      
      
      
      </div> 
      
      <div id="conteudo">  <?
include("config.php");


if (isset($_POST['utilizador'])){

$utilizador =utf8_decode($_POST['utilizador']);
$destinatario =utf8_decode($_POST['destinatario']);
$mensagem =utf8_decode($_POST['mensagem']);

if ($_POST['utilizador'] == "" || $_POST['destinatario'] == "")
{
echo "Por favor preencha todos os campos corretamente.";
echo "<br>"; 
}

elseif ($_POST['mensagem'] == ""){
echo  "Por favor introduza a mensagem.";
echo "<br>"; 
}

else
{
$sql_inclu = "INSERT INTO livro(utilizador ,destinatario ,mensagem,data,hora) VALUES
('$utilizador', '$destinatario', '$mensagem', NOW(), NOW())";
$exe_inclu = mysql_query($sql_inclu) or die (mysql_error());



echo "Mensagem Inserida com sucesso";

}
}
?>

<form action="inserir_msg.php" method="post" name="formulario" id="formulario">
  <table width="52%" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td colspan="2">  <div align="center"> <a href="mensagens.php"> Ver Mensagens </a> </div> </td>
</tr>
<tr>
      <td width="14%"> <br><br>Utilizador</td>
      <td width="85%"><p> 
        </p>
        <p>
          <input name="utilizador" id="utilizador" style="border: 1px solid rgb(153, 153, 153); background-color: #eeeeee; color:     black;" type="text">
      <td width="1%"> </td>
    </tr>
    <tr>
      <td>Para:</td>
      <td><select name="destinatario" id="destinatario">
        <option value="Presidente"> Presidente </option>
        <option value="Comandante"> Comandante</option>
        <option value="Bombeiros"> Bombeiros </option>
        <option value="Associação">Associação </option>
        <option value="Todos"> Todos </option>
      </select></td>
    </tr>
    <tr>
      <td valign="top"><p></p>
      <p>Mensagem:</p></td>
      <td height="201"><p>
        <textarea name="mensagem" cols="47" rows="10" style="border: 1px solid rgb(153, 153, 153); background-color:                       #eeeeee; color: black;" id="mensagem" onKeyUp='ContaCaracteres();'></textarea>
      </p>
      <p>Ainda restam
        <input name="caracteres" type="text"  value="400" size="3" maxlength="3" readonly="readonly">
caracteres. </p></td>
    </tr>
    <tr>
      <td colspan="2">Adiccionar Smiles <br>
      <?
	include ("include/smileys/smileys.php");
	?></td>
    </tr>
   <tr>
   <td colspan="2">
    <div align="center"> 
      <input type="reset" name="reset" value="Limpar"> 
      <input type="submit" value="Enviar" name="enviar" id="enviar"> </div>
   </td>
   </tr>
</table>
</form>
  </div>
  <div id="lateral">
       <?php  include("include/relogio/relogio.php") ?> 
       <?php  include("include/temperatura/temperatura.php") ?> 
       <?php  include("include/votacao/votos.php") ?>
  </div>
   
</div>

<div id="fundo"> <?php  include("include/fundo/fundo.php") ?>  </div>
<br> <br>
</body>
</html>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora