Как лучше всего сделать авторизацию и распределение прав+защиту от несанкц. входа?

Minastis

Подскажите пожалуйста, каким образом лучше всего реализовать вход пользователя в систему? Я вроде и пытался делать сессиями, с другой стороны, не до конца понял принцип работы сессий. Также, даже если через jquery очищать страницу админки, если сессия не isset, к примеру, на правой кнопке-посмотреть исходный код все равно еще очень много инфы, которая вполне может помочь проникнуть в базу данных и там все "побить".Так же я не понял принципа начала, остановки, уничтожения сессии и передачи переменных. на одной странице сделал session_start(), после сделал привязку переменных в $_SESSION, после на другой странице ничего не доступно. Прописал на другой странице session_start(), теперь все доступно. Но как так? Выходит, злоумышленнику или даже нечаянно будет достаточно забыть нажать кнопку "выход из профиля", как при следующем заходе он или другой человек с этого компьютера получит легкий доступ к главной странице админки. То же и с правами. Передавая их в сессиях, я не знаю, а вдруг они останутся навсегда в памяти? session_destroy() на других страницах после логина так и вовсе говорят: сессии нету, нечего удалять.Большая часть уроков по сессиям в гугле - непонятно написана а некоторые до сих пор используют session_register вместо $_SESSION.
7 ответов

Minastis

а вдруг они останутся навсегда в памяти?
сессия уничтожается при закрытии браузера
а некоторые до сих пор используют session_register вместо $_SESSION.
да ну? они уже устарели и не работают
на одной странице сделал session_start(), после сделал привязку переменных в $_SESSION, после на другой странице ничего не доступно. Прописал на другой странице session_start(), теперь все доступно.
для работы сессий необоходимо запустить их механизм -
session_start();


Minastis

Скажите пожалуйста, а как вытащить переменную из сессии без обновления страницы с логином? Суть в том, что у меня с помощью ajax идет авторизация. В .php файле auth.php происходит проверка логина\пароля и после уже на главной странице login.php javascript выводит информацию из сессии. Примерно так:
$('.hello').append('<?php echo($_SESSION['rights']) ?>');
Почему-то переменной нет. Но уже после нажатия на кнопку непосредственно "войти в панель", в панели переменные все есть.


Minastis

даже здесь видно по подсветке что не таки так не получится


Minastis

Минутку... Кавычки?


Minastis

Минутку... Кавычки?
с кавычками всё норм , php воспренимает хтмл как просто текст , ему плевать там кавычка или буква или еще че :
sometext<?php echo($_SESSION['rights']) ?>sometext
далее сгенерировав страницу он отсылает ее браузеру:
$('.hello').append('somedata');
Скажите пожалуйста, а как вытащить переменную из сессии без обновления страницы с логином?
создайте обработчик , откройте там сессию в начале скрипта и цепайте от туда аяксом что надо


Minastis

crautcher, я имел в виду что в его примере append закроется перед rights


Minastis

crautcher, я имел в виду что в его примере append закроется перед rights
<? $some['rights'] = 'че это закроется ?' ?>
$('.hello').append('<?php echo($some['rights']) ?>');
output:
$('.hello').append('че это закроется ?');