webForumDet fria alternativet

sessions problem

PHP

9 svar · 243 visningar · startad av Madoor

Medlem sedan sep. 200234 inlägg
Frågan#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

Medlem 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

Medlem sedan sep. 200234 inlägg
#3

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

Medlem sedan apr. 2002830 inlägg
#4

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

Medlem 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";
}

Medlem 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?

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

Medlem 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"; 
} 

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

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

Medlem 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.

256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)