Jump to content

Ajuda session_start()


xico127
 Share

Recommended Posts

Eu uso este codigo para verificar se o utilizador esta com sessao iniciada

mas da-me este erro:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\agrup268\Adm\galeria.php:1) in C:\xampp\htdocs\agrup268\Adm\verifica.php on line 5



<?php 
include "config.php";


session_start();

if(isset($_SESSION['login_utilizador']) and isset($_SESSION['pass_utilizador'])){
$login_utilizador=$_SESSION['login_utilizador'];
$pass_utilizador=$_SESSION['pass_utilizador'];

$sql=mysql_query("select * from login where login='$login_utilizador' ");

$cont=mysql_num_rows($sql);

while($linha=mysql_fetch_array($sql)){
$nome=$linha['nome'];
$pass_db=$linha['pass'];
}
if($cont==0){

unset($_SESSION["login_utilizador"]);
unset($_SESSION["pass_utilizador"]);

echo "<meta http-equiv=refresh content='0; url=../index.php'>
<script type=\"text/javascript\">
alert (\"O nome de utilizador não existe ;( \");
</script>";
}
if ($pass_db != $pass_utilizador){

unset($_SESSION["login_utilizador"]);
unset($_SESSION["pass_utilizador"]);

echo "<meta http-equiv=refresh content='0; url=../index.php'>
<script type=\"text/javascript\">
alert (\"A pass do  utilizador não existe ;( \");
</script>";
}

}else{
unset($_SESSION["login_utilizador"]);
unset($_SESSION["pass_utilizador"]);

echo "<meta http-equiv=refresh content='0; url=../index.php'>
<script type=\"text/javascript\">
alert (\"O utilizador e a password não existem ;( \");
</script>";
}
?>

alguem me pode ajudar novamente??

Link to comment
Share on other sites

Biba,

o session_start() "tem" de ser a 1ª linha do ficheiro

Não tanto Muitas vezes dá mais jeito estar algumas linhas depois

Mostra o verifica.php, o config.php e o \Adm\galeria.php sff

Edit: Um exemplo de estar linhas depois é um programa em PHP chamado travsync em que eu estou a participar.

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

verifica.php:

<?php 
session_start();

$db=mysql_connect("localhost", "root", "");
$dados=mysql_select_db("agrup268_bd", $db);


if(isset($_SESSION['login_utilizador']) and isset($_SESSION['pass_utilizador'])){
$login_utilizador=$_SESSION['login_utilizador'];
$pass_utilizador=$_SESSION['pass_utilizador'];

$sql=mysql_query("select * from login where login='$login_utilizador' ");

$cont=mysql_num_rows($sql);

while($linha=mysql_fetch_array($sql)){
$nome=$linha['nome'];
$pass_db=$linha['pass'];
}
if($cont==0){
/*destruição das variáveis de sessão atraves de unset*/
unset($_SESSION["login_utilizador"]);
unset($_SESSION["pass_utilizador"]);

echo "<meta http-equiv=refresh content='0; url=../index.php'>
<script type=\"text/javascript\">
alert (\"O nome de utilizador não existe ;( \");
</script>";
}
if ($pass_db != $pass_utilizador){

unset($_SESSION["login_utilizador"]);
unset($_SESSION["pass_utilizador"]);

echo "<meta http-equiv=refresh content='0; url=../index.php'>
<script type=\"text/javascript\">
alert (\"A pass do  utilizador não existe ;( \");
</script>";
}

}else{
unset($_SESSION["login_utilizador"]);
unset($_SESSION["pass_utilizador"]);

echo "<meta http-equiv=refresh content='0; url=../index.php'>
<script type=\"text/javascript\">
alert (\"O utilizador e a password não existem ;( \");
</script>";
}
?>

galeria.php:

<?
include "verifica.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" />
<title>Galeria</title>
<?
include "css.php";
?>
</head>
<body id="body">
<?
include "config.php";
?>
<div id="geral">
    <div id="topo">
   </div><!--Fim da Div Topo-->
      <div id="menu"><ul><? include "menu.php"; ?></ul>
      </div><!--Fim da Div menu-->
             <div id="logins">
<center><b><font size="4px" color="#FFFFFF">Acesso</font></b></center>
<p style="padding-left:15px; padding-bottom:5px;"><? echo "Olá $nome" ?><br />
<a href="logout.php" style="color:#000"> Sair </a></p>

</div><!--Fim da div login-->
<div id="conteudo">
            <?
if ($_GET['funcao']!='alterar')
{
?>
<form id="form1" name="form1" method="post" action="funcao_galeria.php?funcao=gravar" enctype="multipart/form-data">
<label></label>
<table width="90%" border="0" cellpadding="3" cellspacing="3">
<tr>
<td width="24%"><strong>Imagem:</strong></td>
<td width="76%">
<input type="file" name="arquivo" id="arquivo" size="50"/></label>
</td>
</tr>
<tr><td><strong>Descrição: </strong></td><td>
<textarea name="texto" id="texto" cols="50" rows="8" ></textarea>
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="button" value="Inserir" /></td>
</tr>
</table>
</form>
<hr />
<?
$sql=mysql_query("select * from galeria");
while ($linha=mysql_fetch_array($sql)) {
$foto=$linha['foto'];
$texto=$linha['texto'];
$id=$linha['id'];
?>
<table width="160px"><tr><td colspan="2">
<img src="fotos/<? echo $foto ?>" width="160px" /></td></tr>
<tr><td colspan="2" align="center"><? echo $texto ?></td></tr>
<tr><td>
<a href="galeria.php?funcao=alterar&id=<? echo $id ?>" style="color:#000"><strong>Alterar</strong></a></td><td> <a href="funcao_galeria.php?funcao=excluir&id=<? echo $id ?>" style="color:#000"><strong>Excluir</strong></a></td></tr></table>
<?
}
}
else {
?>
<?
$id=$_GET['id'];
$sql=mysql_query("select * from galeria where id=$id");
while ($linha=mysql_fetch_array($sql)) {
$texto=$linha['texto'];

$id=$linha['id'];
}
?>
<form id="form1" name="form1" method="post" action="funcao_galeria.php?funcao=alterar&id=<? echo $id ?>" enctype="multipart/form-data">
<label></label>
<table width="90%" border="0" cellpadding="3" cellspacing="3">
<tr>
<td width="24%"><strong>Imagem:</strong></td>
<td width="76%">
<input type="hidden" name="enviar_mensagem" id="enviar_mensagem" onclick="document.form1.arquivo.disabled=false" value="sim" checked="checked"/>
<label><br />
<input type="file" name="arquivo" id="arquivo" size="50"  /></label>
</td>
</tr>
<tr><td><strong>Descrição: </strong></td><td>
<textarea name="texto" id="texto" cols="50" rows="8" ><? echo $texto ?></textarea>
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="button" value="Alterar" /></td>
</tr>
</table>
</form>
<br /><br />
<a href="javascript:history.back();" style="color:#000000">Voltar</a>
<?
}
?>
</div><!--Fim da div conteudo-->
    <div id="rodape">
    </div><!--Fim da div rodape-->
</div><!--Fim da Div Geral-->
</body>
</html>
Link to comment
Share on other sites

xico127, quase de certeza tens um espaço, ou uma linha em branco, logo no início do ficheiro galeria.php. Verifica.

"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Link to comment
Share on other sites

verifica.php:

...

</body>

</html>

Por favor!!! usa as tags code!!!


ADD:

xico127, quase de certeza tens um espaço, ou uma linha em branco, logo no início do ficheiro galeria.php. Verifica.

Concordo mas queria confirmar antes de dizer algo.

Pode tb ser só o BOM de ser UTF-8

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

não o problema não é dos espaços em branco!

🙂

Não tens absolutamente nada antes de <? no galeria.php? De certeza? Já verificaste? E o servidor, suporta short-tags? Já experimentaste trocar os <? para <?php?

"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Link to comment
Share on other sites

Nunca usei o XAMPP, mas penso que as short-tags vêm desactivadas por defeito (e ainda bem - short-tags é má prática e vão ser descontinuadas no PHP6).

Como tal, tens que mudar todas as tuas <? para <?php, por exemplo:

<? // ERRADO
include "verifica.php";
?>

<?php // CORRECTO
include "verifica.php";
?>

Testa, e diz coisas.

P.S.: por acaso, isto está-me a moer a cabeça - se as short-tags estão desactivadas, o PHP não deveria reconhecer aquele bloco como código PHP e fazer o include, coisa que está a fazer correctamente, visto que o erro é disparado no ficheiro incluído... Como nunca usei nem o XAMPP, nem desenvolvimento em máquinas Windows, para todos os efeitos, é possível que seja alguma particularidade destes sistemas. Testa, de qualquer maneira...

"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Link to comment
Share on other sites

como assim <php? eu estou a usar o xampp é localhost!

É <?php e não <php?

Mas então aquele código que colocaste primeiro está em todas as tuas páginas embutido? E já experimentas-te passar o session_start() para a primeira linha, no caso de não te fazer diferenças (porque tal como o brunoais disse, muitas vezes é necessário ser feito só depois)? E deu o mesmo erro...

"Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."
Não respondo a questões por PM que possam ser colocadas no fórum!

Link to comment
Share on other sites

Eh, gente, deixem lá o session_start() sossegado! Leiam o erro correctamente:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\agrup268\Adm\galeria.php:1) in C:\xampp\htdocs\agrup268\Adm\verifica.php on line 5

O erro é dali, na linha 1.

"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Link to comment
Share on other sites

Será que é o BOM (o ficheiro está em utf-8 com BOM) no ficheiro galeria.php?

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

o xampp aceita short-tags mas este erro é realmente manhoso!

e nao sei porque me da Cannot send session cache limiter

e já estou a bater um bocado mal! e ja tentei todas as solucoes aqui propostaas mas nao esta facil o erro nao desaparece!

🙂

Link to comment
Share on other sites

Mostra as 1as 3 linhas do galeria.php

dentro das tags code sff

E, já agora, qual é que é q codificação do galeria.php?

ANSI? UTF-8?...

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

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
 Share

×
×
  • 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.