Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

blogfido

erro com session Cannot send session cache limiter

Recommended Posts

tenho arquivo1.php que cria a session pela primeira vez, em arquivo2.php eu uso session_start() novamente, e tudo bem! Já em arquivo3.php eu uso novamente session_start() e pego valores da session:

 

 

<!--php1--><div class='phptop'>PHP</div><div class='phpmain'><!--ephp1-->
<link href="style_images/css_php.css" rel="stylesheet" type="text/css">

<?php
session_start();

if ( !isset( $_SESSION[ "id_usuario" ] ) || !isset( $_SESSION[ "nome_usuario" ] ) ){
// Usuário não logado! Redireciona para a página de login
echo "<meta http-equiv='refresh' content='2;login.html'>";
exit();
} else{
//...
}
?>

<!--php2--></div><!--ephp2-->

 

na linda do 'if' dá esse erro:

 

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/usuario/public_html/arquivo3.php:2) in /home/usuario/public_html/arquivo3.php on line 5

 

e abaixo disso o resto abre normalmente se a condição do 'if' estiver ok.

 

o único erro é essa mensagem que aparece! como resolvo isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque você usa meta tag para redirecionar? Utilize a função própria do PHP para isso.

 

PHP

    [*]header("Location: login.html");

Compartilhar este post


Link para o post
Compartilhar em outros sites

você precisa esperar aqueles 2 segundos??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já experimentei isso, não deu em nada.

 

Colo que isso ali na linha 1

 

PHP

[*]<? <br />ob_start();<br />?>

<{POST_SNAPBACK}>

o header tava dando erro nessa página, usei uma solução alternativa que funcionou bem! Além disso o erro está em outro lugar... :D

 

Porque você usa meta tag para redirecionar? Utilize a função própria do PHP para isso.

 

PHP

[*]header("Location: login.html");

<{POST_SNAPBACK}>

 

 

 

o codigo é o seguinte:

 

PHP

[*]<?php

[*]

[*]session_start();

[*]

[*]

[*]if(!isset($_SESSION["id_usuario"]) || !isset($_SESSION["nome_usuario"]))

[*]{

[*] // Usuário não logado! Redireciona para a página de login

[*] echo "<meta http-equiv='refresh' content='2;url=http://www.meuhost.com/login.html'>";

[*] exit;

[*]}

[*]else

[*]{

[*] session_destroy();

[*]

[*]

[*] /* Short and sweet */

[*] define('WP_USE_THEMES', true);

[*]

[*]

[*] require('./wp-blog-header.php');

[*]}

[*]?>

 

 

Este é o index do wordpress que eu modifiquei pra só entrar se o usuário estiver logado.

 

Pra quem não conhece, wordpress é um sistema de blog que pode ser instalado em um servidor qualquer.

 

 

Ele dá o seguinte erro no alto da página:

 

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/usuario/public_html/wordpress/index.php:2) in /home/usuario/public_html/wordpress/index.php on line 4

 

e abaixo desta mensagem o site abre ok.

 

 

Como podem perceber a linha 4 é justamente o session_start(). Se eu coloco as linhas que estão dentro do 'else' antes dele então tudo funciona bem, porém isso acaba com o sistema de login, permitindo que entre sempre na página.

 

Alguma sugestão?

Compartilhar este post


Link para o post
Compartilhar em outros sites

DESCOBRI O ERRO!tinha uma linha em branco antes de:# <?php## session_start();### if(!isset($_SESSION["id_usuario"]) || !isset($_SESSION["nome_usuario"])).......

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi galera, aproveitando este topico. tou com o mesmo problema no seguinte script:

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/user/public_html/LRBO/default.php:9) in /home/user/public_html/LRBO/includes/verifica.php on line 2

 

 

login.php

<?php
session_start();

require "includes/comum.php";

$login = isset($_POST["login"]) ? addslashes(trim($_POST["login"])) : FALSE;

$senha = isset($_POST["senha"]) ? md5(trim($_POST["senha"])) : FALSE;

if(!$login || !$senha)
{
	echo "Deve inserir a sua password!";
	exit;
}
$SQL = "SELECT id, nome, login, senha
		FROM aut_users
		WHERE login = '" . $login . "'";
$result_id = @mysql_query($SQL) or die("Erro na BD!");
$total = @mysql_num_rows($result_id);


if($total)
{
	$dados = @mysql_fetch_array($result_id);

	if(!strcmp($senha, $dados["senha"]))
	{
		$_SESSION["id_user"]   = $dados["id"];
		$_SESSION["nome_user"] = stripslashes($dados["nome"]);
		header("Location: default.php");
		exit;
	}
	else
	{
		echo "Password inválida!";
		exit;
	}
}

else
{
	echo "O login introduzido não existe!";
	exit;
}
?>

verifica.php

<?php
session_start(); 

if(!isset($_SESSION["id_user"]) || !isset($_SESSION["nome_user"]))
{
	header("Location: index.php");
	exit;
}
?>

default.php

