Дык со всем разобраться можно : ) Вот сколько времени на это уйдет...
Авторизацию саму по себе я сделал. А вот как ограничить доступ извне к страницам, которые не должны видеть неавторизованные?
Вот как сделано у меня. Критикуйте.
Если логин-пароль совпадают с тем, что хранится в базе, то создаем какую-нибудь переменную, например $userid, храним, скажем, в ней номер пользователя, или (вернее "и" в другой его имя - чтоб часто к базе не обращаться).
На странице: если существует $userid, значит он прописан в сессии, значит авторизация уже прошла, то показываем то, что можно видеть, иначе не показываем.
Этот трюк взламывается: дописываем в адресе &userid=25 - и вуаля!
Усложняем. В сессии храним например логин пользователя. Теперь злоумышленнику надо знать кроме номера пользователя еще и его логин. Это все проверяется по базе. Взламывается аналогично: &userid=25&userlogin=vasya + перебор, чтобы узнать номер. Поэтому на сайте "Знака" авторизацию и убрал (я там хранил имя пользователя). Надеюсь никто не успел воспользоваться : )
Можно еще хранить в сессии и пароль, а потом это все пробивать по базе - тогда взломщику надо будет знать еще и пароль (в каком-то фильме грили, что 99% паролей - это "sex" "secret" и "god" : ) Но тогда он сможет просто войти и как пользователь!
Вопрос вот в чем - надежно-ли хранить в переменных сессии пароль? Можно их как-нибудь несанкционированно прочитать?