Ir para conteúdo

POWERED BY:

Arquivado

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

Sebastiao Marcos

[Resolvido] Problemas Com PHP

Recommended Posts

olá galera, sou novo aqui no forum já estudo programação há alguns anos e agora estou trabalhando para um empresa como programador web,

tive um pouco de dificuldade no começo pois estou muito familiarizado com C/C+, mas já haiva estudado php, agora estou num erro $@#@ que ta mim matando e também tenho duvidas a tirar.

 

Erro

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/rcecoop/public_html/teste2/index.php:1) in /home/rcecoop/public_html/teste2/index.php on line 2

 

este erro está acontecendo na linha de inicialização de sessao, pesquisei, pesquisei, ok, codificação utf-8 sem BOM, consegui resolver uns erros, aconteceu isso pois programo no windows, com DW, e uso o wamp server, agora que fui colocar o site online foi pra um server linux e olha ai a confusão,

tou perdendo a cabeça com isso já, também tem o erro com header

 

Warning: Cannot modify header information - headers already sent by (output started at /home/rcecoop/public_html/teste2/Administrativo/Connect/login.php:1) in /home/rcecoop/public_html/teste2/Administrativo/Connect/login.php on line 11.

 

deixa só eu da um explicada, minha estrutura ta um pouco desorganizada, to tentando fazer certo, eu tenho um site de notícias normal, com sistema administrativo, o site principal recebe informações do tipo enquetes, notícias, imagens, que são todas cadastradas lá no painel administrativo, lá no painel administrativo eu tenho várias funções, para cada redirecionamento eu usava a função header(), cada função do painel é protegido por uma sessao, dentro de cada arquivo de função do painel eu incluo o connect.php e o seguranca.php, para que um invasor não consiga acessar sem ter login e senha. isso ta gerando erro por cima de erro, queria uma dica de como organizar isso direito para deixar estrutural e bem enxuto.

 

queria também um dica de como fazer a páginas bem dinamicas que framework usar?, ajax é uma boa?.

 

Desculpem pelo post muito grande, espero respostas de vocês pois no momento estou dependendo disso, espero que a comunidade mim receba bem, e tenham um ótima dia.

 

Obrigado Pela atenção Sebastião Marcos(marquinho).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Sebastião,

 

Esse tipo de erro acontece porque o cabeçalho (header) deve ser enviado antes do que qualquer saída no script. Verifique se você não está exibindo nada na tela antes do header ou de iniciar a sessão, coisas como um espaço em braco, o print ou echo de algum texto ou qualquer coisa desse tipo.

 

Se você postar o código de alguma página mais simples nós poderemos ajudar melhor.

 

Sobre os frameworks eu não tenho experiência com eles, ouço falar muito do Joomla, Drupal e do Zend.

 

Retorna dizendo se conseguiu.

 

Até mais!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu criei somente um arquivo com <?php session_start(); ?>, funcionou retornou direito sem nenhum erro, mas quando vou pros arquivos principais, como o index principal os erros continuam, crie um página com o nome ini_sessao, para poder criar somente a sessao, e mesmo assim ainda da erro,

 

eu tenho certeza de que não tem nenhum arquivo sendo passado antes, vou mostrar um dos códigos por exemplo.

as páginas que contém os erros são todas as que eu incluir connect.php para realizar consultas no banco de dados.

 

o connect.php

<?php

if(!isset($_SESSION))
{
session_start();
}

//Pagina Criada Por Sebastiao Marcos

date_default_timezone_set('Brazil/East');

include("config.php");

$conexao = mysql_connect("localhost", $usuario, $senha);
if(!$conexao)
{
echo("Nao Foi Possivel Realizar Conexao Com o Servido");
}

$Select = mysql_select_db($bdnome);

if(!$Select)
{
echo("Nao Foi Possivel Connectar Ao Banco De Dados");
}

?>

 

e também tem o comando header() que não funciona e retorna um error

