Ir para conteúdo

Arquivado

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

studdiox

Session_Start Mensagens de erro mas segue funcionando, editando &#33

Recommended Posts

E aee galera .... me deparei com um problema estranho ... tenho um sistema e apliquei em uma nova hospedagem ... na hospedagem antiga roda liso sem erros .... na nova ao querer logar no painel de adm de cara ja aparece a mensagem

 

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/www/site/log-admin.php:17) in /home/www/site/log-admin.php on line 19

 

blz olhando o cod da pagina indicada log-admin.php abaixo seria a parte ja de incio da session_start correto ?

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>: : : PAINEL DE ADMINISTRACAO DO WEBSITE : : :</title>
<style type="text/css">
<!--
body, td, th { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: #FFFFFF; }
body { background-color: #000000; }
a:link { color: #000000; text-decoration: none; }
a:visited { color: #000000; text-decoration: none; }
a:hover { color: #000000; text-decoration: none; }
a:active { color: #000000; text-decoration: none; }
-->
</style>
</head>
<body>
	<?php
    session_name("USER1,USER2");
    session_start();
    session_destroy();
    
    if($_GET['login'] == "falhou") {
     print $_GET['causa'];
    }
    ?>

<form name="form1" method="post" action="loga.php?acao=logar">


  <div align="center">
    <p> </p>
    <p>Painel de Acesso <br>
    </p>
  </div>


  <table width="338" border="0" align="center" cellpadding="4" cellspacing="2">
    <tr>
      <td width="59" bordercolor="#333333" background="images/barramenu.jpg" bgcolor="#333333">NOME
        : </td>
      <td width="239" bordercolor="#333333" background="images/barramenu.jpg" bgcolor="#333333">
        <label>
        <input name="nome" type="text" id="nome" size="35">
        </label>
      </td>
    </tr>
    <tr>
      <td bordercolor="#333333" background="images/barramenu.jpg" bgcolor="#333333">SENHA
        : </td>
      <td bordercolor="#333333" background="images/barramenu.jpg" bgcolor="#333333">
        <label>
        <input name="pwd" type="password" id="pwd" size="35">
        </label>
      </td>
    </tr>
    <tr>
      <td colspan="2" bordercolor="#333333" bgcolor="#333333">
        <div align="center">
          <label>
          <input type="submit" name="Submit" value="ENTRAR">
          </label>
          <div align="right"></div>
        </div>
        <div align="right"></div>
      </td>
    </tr>
  </table>
  <div align="center"><br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <label> </label>
    <br>
  </div>
</form>
</body>
</html>

Blz o formulario envia para a pagina loga.php abaixo aqui aparece outro erro pois mesmo com um erro na primeira pagina ele loga e deixa editar aparecendo a seguinte mensagem já mencionando o arquivo loga.php na linha 3 e o erro que diz linha 93 da pagina admin.php é um <? require("loga.php"); ?>

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/www/site/admin.php:93) in /home/www/site/loga.php on line 3

 

<?php
session_name("USER1,USER2");
session_start();

if($acao == "logar") {
   $conn = mysql_connect("mysql.site.com.br","user","senha"); 
   $banco = mysql_select_db("bancodedados"); 

   
   $nome = $_POST['nome'];
   $q_user = mysql_query("SELECT * FROM sis_login WHERE login='$nome'");

   if(mysql_num_rows($q_user) == 1) {
   
       $query = mysql_query("SELECT * FROM sis_login WHERE login='$nome'");
       $dados = mysql_fetch_array($query);
       if($_POST['pwd'] == $dados['senha']) {
           session_register("nome");
           header("Location: admin.php");
           exit;
    }
    // Senha inválida
    else
    {
    echo("<script>");
	echo("alert('Senha Inválida !!');");
	echo("document.location='index.php';");
	echo("</script>");
    }
}
// Login inválido
else
{
    echo("<script>");
	echo("alert('Login Inválido !!');");
	echo("document.location='index.php';");
	echo("</script>");
}
}
//agora a parte que verifica se o login já foi feito
if(!session_is_registered("nome")) {
    // Usuário não logado! Redireciona para a página de login
	echo("<script>");
	echo("alert('Acesso Negado !!');");
	echo("document.location='index.php';");
	echo("</script>");
}
?>

Ai vem a duvida no session ... ele pega o usuario passa para o painel admin.php deixa editar mas continua exibindo a mensagem

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /www/site/verifica_alteracoes.php:17) in /home/www/site/loga.php on line 3

 

 

 

Se alguem tiver uma solução ou ja passou por isso e puder dar uma força eu agradeço muito

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse erro é um dos mais batidos, bastaria você pesquisar por 10 segundos aqui mesmo no fórum e já encontraria a solução: session_start() deve estar ANTES de qualquer saída para o navegador (html, echo, etc).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok mas ele já não começa na primeira pagina

 

 

<?php
session_name
("USER1,USER2");
session_start();
session_destroy();

if($_GET['login'] == "falhou") {
print $_GET['causa'];
}
?>

 

já esta ali não ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou tentar explicar um pouco melhor:

CORRETO:

<?php
session_start();
?>
bla bla bla

ERRADO:

bla bla bla
<?php
session_start();
?>

Na sua primeira página tem um caralhada de HTML antes do session_start(), por isto o erro ocorre.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz um teste aqui com o cod que o amigo rberaldo tem em seu post sobre erros

 

<?php
ini_set( 'display_errors', 1 );
error_reporting( E_ALL | E_STRICT );
?>

 

e me retornou o seguinte ... mesmo ja logado no painel de adm ...

 


Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/www/site/admin.php:100) in /home/www/site/loga.php on line 3

Notice: Undefined variable: acao in /home/www/site/loga.php on line 5

Deprecated: Function session_is_registered() is deprecated in /home/www/site/loga.php on line 40

 

as linhas indicadas seriam essas :huh:

 

5 . if($acao == "logar") {
6 . $conn = mysql_connect("mysql.site.com.br","user","senha");
7 . $banco = mysql_select_db("bancodedados");
....

 

 

 

40 . if(!session_is_registered("nome")) {
41 . / Usuário não logado! Redireciona para a página de login
42 . echo("<script>");
43 . echo("alert('Acesso Negado !!');");

.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou tentar explicar um pouco melhor:

CORRETO:

<?php
session_start();
?>
bla bla bla

ERRADO:

bla bla bla
<?php
session_start();
?>

Na sua primeira página tem um caralhada de HTML antes do session_start(), por isto o erro ocorre.

 

 

 

hummmmm ok vamos mudar :D :D :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tivemos sussesso

 

 

 

 

hummmmm ok vamos mudar :D :D :D

 

 

Não tivemos sussesso meu amigo coloquei o session bem no inicio livre de todo o cod html mas ...

 

 

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/www/site/log-admin.php:1) in /home/www/site/log-admin.php on line 2

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente o arquivo está salvo como UTF8 com B.O.M., salve apenas como UTF8 e teste.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Irmão, basta colocar o seu código na orem correta. session_start() deve entrar na PRIMEIRA linha do seu código. Ou você pode ainda armazenar a saída em um buffer e depois liberar no fim do código, basta colocar um ob_start() na PRIMEIRA linha do seu código e um ob_end_flush() na ÚLTIMA linha do seu código pra, respectivamente, iniciar um output buffer, armazenar a saída nele e então lançar o buffer e limpa-lo completamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mazahhhh galo veio

funcionando liso agora ....

não sei se era isso mas mudei o CHMOD das paginas e funcionou ...

 

muito obrigado pelas dicas :D :D :D :D :D :D ;) ;) ;) ;)

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.