Вопрос № 75604: Уважаемые эксперты! Существует ли возможность создания на сайте авторизации без использования баз данных, только средствами HTML+PHP?
Надо сделать обычную форму регистрации (E-mail, login, password) и организовать доступ в закрытую зону сайта тол...
Вопрос № 75.604
Уважаемые эксперты! Существует ли возможность создания на сайте авторизации без использования баз данных, только средствами HTML+PHP?
Надо сделать обычную форму регистрации (E-mail, login, password) и организовать доступ в закрытую зону сайта только для зарегистрированных пользователей.
Semiotic, esq.
Отправлен: 13.02.2007, 21:57
Вопрос задал: Semiotic (статус: Посетитель)
Всего ответов: 6 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Селев Валерий
Здравствуйте, Semiotic!
Если тебе надо хранить данные о пользователях - так или иначе, без наличия некоего "хранилища" тебе не обойтись.
Можно не называть его базой данных (хотя суть от этого не изменится), а хранить информацию о пользователях в файлах. Например - на каждую учётную запись пользователя - отдельный файл.
Т.е., по сути, вместо использования удобных готовых возможностей SQL, тебе придётся самому написать все операции для добавления/удаления/изменения учётной записи пользователя - простая работа с файлами.
Ответ отправил: Селев Валерий (статус: 3-ий класс)
Ответ отправлен: 13.02.2007, 22:06
Отвечает: Cimus
Здравствуйте, Semiotic!
Конечно можно!
для этого храните пары логин-пароль в текстовом файле.
Также можно сделать авторизацию средствами самого веб сервера (если есть доступ к .htaccess и htpasswd).
--------- Достичь можно любых высот !
Ответ отправил: Cimus (статус: Студент)
Ответ отправлен: 13.02.2007, 22:07
Отвечает: Zolton007
Приветствую, Semiotic!
Конечно имеется! Многие даже считают, что хранить пароль в БД опаснее, чем фйле. Ой, забежал вперед.... =) Вобщем можно хранить логин пароль и мыло в файле. Файл этот желательно запрятать поглубже и понадежнее, чтобы к нему как можно сложнее было получить доступ. Это уже дело техники. Пароль круче всего хранить в виде хэша (MD5 например). Причем к хэшу можно добавить несколько лишних символов, чтобы его труднее было дешифровать. Это тож дело техники.
Доступ к какому-либо разделу можно также ограничить встроенной аутентификацией HTTP протокола, т.е. базовой аутентификацией, либо дайджест-аутентификацией, использующей MD5, но к сожалению она поддерживается не всеми браузерами. И та и другая аутентификации не очень безопасны.
Еще можно использовать базовую аутентификацию при помощи файлов .htaccess апача и базовую аутентификацию PHP.
Про все что я написал куча инфы в рунете. :))) гугл в помощь!
--------- Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 2-ой класс)
Ответ отправлен: 13.02.2007, 22:37
Отвечает: Илья Андреевич
Здравствуйте, Semiotic!
Ко всему вышесказанному добавлю: либо ограничивайте доступ к файлу (опятьже .htaccess в помощь)
либо делайте его как пхп-скрипт.
тоесть храните например в data.php, только не забудьте в конце и начале ставить пхп-теги. и тогда никто ваши пароли не утащит :)
Ответ отправил: Илья Андреевич (статус: 9-ый класс)
Ответ отправлен: 13.02.2007, 23:01
Отвечает: Бородин Александр Олегович
Здравствуйте, Semiotic!
Без хранилища данных Вам это вряд ли удастся. А какое оно, это хранилище данных, - велика ли разница? Будут ли это файлы или базы данных, не суть важно. Я бы сказал, что в базе сохранять технически проще, потому что у базы интерфейс уже готов, а храня данные в файлах, Вам придется этот "интерфейс" разрабатывать самому. Другое дело, если базы не поддерживаются хостером. В таком случае я бы такого хостера фтопку, честное слово:-)))
Короче говоря, Вам надо средствами PHP пополнять свое хранилище паролей и логинов. Их нельзя хранить в самом скрипте. Их надо хранить где-то в стороннем хранилище. А как Вы это сделаете - Вам решать. Собственно, путей немного, всего два и один Вы уже отсекли.
--------- Ничто не сближает людей так, как совместное преступление. Или покупка телевизора.
Отвечает: Aster Aster Aster
Здравствуйте, Semiotic!
Да возможно.Но тут действительно тогда нужно использовать файлы на сервере.Вот к примеру если хотите сделать запрет на какую либо папку на серваке-то используйте вложеный в нее файл .htaccess, где используются команды доступа к текущей директории.Сам файл паролей назыв .htpasswd( эти имена файлов указаны по умолчанию на серваке).Шифровка паролей в .htpasswd идет в DES-не сильно сложно подобрать, так что не надо им светить...:)А если хотите для пользователей делать авториз да еще и без баз данных -хэ тут без
файлов не обоитись.Тут вам пароли с логинами в файле надо организовать( лучше построчно...) и функции для считывания и записи паролей и логинов с этого самого файла:). Но вот а подробности по работе с файлами и проведении авторизаций советую прочитать в учебнике там подробнее росспишут все, чем кто либо в форуме или в чате;).А, и еще один момент...Если вы будете использывать авториз с хранением данных в файле в больших проектах-то не исключено что несколько пользователей з
арегаются одновременно и данные в этот самый файл лягут как слои один на другой -данные испортятся и кирдык...!:)Хоть это и врядли произойдет но мало ли!!!Чтоб этого не произошло,то используйте функцию блокировки файлов:flock()-про нее тоже почитайте:)Если использывать авторизацию через БД то СУБД сама регулирует последовательной записью данных в таблицы и уж конечно ничего блокировать не надо:):):) Удачи!!!
Ответ отправил: Aster Aster Aster (статус: 1-ый класс)
Ответ отправлен: 13.02.2007, 23:59