Panel logowania i includowanie stron w php


(BLEKBLEKBLEK) #1

Witam, mam następujący problem. Utworzyłem panel logowania i kiedy wpisałem poprawne dane przechodzi do panelu administracyjnego w  folderze panel/index.php. Wraz z logowaniem została utworzona sesja($_SESSION['login']) dzięki której mogę poruszać się po stronach. Mój problem polega na tym, że tworzę szablon includujac strony, czyli tworzę header.php,nav.php itd i to wszystko includuje w index.php. Żeby nie wejść do strony nie logując się daje warunek w index.php if(!isset($_SESSION['login'] {header("Location: ../index.php");} i ten warunek chce dać też header itd, ale dając go wywala mi błąd bo jest kilka session_start();. Jak to zrobić, żeby do każdej strony w folderze panel nie było można wejść  kiedy nie jestem zalogwany


(Fizyda) #2

W plikach wykonywalnych dodaj

define(“CONSTANT”,  true);

 

a w plikach includowanych robisz coś takiego:

 

if(!defined(“CONSTANT”))

    exit();


(slepcu) #3

http://www.php.net/manual/es/function.session-status.php

 

function is_session_started()

{

    if ( php_sapi_name() !== 'cli' ) {

        if ( version_compare(phpversion(), '5.4.0', '>=') ) {

            return session_status() === PHP_SESSION_ACTIVE ? TRUE : FALSE;

        } else {

            return session_id() === '' ? FALSE : TRUE;

        }

    }

    return FALSE;

}



// Example

if ( is_session_started() === FALSE ) session_start();