Jak użyć sesji, aby zablokować dostęp do strony niezalogowanym?

0

Witam. Mam takie pytanie odnośnie sesji. Napisałem skrypt logowania na sesjach i nie mam pojęcia jak zabezpieczyć inne strony żeby nie można było wejść niezalogowany. Szukałem po różnych kursach jednak albo ja nie rozumiem albo nie ma.

0

No gdzies zapisujezs informacje o tym, ze uzytkownik jest zalogowany, np do $_SESSION['Zalogowany']=true.
jak wchodzi gdzies na strone to sprawdzasz czy $_SESSION['Zalogowany']==true. jezeli tak to wtedy renderujesz strone.

0

czyli .
przyjmijmy że to jest plik do logowania

<?php
session_start();
/*
tutaj cały kod do logowania
*/
$_SESSION['logged_in']=true;
?>

a tutaj podstrona którą chcę mieć tylko dla zalogowanych

<?php
session_start();
if($_SESSION['logged_in'] == true)
/*

dalsza część strony

*/
?>

tak to ma wyglądać?
bo tak mniej więcej mam i my wyświetla że zmienna logged_in nieznana dokładnie tak

Notice: Undefined index: logged_in in C:\Program Files\xampp\htdocs\nauka\registration\registration.php on line 4

dodanie znaczników <code> i <code class="php"> - furious programming

1

no nic dziwnego, jak się nie zalogował to nie ustawiło tej zmiennej, więc jest niezdefiniowana

nie znam PHP ale na szybko widzę taką metodę jak isset do sprawdzenia czy jest ustawiona zmienna

0

żeby nie zakładać kolejnego tematu to mam kod:

 
$query = "SELECT 'name' FROM 'users' WHERE 'name' = '".$name."'";
            $query_run = mysql_query($query);
            if (mysql_num_rows($query_run) == 1)    // sprawdzenie czy nick juz istnieje
            {
                echo 'the username '.$name.' already exists';
            }
            else
            tu juz nie wazne

wyświetla mi błąd:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files\xampp\htdocs\nauka\registration\registration.php on line 18
po wpisanie mysql_error jest taki sam błąd. Sprawdziłem też czy baza danych jest ok i wszystkie dane itp są ok.
co może być przyczyną ?

1

http://pl1.php.net/mysql_query

For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.

Zapytanie jest błędne. Czytaj dokumentację.

0

Już nie wspominając o tym, że używasz niezbyt aktualnego jak na te czasy mysql. Dla Twojego dobra i bezpieczeństwa kodu proponuję przejście na PDO albo chociaż na mysqli. Na chwilę obecną z Twoim kodem poza localhosta radzę się nie ruszać (0% odporności na cokolwiek).

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