varför får man felmeddelande om en sessionen är tom?
måste man köra if sats för att få bort felet?
<?php $_SESSION['anvandarnamn'] ?>
Notice: Undefined index: anvandarnamn in c:\inetpub\wwwroot\default.php on line 2
8 svar · 239 visningar · startad av jboy_87
varför får man felmeddelande om en sessionen är tom?
måste man köra if sats för att få bort felet?
<?php $_SESSION['anvandarnamn'] ?>
Notice: Undefined index: anvandarnamn in c:\inetpub\wwwroot\default.php on line 2
Du måste ha session_start() innan du kallar på en sessionsvariabel. Lämpligt är att lägga den överst på sidan.
<?php
session_start();
Före session_start() får det inte finnas någon "output" till webbläsaren. Det innebär att du får inte ha någon HTML-kod före session_start(). Ett mellanslag eller radbrytning före PHP-taggen resulterar också i en output, och naturligtvis också echo eller print.
Du kan läsa mer här: http://www.phpportalen.net/wiki/index.php?page=Sessioner+i+PHP
jepp har det men får fel meddelande när en session är tom men annars inte?
Kolla om sessionvariabeln finns med isset():
<?php
session_start();
if (isset($_SESSION['anvandarnamn'])) {
// Gör något
}
T.ex vid en inloggningskontroll:
<?php
session_start();
if (!isset($_SESSION['anvandarnamn'])) {
header("Location: login.php");
exit;
}
Är inte sessionsvariabeln satt (vid inloggning) så skickas man till login-formuläret.
jepp det e det jag gör nu men asså kan man inte göra utan if satsen?
Att använda en variabel utan att den finns är fulkodning, och med en sessionsvariabel är det dessutom väldigt olämpligt, så jag rekommenderar varmt att du använder if-satsen.
Hur ser koden ut där du tänkt använda den, och varför vill du inte använda if-sats ?
Det "felmeddelande" du fått är en notis. Notiser visas för kod som inte är att rekommendera, men som p.g.a. bakåtkompabilitet är tillåten.
Det går att slippa notiser genom att ändra error_reporting i php.ini, men det är något jag inte rekommenderar ifall du sitter på en utvecklingsmaskin, då notiserna även kan resulteras av logiska fel i din kod.
hepp okej då använder jag if satserna =)
Ska du fortsätta i PHP-forumet kanske du ska ändra signatur :e
haha lol :p tror jag ska göra det ;-)