webForumDet fria alternativet

session

8 svar · 239 visningar · startad av jboy_87

jboy_87Medlem sedan aug. 20011 099 inlägg
#1

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

MatteMedlem sedan aug. 20002 975 inlägg
#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

jboy_87Medlem sedan aug. 20011 099 inlägg
#3

jepp har det men får fel meddelande när en session är tom men annars inte?

MatteMedlem sedan aug. 20002 975 inlägg
#4

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.

jboy_87Medlem sedan aug. 20011 099 inlägg
#5

jepp det e det jag gör nu men asså kan man inte göra utan if satsen?

MatteMedlem sedan aug. 20002 975 inlägg
#6

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.

jboy_87Medlem sedan aug. 20011 099 inlägg
#7

hepp okej då använder jag if satserna =)

MatteMedlem sedan aug. 20002 975 inlägg
#8

Ska du fortsätta i PHP-forumet kanske du ska ändra signatur :e

jboy_87Medlem sedan aug. 20011 099 inlägg
#9

haha lol :p tror jag ska göra det ;-)

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