Аутентификация для малого сайта, пример? - PullRequest
1 голос
/ 21 марта 2011


Мне нужен логин, чтобы 10 учеников могли просматривать учебные материалы.Простой - это хорошо.

Возможно, он просто перенаправляет на страницу, если студент входит в систему правильно. Можете ли вы выслать мне ссылку или пример или лучший учебник?

Мне сказали, что один только JavaScript не работает, поэтому предпочтительнее следующая простейшая вещь.Если есть пример, когда мне не нужно переименовывать все мои страницы в php, это было бы лучше.
Спасибо,

Ответы [ 4 ]

1 голос
/ 21 марта 2011

Простой ...

Создайте файл с именем functions и вставьте следующее:

session_start();

$_GLOBALS['users'] = array(
    //'username' => 'password'
    'robert' => 'my_pass'
);

function isAuthed()
{
    if(empty($_SESSION['logged_in']))
    {
        if(!empty($_REQUEST['username']) || !empty($_REQUEST['password']))
        {
            if(isset($_GLOBALS['users']) && is_array($_GLOBALS['users']))
            {
                if(isset($_GLOBALS['users'][$_REQUEST['username']]) && $_GLOBALS['users'][$_REQUEST['username']] === $_REQUEST['password'])
                {
                    $_SESSION['logged_in'] = true;
                    return true;
                }
            }
        }
    }else
    {
        return true;
    }
    return false;
}

и затем на ваших защищенных страницах просто выполните:

if(!isAuthed())
{
    die("You're not authorized to see this page");
}

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

Примечание. Это не код для копирования и прошивки, это только для примера.

1 голос
/ 21 марта 2011

Я использовал это, когда учился безопасному входу в систему с использованием PHP.

http://www.devshed.com/c/a/PHP/Creating-a-Secure-PHP-Login-Script/1/

Было очень полезно.

0 голосов
/ 21 марта 2011

Вы могли бы "сделать" это с помощью JavaScript, если бы вы сделали какую-то функцию AJAX, которая вызывала страницу php, а затем возвращала ваше значение. Это может сработать, и именно так многие сайты делают свои логины на самом деле. Таким образом, вашему клиенту не нужно будет переименовывать свой сайт, и вы можете просто настроить массив логинов на странице php.

Это НЕ будет безопасно вообще, но будет работать нормально.

Полагаю, вы бы сделали что-то подобное (я собираюсь использовать jQuery , потому что с ним легче работать с Ajax. Это действительно просто, и если вы собираетесь изучать Javascript, вероятно, в наши дни лучше знать основы, а затем использовать библиотеку фреймворков, например, jQuery)

$(document).ready(function(){
  $("#NAME-OF-SUBMIT-BUTTON").submit(function(){
    var username = $(this).find("#username");
    var password = $(this).find("#password");
    $("NAME-OF-DIV-FOR-RETURN").load('login.php', {['parameters']:,[username,password]},function(responseText){
      if(responseText == 'SUCCESSFUL-RESPONSE-TEXT'){
        $("#NAME-OF-FORM").html("Login Successful");
      }
    });
  });
});

и, конечно, вы захотите установить переменную сеанса или cookie на вашей странице php, чтобы указать, что пользователь вошел в систему. Опять же, это не очень безопасно, но это то, что я бы сделал, если бы это было как домашнее задание или просто СУПЕР временно. Конечно, я бы предложил создать жестко запрограммированные имена пользователей и пароли в массиве на вашей исходной странице в PHP с обратной передачей себе, если вы собираетесь пойти на это временно. Использование Javascript и Ajax для этого просто немного похоже.

Но вы просили об этом!

0 голосов
/ 21 марта 2011

Это зависит от того, что именно вы пытаетесь сделать. Если вам нужна система входа в систему с чистым JS, вы можете сделать что-то довольно простое, например, XOR'ить страницу перенаправления с паролем, сохранить ее на странице и затем снова XOR'ить, когда они введут пароль.

Если вам нужна настоящая система входа в систему, вам нужен сервер, на котором запущен какой-нибудь сервер (возможно, Node.js, если вы пытаетесь изучать JavaScript), некоторый тип базы данных (например, MySQL), пользователи хранятся в этой базе данных. .

Внешний javascript может быть ответственным за проверку входа в систему через ajax. Используя jQuery, что-то вроде:

function validateLogin(user, pass, successCallback, errorCallback){
    $.get('/login', {user: user, pass:pass}, function(data){
        if(data.status == 'success'){
            successCallback();
        }else{
            errorCallback();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...