Как сделать безопасный сеанс с php и mysql? - PullRequest
2 голосов
/ 11 января 2012

Я пробовал скрипт session.php, который запускается в начале каждой страницы моего веб-сайта, чтобы убедиться, что пользователь вошел в систему, прежде чем он сможет просматривать сайт.Однако теперь сценарий process_login не загружает защищенную целевую страницу и просто перезагружается на страницу входа.Я считаю, что моя безопасная сессия установлена ​​неправильно.Может кто-нибудь еще объяснить, как это работает для меня?

Это сценарий process_login, который выполняется, когда пользователь нажимает кнопку входа в систему:

<?php

// Initialize session
session_start();

// Require database connection settings
require('config.inc');

// Retrieve email and password from database
$email = mysql_real_escape_string($_POST['email']);
$password = mysql_real_escape_string(md5($_POST['password']));
$query = "SELECT * FROM $table WHERE email='$email' AND password='$password' LIMIT 1";
$result = mysql_query($query);

// Check email and password match
if(mysql_num_rows($result)) {
        // Set email session variable
        $_SESSION['email'] = $_POST['email'];
        // Jump to secured page
        header('Location: home.php');
}
else {
            // Jump to login page
            header('Location: index.php');
}

?>

, а это сценарий session.php, которыйв заголовке каждой страницы, требующей входа пользователя:

<?php

if (isset($_SESSION['email']) == 0) {
    // Redirect to login page
    header('Location: index.php');
}

?>

1 Ответ

2 голосов
/ 11 января 2012

Вам необходимо включить код

session_start();

в ваш файл session.php для доступа к переменным сеанса

Или вы должны убедиться, что автоматический запуск сеанса включен на вашем phpконфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...