Jag tror det beror på var du inkluderar filen. Se till att session_start(); står innan du inkluderar filen!
// Nippe
9 svar · 243 visningar · startad av Madoor
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
Jag tror det beror på var du inkluderar filen. Se till att session_start(); står innan du inkluderar filen!
// Nippe
det gör det! Men det fungerar inte för det!
testa att sätta session_start() i den inkluderade filen...
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";
}
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?
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!
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";
}
?>
Du får inte några felmeddelanden eller något då?
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.