2010-04-08 13 views
16

czy ktoś zna alternatywę dla przestarzałej funkcji session_is_registered w PHP5?Alternatywa PHP do session_is_registered

oto mój kod:

ob_start(); 

session_start(); 

if(!session_is_registered(myusername)) 

{ 

    header("location:main_login.php"); 

} 

ob_flush(); 

Dzięki

Mauro

+1

add „die();” zaraz po nagłówku, więc reszta strony nie ładuje się. – Sirber

+0

lub po prostu dołącz stronę logowania i umieść(); – Sirber

Odpowiedz

30

"Musisz ustawić i odniesienie tylko $ _SESSION zmienne". Na przykład:

if(isset($_SESSION[$myusername])) 

Od http://www.phpfreaks.com/forums/index.php?topic=263189.0

+1

Proszę sprawdzić krzyżowo odpowiedź pana Sirbera. Ale nie zapomnij o przegłosowaniu i zaakceptuj mojej odpowiedzi, ponieważ bez mojej spektakularnej odpowiedzi nie pomyślałby o swojej małej wskazówce. – zaf

7

na marginesie, najlepszego wykorzystania $_SESSION['username'] = $myusername;. Używanie zmiennej $_SESSION[$myusername] może nadpisywać istniejące zmienne w sesji.

+0

zaf: dziękuję! – Sirber

-1

Zastosowanie session_id()

if (!session_id()) { 
// do stuff 
} 

jeśli istnieje zostanie zwrócone nie session id nic. (docs - session_id())

+0

otrzymasz session_id() jak tylko wywołasz session_start(); OP chce sprawdzić, czy użytkownik jest zalogowany. – Sirber

3

Ale jeśli ustawisz wszystko w zmiennej sesji wyświetli ci zabezpieczonej strony: np

<?php 
    session_start(); 
    if(isset($_SESSION[$myusername])){ 
     echo "welcome to protected page."; 
    } 
    else { 
     header('location:login.php'); 
     die;  
    } 
?>