Проблем със сесия

nasibg

Registered
Здравейте във index.php най-отгоре имам:
Код:
<?php
session_start();
if($_SESSION['logged']===true)
{
	header('Location: stranica.php');
	exit;
}
?>

И така ако има сесията(тоест е логнат) отива към защитената страница, ако не ще се зареди съдържанието на index.php което е със логин формата.
обаче ми показва Notice: Undefined index: logged in C:\Users\ .........

Защо се получава? също ползвам най-новия wamp ако има нещо общо(може да има по-нова версия на php и да има някакво правило, което не го знам и затова...)

иначе решение на проблема измислих

Код:
<?php
session_start();
if(isset($_SESSION['logged']))
{
	header('Location: dashboard.php');
	exit;
}

Но дали това е правилно, и ми е чудно защота така се получава? надявам се да ми помогнете. :)
 
Ами разбира се, че ще вади тази грешка, понеже ти преди това не си дефинирал сесията и ти дава грешка. За това е измислен isset(), да проверяваш дали е зададена такава сесия, и ако е зададена изпълняваш условието... аз попринцип условието го правя така...

PHP:
if(isset($_SESSION['logged']) && $_SESSION['logged'] != ""){
           //....
}
 
Кода работи обаче само като сложх ! тоест преобърнах условието - грешка....
Код:
<?php
if(!isset($_SESSION['logged']) && $_SESSION['logged'] != NULL)
{
	header('Location: dashboard.php');
	exit;
}
?>

ми казва: Notice: Undefined variable: _SESSION
 
Не си стартирал сесия... session_start(); ... но реално като гледам грешката не показва това. Пробвай все пак.

ЕДИТ: и защот !isset(...) ? Хем проверяваш дали не е сетната, хем дали не е празна :? Нещо се обърках какъв ти е замисъла.
 
Да забравих.... обаче сега ми дава Notice: Undefined index: logged

Тоест тази грешка я дава на следни код:
Код:
<?php
session_start();
if(!isset($_SESSION['logged']) && $_SESSION['logged'] != NULL)
{
	header('Location: dashboard.php');
	exit;
}
?>

А когато е без ! си работи...

Edit: Знам че нетрябва във случая да има ! обаче просто тествах, и така има потенциална грешка във кода просто искам да си работи а не да има потенциялни грешки.
 
Еми това е целта... махни ! защо ти е...

условието казва: зададена ли е сесия с такова име И ако е зададена сесията дали не е празна... ако е зададена и не е празна тогава условието се изпълнява. За това махни ! (удивителната)
 

Back
Горе