Warning: Cannot modify header information - headers already sent by (output started at /home/rcecoop/public_html/teste2/Administrativo/Connect/login.php:1) in /home/rcecoop/public_html/teste2/Administrativo/Connect/login.php on line 11

 

Pessoal obrigado pela atenção agradeço muito a vocês.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
include("Administrativo/Connect/connect.php");
$Query = mysql_query("SELECT * FROM enquetes");

$Result = mysql_fetch_assoc($Query);
?>
<!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" />
<title>- RCE - Rede Cooperativa de Comunicação Especializada -</title>
<script language="javascript" src="js/ajax.js" ></script>
<script language="javascript" src="js/instrucao.js" ></script>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body onload="abrirPag('paginamostrar.html');">
<div id="page">
<div id="Banner"><img src="img/logo.jpg" width="240" height="151" longdesc="http://127.0.0.1/siteindex" />
<img src="img/banner.jpg" width="675" height="120" />
</div>
<div id="Menu">
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="#" onclick="abrirPag('conssite.php');">Notícias</a></li>
<li><a href="#" onclick="abrirPag('conssite.php');">Web Rádio</a></li>
<li><a href="#" onclick="abrirPag('conssite.php');">Web TV</a></li>
</ul>
</div>
<div id="Content">
<table width="920" border="0">
 <tr>
   <td width="185" align="center" id="Bar">
   Notícias
   </td>
   <td width="427" rowspan="2">
   <div id="Slide"></div>
   </td>
   <td width="294" rowspan="2" align="center" id="Anuncios">
     <img src="img/banner_clube.jpg" width="290" height="67" /> <img src="img/banner_compras.jpg" width="290" height="67" />
     <img src="img/banner_ascoob.jpg" width="290" height="67" /></td>
 </tr>
 <tr>
   <td height="182"><ul>
   <li><a href="#" onclick="abrirPag('conssite.php');">Cooperativismo</a></li>
   <li><a href="#" onclick="abrirPag('conssite.php');">Mundo</a></li>
   <li><a href="#" onclick="abrirPag('conssite.php');">Brasil</a></li>
   <li><a href="#" onclick="abrirPag('conssite.php');">Cidades</a></li>
   <li><a href="#" onclick="abrirPag('conssite.php');">Economia</a></li>
   <li><a href="#" onclick="abrirPag('conssite.php');">Cultura</a></li>
   <li><a href="#" onclick="abrirPag('conssite.php');">Esporte</a></li>
   <li><a href="#" onclick="abrirPag('conssite.php');">Turismo</a></li>
   <li><a href="#" onclick="abrirPag('conssite.php');">Entreterimento</a></li>
   <li><a href="#" onclick="abrirPag('conssite.php');">Especial</a></li>
   </ul>
   </td>
 </tr>
 <tr>
   <td id="Bar"> RCE</td>
   <td> </td>
   <td id="Enq">Dê Sua Opnião</td>
 </tr>
 <tr>
   <td>
   <ul>
   <li><a href="#">A Rede</a></li>
   <li><a href="#">Objetivos</a></li>
   <li><a href="#">Web Rádio Viver</a></li>
   <li><a href="#">Web TV Viver</a></li>
   <li><a href="#">Expediente</a></li>
   <li><a href="#">Faça Parte</a></li>
   <li><a href="#">Contato</a></li>
   </ul>
   </td>
   <td> </td>
   <td id="Enq2" height="100">
   <?php echo $Result['Titulo']; ?>
