Jump to content
Sign in to follow this  
cryteck

Erro Header PHP

Recommended Posts

cryteck

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!!!! :cheesygrin:

Share this post


Link to post
Share on other sites
cryteck

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.

Share this post


Link to post
Share on other sites
pedrotuga

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.

Share this post


Link to post
Share on other sites
cryteck

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>

Share this post


Link to post
Share on other sites
djthyrax

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.


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
cryteck

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>

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • 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.