Jump to content

Variáveis de sessão


Go to solution Solved by anolsi,

Recommended Posts

Posted

Boa noite maltaa...

tenho aqui um problemazito que me tem atormentado....

no codigo que vou mostrar asseguir ao executar diz-me sempre que a variavel de sessao "logado" nao esta defenida

Notice: Undefined variable: _SESSION in C:\Documents and Settings\Admin\Ambiente de trabalho\Escola\projecto_bp\index.php on line 40

Notice: Undefined variable: _SESSION in C:\Documents and Settings\Admin\Ambiente de trabalho\Escola\projecto_bp\index.php on line 41

<html>
<?
session_start();
if (! isset($_SESSION["logado"])){
$_SESSION["logado"]=0;
};
?>
<head>

<style type=text/css>
.logo{font-size : 90 ; }
.text{color : #aaaaaa; font-family : Arial;}
.textlink{color : #777777; font-family : Arial; text-decoration : none;}
.textlinkover{color : #aaaaaa; font-family : Arial;}
.lololo{visibility : hidden; text-decoration : none;}
</style>

</head>

<script>
function menuefect(){
if(document.getElementById('lol').style.visibility=='hidden'){
document.getElementById('pesquisa').src='btn_down.png';
document.getElementById('lol').style.visibility='visible';
document.getElementById('lol1').style.visibility='visible';
document.getElementById('lol2').style.visibility='visible';
document.getElementById('lol3').style.visibility='visible';
document.getElementById('lol4').style.visibility='visible';
}else{
document.getElementById('pesquisa').src='btn_up.png';
document.getElementById('lol').style.visibility='hidden';
document.getElementById('lol1').style.visibility='hidden';
document.getElementById('lol2').style.visibility='hidden';
document.getElementById('lol3').style.visibility='hidden';
document.getElementById('lol4').style.visibility='hidden';
}
}
</script>
<?php
echo($_SESSION["logado"]);
if( $_SESSION["logado"] == 1 ){
echo('<p>logado</p>');
}else{
echo('<div align="left"><font class="text">Ola visitante, </font><a class="textlink" href="login.php"><b>Entre</b></a><font class="text"> ou </font><a href="login.php" class="textlink"><b>Registre-se</b></a></div>');
}
?>


<div align='right'>
<!-- Search Google -->
<form action="http://www.google.pt/search?" id="cse-search-box">
  <div>
    <input type="hidden" name="cx" value="partner-pub-5902541268823551:cdzykahpjqd" />
    <input type="hidden" name="cof" value="FORID:10" />
    <input type="hidden" name="ie" value="ISO-8859-1" />
    <input type="text" name="q" size="25" />
    <input type="submit" name="sa" value="Google" />
  </div>
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&lang=pt"></script>
<!-- Search Google -->
</div>
<br>
<table align=center border="1" cellpadding="0" cellspacing="0" width="1055" height="605" >
<tr>
	<td id="logoaety" valign="top" colspan="2" align=center background=fundologo.png height="140">
	<font class=logo face=Esquisito color=#000000>AetyNews</font>
	 </td>
</tr>
<tr>

	<td valign="top" align=center>
	<br><br>
        <img id="pesquisa" src="btn_up.png" onclick=" menuefect()">

	<a id="lol" class="lololo" href='desporto.php' target='frme'>Desporto</a><br>
	<a id="lol1" class="lololo" href='economia.php' target='frme'>Economia</a><br>
	<a id="lol2" class="lololo" href='saude.php' target='frme'>Saúde</a><br>
	<a id="lol3" class="lololo" href='lazer.php' target='frme'>Lazer</a><br>
	<a id="lol4" class="lololo" href='capahome.php' target='frme'>Noticias de Capa</a><br>
	</td>
	<td valign="top" height="474">
	<iframe name='frme' width='100%' height='100%' src='capahome.php'></iframe>
        </tr>
<tr>
	<td width="180"></td>
	<td height="2" width="869"></td>
</tr>
</table>
</p>
<body bgcolor =#000000 background="fundohtml.png" bgproperties="fixed">

</body>
</html>

malta agradecia mesmo se me podessem ajudar...

Got it?

Posted

Quando chama o session_start() já vais tarde, as sessões do PHP recorrem aos cabeçalhos, pelo que se enviares o que quer que seja para o output antes de a chamares, já não vai funcionar porque os headers já foram enviados.

No teu caso tens esse '<html>' aí a estragar-te o esquema.

Não podes deixar sequer um espaço em branco.

Para esclarecimento deste e doutros erros consulta o nosso wiki

https://wiki.portugal-a-programar.pt/dev_web/php/problemas_comuns_em_php/#headers-already-sent

Posted

mas o meu erro nao se encontra no link que referiste... o que é suposto eu fazer?

aonde posso meter o "session_start();"

tipo eu ja ando nisto há horas... a ver exemplos e não vejo nada de errado...

cumps

Got it?

  • Solution
Posted
<?php
session_start();
?>
<html>
<?php
if (! isset($_SESSION["logado"])){
$_SESSION["logado"]=0;
}
?>
<head>

<style type=text/css>
.logo{font-size : 90 ; }
.text{color : #aaaaaa; font-family : Arial;}
.textlink{color : #777777; font-family : Arial; text-decoration : none;}
.textlinkover{color : #aaaaaa; font-family : Arial;}
.lololo{visibility : hidden; text-decoration : none;}
</style>

</head>

<script>
function menuefect(){
if(document.getElementById('lol').style.visibility=='hidden'){
document.getElementById('pesquisa').src='btn_down.png';
document.getElementById('lol').style.visibility='visible';
document.getElementById('lol1').style.visibility='visible';
document.getElementById('lol2').style.visibility='visible';
document.getElementById('lol3').style.visibility='visible';
document.getElementById('lol4').style.visibility='visible';
}else{
document.getElementById('pesquisa').src='btn_up.png';
document.getElementById('lol').style.visibility='hidden';
document.getElementById('lol1').style.visibility='hidden';
document.getElementById('lol2').style.visibility='hidden';
document.getElementById('lol3').style.visibility='hidden';
document.getElementById('lol4').style.visibility='hidden';
}
}
</script>
<?php
echo($_SESSION["logado"]);
if( $_SESSION["logado"] == 1 ){
echo('<p>logado</p>');
}else{
echo('<div align="left"><font class="text">Ola visitante, </font><a class="textlink" href="login.php"><b>Entre</b></a><font class="text"> ou </font><a href="login.php" class="textlink"><b>Registre-se</b></a></div>');
}
?>


<div align='right'>
<!-- Search Google -->
<form action="http://www.google.pt/search?" id="cse-search-box">
  <div>
    <input type="hidden" name="cx" value="partner-pub-5902541268823551:cdzykahpjqd" />
    <input type="hidden" name="cof" value="FORID:10" />
    <input type="hidden" name="ie" value="ISO-8859-1" />
    <input type="text" name="q" size="25" />
    <input type="submit" name="sa" value="Google" />
  </div>
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&lang=pt"></script>
<!-- Search Google -->
</div>
<br>
<table align=center border="1" cellpadding="0" cellspacing="0" width="1055" height="605" >
        <tr>
                <td id="logoaety" valign="top" colspan="2" align=center background=fundologo.png height="140">
                <font class=logo face=Esquisito color=#000000>AetyNews</font>
                 </td>
        </tr>
        <tr>

                <td valign="top" align=center>
                <br><br>
        <img id="pesquisa" src="btn_up.png" onclick=" menuefect()">
               
                <a id="lol" class="lololo" href='desporto.php' target='frme'>Desporto</a><br>
                <a id="lol1" class="lololo" href='economia.php' target='frme'>Economia</a><br>
                <a id="lol2" class="lololo" href='saude.php' target='frme'>Saúde</a><br>
                <a id="lol3" class="lololo" href='lazer.php' target='frme'>Lazer</a><br>
                <a id="lol4" class="lololo" href='capahome.php' target='frme'>Noticias de Capa</a><br>
                </td>
                <td valign="top" height="474">
                <iframe name='frme' width='100%' height='100%' src='capahome.php'></iframe>
        </tr>
        <tr>
                <td width="180"></td>
                <td height="2" width="869"></td>
        </tr>
</table>
</p>
<body bgcolor =#000000 background="fundohtml.png" bgproperties="fixed">

</body>
</html>

E sim, o teu problema está descrito no link que o pedrotuga te deu 😉

"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!

Posted

tens ali um ; a mais, no inicio

Pois tinha 😉

"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!

Posted

Solução: A solução, igualmente simples, poderá passar por colocar o session_start no topo do ficheiro:

session_start();

echo "oi";

nao reparei nesta frase...

nao sabia que era preciso usar sempre a palavra php "<?php ?>" e prontinhos obrigado por tudo pessoal...

cumps

PS: quando um gajo entra em desepero por nao conseguir resolver um problema experimenta-se tudo...

foio o caso do ; asseguir à chaveta do if...

Got it?

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