<form method="post" action="">
   <?php if($Result <= 0)
{ echo("Não Há Enquetes Cadastradas!"); } else { ?>
   <input  type="radio" value="1" /><?php echo($Result['Questao 1']); ?>
   <br />
   <input  type="radio" value="2" /><?php echo($Result['Questao 2']); ?>
   <br />
   <input  type="radio" value="3" /><?php echo($Result['Questao 3']); ?>
   <br />
   <input  type="radio" value="4" /><?php echo($Result['Questao 4']); ?>
   <br />
   <a href="#">|Votar</a> | <a href="#" >Resultado|</a>
   <?php } ?>
   </form>
   </td>
 </tr>
 <tr>
   <td> </td>
   <td> </td>
   <td id="Enq">Flashes</td>
 </tr>
 <tr>
   <td> </td>
   <td> </td>
   <td id="Flash2" height="200" align="center">Está Área Está Em Desenvolvimento!</td>
 </tr>
</table>
</div>
<div id="Foot">
© 2010 - Todos os Direitos Reservados a RCE - Rede Cooperativa de Comunicação Especializada
<br />
Proibida a Reprodução Total ou Parcial de Qualquer Conteúdo deste site sem Prévia Autorização.
</div>
</div>
</body>
</html>

 

aqui uma delas o index principal.

 

Mais uma vez grato pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No Notepad++ você vai em "Formatar -> Codificação em UTF-8 (sem BOM)".

 

No seu arquivo "connect.php" remova a tag de fechamento "?>", como o arquivo possui somente PHP não é necessário fechar a tag e ajuda a evitar esse tipo de problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente ir no browser, exiba o código fonte da página HTML e veja se tem alguma coisa (espaço, quebra de linha, etc) antes da mensagem 'Warning: ...', geralmente tem algo.

 

Como você falou que o erro acontece em todas as páginas com o arquivo connect.php, verifique se o MySql não está retornando alguma mensagem, caso esteja, realmente vai acontecer o erro porque o MySQl enviou essa saída antes do header ou do session.

 

Outra coisa que notei foi que no arquivo connect.php você faz a inclusão do arquivo config.php, este arquivo não está fornecendo nenhuma saída que possa estar gerando o problema?

 

Passa pra gente também o que você tem na linha 11 do arquivo login.php, foi o ponto de partida do erro nesse script.

 

Retorna dizendo se houve algum progresso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem consegui com o convert do notepad++,

mas ainda persiste um mensagem.

Cannot send session cache limiter - headers already sent (output started at /home/rcecoop/public_html/teste2/index.php:1) in /home/rcecoop/public_html/teste2/Administrativo/Connect/connect.php on line 4

 

to tendo esperanças. ehhee.

 

ainda continua os problemas com os header também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está usando a função header() em algum lugar antes de incluir o connect?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não tudo vem depois do connect.

 

<?php
include("connect.php");
include("validar.php");
//Página criada por sebastião marcos
//marquinhoparelhas@hotmail.com
//Com a ajuda do microblogger http://thiagobelem.net

if(!empty($_POST) AND (empty($_POST['Login']) OR empty($_POST['Pwd']))) { 

   header("Location: ../index.php?Error=2");
}
else
{
$Usr = $_POST['Login'];
$Pwd = $_POST['Pwd'];
}

if(validar($Usr, $Pwd) == true)
{
	header("Location: ../System/index.php");
}
else
{
	echo ("Location: ../index.php?Error=3");
}


?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mude os headers para script assim:

 

<?php
include("connect.php");
include("validar.php");
//Página criada por sebastião marcos
//marquinhoparelhas@hotmail.com
//Com a ajuda do microblogger http://thiagobelem.net

if(!empty($_POST) AND (empty($_POST['Login']) OR empty($_POST['Pwd']))) { 

?>
<script>document.location.href='../index.php?Error=2';</script>
<?php
}
else
{
       $Usr = $_POST['Login'];
       $Pwd = $_POST['Pwd'];
}

       if(validar($Usr, $Pwd) == true)
       {
?>
<script>document.location.href='../System/index.php';</script>
<?php
       }
       else
       {
?>
<script>document.location.href='../index.php?Error=3';</script>
<?php
       }


?>

 

 

Abraços Walker

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei deu certo, bem agora estou com problemas com sessão, inicializa mas não ta guardando nada...

