[PHP+SQL]Blokowanie stron dla nie zalogowanych

0

Już do 3 dni szukam skryptu do logowania i autoryzacji pod php i sql
Mam rejestracje:
Wszystko działa oprócz blokowania stron.

Rejestacja

<?
//nazwa strony
$subpage_name = 'Rejestracja';

//Tu sie zaczyna rejestracaj
function siteload() {

// nagłówek

        
// tworzymy prosty formularz
echo '<form action="index.php?id=reg" method="POST">
Nick: <br />
<input type="text" name="nick"><br />
Hasło: <br />
<input type="password" name="pass"><br />
<input type="submit" name="ok" value="Rejestruj">
</form>';       

// jeśli zostanie naciśnięty przycisk "Rejestruj"
if(isset($_POST['ok']))
{
        $nick = $_POST['nick'];
        $pass = $_POST['pass'];
        
        // sprawdzamy czy wszystkie dane zostały podane
        if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola!';
        // jeśli tak...
        else
        {
                // filtrujemy dane
                $nick = trim(strip_tags( mysql_real_escape_string(HTMLSpecialChars($nick))));
                $pass = trim(strip_tags( mysql_real_escape_string(HTMLSpecialChars($pass))));
                
                // sprawdzamy czy jest już użytkownik o takim loginie
                $result = mysql_query("SELECT * FROM users WHERE nick='$nick'");
                
                // jeśli już istnieje
                if(mysql_num_rows($result)!=0) echo 'Już istnieje konto z takim loginem!';
                // jeśli nie...
                else
                {
                        // pobieramy aktualną datę
                        $data = time();
                        
                        // kodujemy hasło
                        $pass = md5($pass);
                        
                        // tworzymy zapytanie
                        $query = "INSERT INTO `users` (`nick` , `pass`, `data_rejestracji`) VALUES ('$nick', '$pass', '$data')";
                        
                        // jeśli zapytanie wykona się poprawnie to zostanie wyświetlony stosowny komunikat
                        if(mysql_query($query)) echo 'Zostałes poprawnie zarejestrowany! Możesz się teraz <a href="index.php?id=login">zalogować</a>';
                }
        }
}

// rozłączenie z bazą danych
mysql_close();

}
?>

Logowanie

<?
//nazwa strony
$subpage_name = 'Logowanie';

//Tu się zaczyna logowanie
session_start();
function siteload() {

// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
ob_start();

// nagłówek

// sprawdzamy czy user jest już zalogowany
if($_SESSION['logged']) echo 'Już jestes zalogowany!';
else
{
        // tworzymy prosty formularz
        echo '<form action="index.php?id=login" method="POST">
        Nick: <br />
        <input type="text" name="nick"><br />
        Hasło: <br />
        <input type="password" name="pass"><br />
        <input type="submit" name="ok" value="Zaloguj">
        </form>';       

        // jeśli zostanie naciśnięty przycisk "Zaloguj"
        if(isset($_POST['ok']))
        {
                $nick = $_POST['nick'];
                $pass = $_POST['pass'];
        
                // sprawdzamy czy wszystkie dane zostały podane
                if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola!';
                // jeśli tak...
                else
                {
                        // filtrujemy dane
                        $nick = trim(strip_tags( mysql_real_escape_string( HTMLSpecialChars($nick))));
                        $pass = trim(strip_tags( mysql_real_escape_string( HTMLSpecialChars($pass))));
                
                        // kodujemy hasło
                        $pass = md5($pass);
                
                        // sprawdzamy czy istnieje użytkownik z takim loginem i hasłem
                        $result = mysql_query("SELECT * FROM users WHERE nick='$nick' AND pass='$pass'");
                
                        // jeśli nie istnieje
                        if(mysql_num_rows($result)==0) echo 'Podałes niepoprawne dane!';
                        // jeśli tak...
                        else
                        {
                                // dodajemy wynik zapytania do tablicy
                                $row = mysql_fetch_array($result);
                        
                                // ustawianie sesji że użytkownik jest zalogowany
                                $_SESSION['logged'] = true;
                        
                                // dodawanie do sesji id użytkownika, login oraz datę rejestracji
                                $_SESSION['id'] = $row['id'];
                                $_SESSION['nick'] = $row['nick'];
                                $_SESSION['data_rejestracji'] = $row['data_rejestracji'];
                        
                                // wyświetlenie komunikatu oznaczającego poprawne logowanie
                                echo 'Zostałes poprawnie zalogowany! Możesz teraz przejsć do <a href="index?id=profil">strony głównej profilu</a>';
                        }
                }
        }
}

// rozłączenie z bazą danych
mysql_close();

// koniec buforowania
ob_end_flush();
}
?>

ale jak dodam
session_start();
do strony którą che zablokować żeby nie dało się jej otworzyć bez zalogowania to mi to nie działa
i nie wiem co zrobić z tym,

Panel użytkowniak wygląda tak

<?
//nazwa strony
$subpage_name = 'Strona Główna';
session_start();
function siteload() {

// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
ob_start();

// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
ob_start();

// start sesji
session_start();

// nagłówek

// jeśli user jest zalogowany
if($_SESSION['logged'])
{
        // wyświetlamy userowi jego dane
        echo 'Witaj '.$_SESSION['nick'].'!<br />';
        echo 'Twój ID to: '.$_SESSION['id'].'.<br />';
        echo 'Zarejestrowałes się u nas: '.date("d.m.Y, H:i", $_SESSION['data_rejestracji']).'<br />';
        echo '<a href="index.php?id=logout">WYLOGUJ</a>';
}
// jeśli nie jest zalogowany
else
{
        echo 'Witaj!<br />';
      echo '<a href="index.php?id=login">Zaloguj się</a> lub <a href="index.php?id=reg">załuż nowe konto</a>';
}

// koniec buforowania
ob_end_flush();


}
?>

i to działa nie wiem czemu...
jak wie ktoś jak to zrobić to plx to niech mi powie, albo da jakiś lepszy skrypt...

0
<?
//nazwa strony
$subpage_name = 'Chroniona strona';

session_start();
ob_start();

// nagłówek

// sprawdzamy czy user jest już zalogowany
if($_SESSION['logged'] != true) exit('Dont l00k there!');

[...]
ob_end_flush();

To powinno chodzić. W miejsce [...] ofc kod strony.

1 użytkowników online, w tym zalogowanych: 0, gości: 1