blogfido 0 Denunciar post Postado Junho 19, 2005 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
Algalord 0 Denunciar post Postado Junho 19, 2005 Colo que isso ali na linha 1 PHP [*]<? [*]ob_start(); [*]?> Compartilhar este post Link para o post Compartilhar em outros sites
Douglas 6 Denunciar post Postado Junho 19, 2005 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
Mário Monteiro 179 Denunciar post Postado Junho 22, 2005 você precisa esperar aqueles 2 segundos?? Compartilhar este post Link para o post Compartilhar em outros sites
_ nEoN _ 0 Denunciar post Postado Junho 23, 2005 acho que nao tem como colocar tempo no header do php... =/ http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif NeoN Compartilhar este post Link para o post Compartilhar em outros sites
blogfido 0 Denunciar post Postado Junho 23, 2005 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
blogfido 0 Denunciar post Postado Junho 23, 2005 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
MAPSantos 0 Denunciar post Postado Dezembro 7, 2007 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
Beraldo 864 Denunciar post Postado Dezembro 7, 2007 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
MAPSantos 0 Denunciar post Postado Dezembro 7, 2007 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
Antonio Marcos 0 Denunciar post Postado Março 7, 2008 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
Alberane 0 Denunciar post Postado Março 16, 2008 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
HaDDeR 0 Denunciar post Postado Outubro 24, 2008 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
Dloffler 0 Denunciar post Postado Julho 3, 2009 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
Deivid R. Nogueira 0 Denunciar post Postado Novembro 18, 2009 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
keven jesus 0 Denunciar post Postado Dezembro 18, 2011 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
olacerda 0 Denunciar post Postado Junho 18, 2012 Tive o mesmo problema. Fiz o que foi indicou e funcionou perfeitamente. Colo que isso ali na linha 1 <? ob_start(); ?> Thanks! Compartilhar este post Link para o post Compartilhar em outros sites