Jump to content

Recommended Posts

Posted

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!!!! 😁

Posted

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.

Posted

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.

Posted

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>
Posted

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!

Posted

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>

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.