tipo eu fiz muitas verificações.

 

if(!session_start())

{

echo "sessao iniciada";

}

if(!isset($_SESSION))

{

echo "sessao Inciada com sucesso!";

}

 

mas quando eu faço essas condições ai sendo que a função que eu coloco é

session_destroy();

Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in /home/rcecoop/public_html/teste2/Administrativo/Connect/seguranca.php on line 11

 

pelo o que eu entendi quer dizer que ta tentando destruir uma sessao não inicializada.

certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o seguinte, tire esse if, e coloque session_start(); na primeira linha da sua página, e logo abaixo dê um print_r($_SESSION); e posta aqui o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imprimiu Somente Isto Array().

 

 

Eu tenho uma página, entro na sessao administrativa.

 

recebo o dados do formulário em uma página chamada de login.php

que chama a função validar, essa função da dentro do arquivo validar.php ele é responsavel por validar a conta e passar o usuário para frente ou para trás, ou seja entrar no sistema ou retorna menssagem de erro.

 

fiz o seguinte na função validar verifiquei se a sessao iniciou e se os dados do login estão guardados nela.

depois de atribuir os dados na Sessao, eu mostrei eles na tela, só pra confirma a criação da sessão.

página a frente na página de adminstração a sessao não existe mais. tento mostrar na tela os mesmos dados que mostre antes, e se tento destruir a sessao ela diz que a mesma nao foi criada.

 

aqui é o meu arquivo validar.php

<?php

function validar($Usr, $Pwd)
{	
$Query = mysql_query("SELECT Login, Senha FROM rce_usr WHERE Login='$Usr' AND Senha='$Pwd'");

echo(mysql_error());

if(mysql_num_rows($Query) != 1)
{
	return false;

}
else
{
	$Result = mysql_fetch_assoc($Query);

	$_SESSION['UserLogin'] = $Result['Login'];
	$_SESSION['UserPwd']   = $Result['Senha'];
	$_SESSION['Power']	   = $Result['nivel'];

	echo ($_SESSION['UserLogin']);

	return true;
}
}

?>

aqui o arquivo de login.php

<?php
include("connect.php");
include("validar.php");
//Página criada por sebastião marcos
//marquinhoparelhas@hotmail.com
//Com a ajuda do microblogger http://thiagobelem.net

if(!empty($_POST) AND (empty($_POST['Login']) OR empty($_POST['Pwd']))) { 
?>
  <script>document.location.href='../index.php?Error=2';</script>
<?php
  }
else
{
$Usr = $_POST['Login'];
$Pwd = $_POST['Pwd'];
}

if(validar($Usr, $Pwd) == true)
{

?>	
	<script>document.location.href='../System/index.php';</script>";
<?php
}
else
{
?>
	<script>document.location.href='../index.php?Error=3';</script>";
<?php
}


?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

meus problemas foram resolvidos, vlw hinom esse tutorial mim ajudou a percebe uma coisa, a maioria dos erros mostrados ai eu já tinha visto e ajeitado, porem eu não estava inicializando a sessão na index administrativa, por isso não funfava, mas agora foi.

 

aogra pessoa venho lhes perturbar de novo.

 

eu fiz um sistema de novidades com imagens, no pc aqui localmente deu certo, mas agora to colocando no host online e ta dando esses erros.

Warning: move_uploaded_file(imagens/Koala.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/rcecoop/public_html/teste2/Administrativo/System/subpag/cadadastrarnoticias.php on line 51

 

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpp1pb1s' to 'imagens/Koala.jpg' in /home/rcecoop/public_html/teste2/Administrativo/System/subpag/cadadastrarnoticias.php on line 51

 

esse erro está mim parecendo ser do upload, não sei, desconheço o mesmo.

 

obrigado galera por mais uma vez vocês mim ajudarem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Permission denied vai na pasta imagens, e seta CHMOD para 777

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.