<?php
require "includes/verifica.php";
require "includes/comum.php";
require "includes/_topo.php";
?> 
<div id="quadro">
	
  <div id="conteudo">
	<h5>Olá <? echo $_SESSION["nome_user"] ?> </br>
.....

alguem sabe como resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sessão está sendo iniciada duas vezes: em login.php e em verifica.php.

 

Para saber se a sessào foi iniciada:

PHP
if (!isset($_SESSION))

{

    session_start();

}

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta' dando o mesmo erro

 

colocando no verifica.php

 

<?php
if (!isset($_SESSION))
{
	session_start();
}

if(!isset($_SESSION["id_user"]) || !isset($_SESSION["nome_user"]))
{
	header("Location: index.php");
	exit;
}
?>

login.php

<?php
if (!isset($_SESSION))
{
	session_start();
}

require "includes/comum.php";
.........

:( q to fazendo mal?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigos

Por favor alguém conseguiu resolver esse problema de Cannot send session cache limiter ?

Já tentei todos os métodos mencionados aqui, mas não consegui.

Por favor me ajudem!!!

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigos

Por favor alguém conseguiu resolver esse problema de Cannot send session cache limiter ?

Já tentei todos os métodos mencionados aqui, mas não consegui.

Por favor me ajudem!!!

abraço

Comigo aconteceu do arquivo ter um caracter inicial que, por algum motivo esquisito, o editor não conseguia apagar. E Então o session_start() achava que já tinha algum dado de cabeçalho na página...

 

A Solução foi criar outro arquivo, abrir php e dar o session_start().... e então colar o html/php do arquivo antigo....

 

aqui resolveu....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe reviver este tópico mas tenho que fazer minha contribuição.

Tive o mesmo problema resolvi da maneira que o Alberane postou por ultimo.

 

Uso Dreamweaver CS3 e aconteceu este problema tanto em minha maquina (http://localhost) como em meu host, ambos com php5.

 

Vai se saber porque disto!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, estava com este mesmo problema, e no meu caso oque resolveu foi apenas uma correcao nas linhas do meu código.

ao ocorrer o erro, o meu código estava assim:

 

| <? session_start(); ?>

 

após eu fazer a seguinte mudança, a pagina parou de dar o erro:

 

|<?

|session_start();

|?>

 

IMPORTANTE: o caracter "|" quer dizer começo da linha,

 

nao entendi o porque deste erro, mas resolveu o meu problema, nas minhas pesquisas, todo o material que eu encontrava dizia respeito a erro sintaxe, algumas pessoas me aconselharam a nao usar o bloco de notas, e sim um editor expecifico ou mesmo o note pad 2, usei o DreamWeaver msm. Pois falaram que apenas um "espaço" no lugar errado já causa este erro.

espero que te ajude tbm.

 

abrass.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi amigos, num poderia ficar sem mensionar, ocorreu o mesmo comigo:

 

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/usuario/public_html/arquivo3.php:2) in /home/usuario/public_html/arquivo3.php on line 5

 

Solução: selecionei todo o codigo copiei, e abri o bloco de notas e colei e salvei o arquivo com o mesmo nome sobrescrevendo-o, enviei novamente para o servidor e funcionou.

 

Detalhe: estava usando dreamweaver cs3, e tinha verificado se havia espaços em branco antes ou depois das tags php,num sei porque mas criou um conflito, que foi resolvido.

 

Espero q tenha ajudado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom seguindo as orientações do Deivid R. Nogueira , o error de chace na hora de logar funciono eu utilizo seguinte codigo

 

pagina se o cara logar certinho

 

<?php
session_start();
if(!isset($_SESSION['usuario']) and !isset($_SESSION['senha'])){
header("Location: index.php");
exit;
}
?> 

 

tem uma verificação. beleza

 

no logar.php que é o arquivo que verifica tudo se ta certo ou errado

<?php
session_start();
$conexao = mysql_connect("localhost", "kevencom_zara", "hbahba10");
$db = mysql_select_db("kevencom_zara");
$usuario = $_POST['usuario'];
$senha = $_POST['senha'];

$sql = mysql_query("SELECT * FROM usuarios WHERE usuario = '$usuario' and senha = '$senha'")
          or die(mysql_error());
if(mysql_num_rows($sql)==true){
while($pega = mysql_fetch_array($sql)){

	$_SESSION['usuario'] = $pega['usuario'];
	$_SESSION['senha'] = $pega['senha'];

	header("Location: ../logado.php");


	}// loop dos uaurios


}else{
	echo "<meta http-equiv='refresh' content='0; URL=../index.php'>
	      <script type='text/javascript'>alert('Usuario ou senha invalidos , tente de novo!')</script>
	      ";

	}

?>

 

no logar.php dava erro do session la , coloquei bloco de notas fiz aquela paradinha deu certo , agora no logado.php , da mesmo error logo no cabeçalho como painel ta fatiado no php o header.php que vai a verificação aparece o error la e mandando no bloco de notas nao soluciona "/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.