2014-11-02 2 views
-3

Как я могу это сделать, когда пользователь пытается получить доступ к index.php, когда нет входа в get, перенаправляется на login.php?Как заблокировать страницы для не зарегистрированных пользователей

EDIT

Я попытался нету ничего, я только код для зарегистрированных пользователей

+0

Показать код того, что вы попробовали – SReject

+0

i havent попробовали что-нибудь, у меня есть только код для зарегистрированных пользователей –

+0

Вы пытались найти переполнение стека или Google, прежде чем спрашивать? – amaster

ответ

1

Вам нужен набор сессии varaiable:

// Required to set and read sessions 
session_start(); 
// Conditional if logged in 
if(isset($_SESSION['username'])) { 
     // do logged in stuff 
    } 
else 
    // Redirect if not logged in 
    header("Location: login.php"); 
+0

спасибо, чувак, я соглашусь через 9 минут :) –

+1

Вы должны 'exit();' скрипт, чтобы предотвратить утечку любого кода для пользователя, который не вошел в систему. (См. Мой ответ) – Luc

1

При запуске сеанса пользователя, набор $_SESSION переменная:

/* login_submit.php */ 

// Check if username and password are correct 
if ($username == $valid_username && $password == $valid_password) { 
    session_start(); // Start the session 
    $_SESSION["session_secret"] = "a_secret_string"; // Set a secret variable 
    header("Location: index.php"); // Redirect the user to index.php 
} 

Затем проверьте эту переменную, чтобы увидеть, если пользователь вошел в систему:

/* index.php */ 

// Resume the session 
session_start(); 

// Check if the user is logged in 
if ($_SESSION["session_secret"] != "a_secret_string") { 
    // Nope! This user is NOT logged in! 
    header("Location: login.php"); // Redirect the user to login.php 
    exit(); // Exit the script so code doesn't get leaked 
} 

// Code for logged in users goes below 

Не забудьте уничтожить сессию (которая уничтожит все переменные сессии), когда пользователь выходит из системы с помощью session_destroy();