webForumDet fria alternativet

sessions problem

9 svar · 241 visningar · startad av Madoor

MadoorMedlem sedan sep. 200234 inlägg
#1

hej hej,

jag har försökt få svar på detta i två dagar nu... men de jag frågat har inte kunnat svara, bla de på sweclockers forum. Så nu kommer frågan hit eftersom jag vet att ni är kompetenta även inom php!

Jag har en inloggnings sida. När man loggats in får man en session['Namn'] och skickas sedan vidare till index.php. I index.php finns det en fil som är inkluderad som heter meny.php.

om jag är inloggad vill jag att det ska komma upp ett meddelande i index.php som säger "du är inloggad". Det har jag fixat så att det fungerar! MEN, nu kommer ett stort MEN! När jag är inloggad vill jag också att en till länk ska visas i meny.php. Jag har därför gjort en IF-sats i meny.php som kollar om Session['Namn'] har något värde.

När jag loggat in skickas jag till index.php precis som jag ska! och jag får upp meddelandet "du är inloggad", men den extra länken kommer inte i menyn. Fungerar det inte att kolla sessions i en inkluderad fil?

Mvh Pontus

nkrantzMedlem sedan apr. 2002830 inlägg
#2

Jag tror det beror på var du inkluderar filen. Se till att session_start(); står innan du inkluderar filen!

// Nippe

MadoorMedlem sedan sep. 200234 inlägg
#3

det gör det! Men det fungerar inte för det!

nkrantzMedlem sedan apr. 2002830 inlägg
#4

testa att sätta session_start() i den inkluderade filen...

MadoorMedlem sedan sep. 200234 inlägg
#5

nopp, det fungerar inte heller.

just nu ser if-satsen i det inkluderade dokumentet ut så här:
if(session_is_registered('Name')) {
echo "<br />du är inloggad";
} else {
echo "<br />inte inloggad, nopp";
}

nkrantzMedlem sedan apr. 2002830 inlägg
#6

Vet inte om jag missförstod dig. Funkar koden som du skickade med nu? Dvs, kom texten "du är inloggad" upp? I vilken fil har du session_start och vilken fil vill du inkludera?

MadoorMedlem sedan sep. 200234 inlägg
#7

såhär ser index.php ut (utan tabeller m.m.):
<?php
session_start();
include('meny.php');

if(session_is_registered('Name')) {
echo "Du är inloggad";
} else {
echo "du är INTE inloggad";
}

?>

och så här ser den inkluderade filen ut:
<?php

if(session_is_registered('Name')) {
echo "MENY";
} else {
echo "ingen inloggning och då ingen meny";
}

?>

Jag får upp texten

Jag får upp "Du är inloggad" på index.php, men jag får inte upp "MENY". Det är som att jag har en session fast den inkluderade filen inte kan se det!

UrMeMedlem sedan apr. 2001762 inlägg
#8

Mycket märkligt.. fungerade bra för mig när jag provade.

index.php

<?php 
session_start(); 
session_register('Name');

$Name = "Kalle";

echo "<a href=\"index2.php\">Gå vidare</a>";

?>

index2.php

<?php 
session_start(); 
include('meny.php'); 

if(session_is_registered('Name')) { 
echo "Du är inloggad<br>"; 
} else { 
echo "du är INTE inloggad"; 
} 

echo $_SESSION['Name'];
?>

meny.php

<?php 

if(session_is_registered('Name')) { 
echo "MENY"; 
} else { 
echo "ingen inloggning och då ingen meny"; 
} 

?>
nkrantzMedlem sedan apr. 2002830 inlägg
#9

Du får inte några felmeddelanden eller något då?

MadoorMedlem sedan sep. 200234 inlägg
#10

nopp, det är bara det att in inkluderade filen inte vill se mig som inloggad fast jag är det. Inga felmeddelanden utan bara texten som ska visas om man inte är inloggad.

150 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
147 ms — hämta tråd, inlägg och bilagor (db)