Авторизация с возможностью редактирования профиля

Тема в разделе "PHP", создана пользователем Ash_Ketchum, 24 май 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Ash_Ketchum

    Ash_Ketchum Постоялец

    Регистр.:
    17 фев 2008
    Сообщения:
    89
    Симпатии:
    6
    Приветствую.
    Кто-нибудь может подкинуть толковую идею как это лучше реализовать или возможно где-то уже есть такой скрипт..хотя
    хочется самому написать скрипт, а не ковыряться в чьем-то коде...
     
  2. Shabba

    Shabba Создатель

    Регистр.:
    10 мар 2008
    Сообщения:
    14
    Симпатии:
    2
    Ну если хочется самому, то имхо делаешь регистрацию для юзеров с занесением в бд логина, пароля и др полей профиля и даешь юзерам возможность менять поля в своем профиле. Вроде ничего сложного ;)
     
  3. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    сессии вполне подходящий вариант

    в чем вопрос то ?
     
  4. Ash_Ketchum

    Ash_Ketchum Постоялец

    Регистр.:
    17 фев 2008
    Сообщения:
    89
    Симпатии:
    6
    Вопрос как раз и состял в том к чему "привязатся" и от чего "отталкиваться" в таком нелугком деле(по крайней мере для меня). Сессии подходят как нельзя кстати!
    Вот тут есть итересная статья по этому поводу:
    http://phpclub.ru/detail/article/page_password1
    и продолжение:
    http://phpclub.ru/detail/article/page_password2
     
  5. mentanos

    mentanos Постоялец

    Регистр.:
    27 дек 2007
    Сообщения:
    128
    Симпатии:
    35
    нет желания читать до конца приведенное чтиво. но не могу не откомментрировать то, что увидел, пробежавшись по первой части.

    мегаюзабельные переменные $PHP_AUTH_USER/PW доступны только если пхп работает как модуль апача.

    если php как cgi и запускается под владельцем файла (т.е. suexec), тогда в окружении скрипта информации типа USER/PW не будет (ибо не положено по умолчанию) и через mod_rewrite в окружение скрипта эту инфу не удастся передать, ибо апач и запущенный скрипт - процессы разных юзеров.

    поэтому для избежания несовместимостей при работы с http authentication из php нужно использовать вот что:

    Код:
    rewriterule (.*) $1?http_auth=%{HTTP:Authorization} [QSA]
    и в скрипте переменная $_REQUEST['http_auth'] будет содержать следующее:
    Код:
    Basic base64_encode(user:password)


    п/с/ "Авторизация с возможностью редактирования профиля" = "пойди туда не знаю куда". как свои хотения формулируешь, такую помощь и получаешь. о чем тема?
     
  6. masto

    masto Прохожие

    Имхо использовать HTTP-аутентификацию в PHP - большой изврат.
    Зачем ломать голову, если можно без этого обойтись.
     
  7. Ash_Ketchum

    Ash_Ketchum Постоялец

    Регистр.:
    17 фев 2008
    Сообщения:
    89
    Симпатии:
    6
    Я говорю насчёт того, что бы зарегистрированные пользователи могли входить на сайт через форму авторизации и при желании менять свои данные в учётной записи.
     
  8. mentanos

    mentanos Постоялец

    Регистр.:
    27 дек 2007
    Сообщения:
    128
    Симпатии:
    35
    неужели это такая задача, которая требует "идей, как ЭТО лучше реализовать"?

    берешь любой механизм ведения сессий (хоть бы и встроенный) и делаешь для юзеров что угодно - хоть правку учетки хоть поименнопринудительный сбор добровольных пожертвований в помощь страдающим от ожирения небратьям нашим забугорным.

    хотя, может быть ты вообще не знаком именно с тем, как сессии юзера держать? вот статья в помощь, кратко и обо всем http://www.codenet.ru/webmast/php/PHP-Sessions.php
     
    Ash_Ketchum нравится это.
  9. Jeurey

    Jeurey

    Регистр.:
    13 сен 2006
    Сообщения:
    419
    Симпатии:
    576
    Расскажу вкратце, как это делается (чтоб не приводить сам класс авторизации, который написал я...)

    1. Заводится сессия:
    PHP:
    session_start();
    2. Делается проверка - есть ли флаг "юзверь авторизован". Я для этого использую следующий механизм: при авторизации в $_SESSION['user']['id'] записывается ID юзверя
    PHP:
    if(isset($_SESSION['user']['id']))
    // Вот тут заносится флаг "авторизован". поскольку, я использую класс и проверку авторизации провожу только 1 раз, я устанавливаю публичное поле $bIsAuth  значение true
    $this->bIsAuth true;
    }
    3. Далее, соответственно делаю выборку данных профиля из базы по $_SESSION['user']['id'] и отдаю на редактирование.

    Hint: для формы регистрации и редактирования профиля можно использовать одно и тоже представление компоненты user, что означает "не нужно создавать отдельную форму, если вы используете MVC в своей разработке.
     
    Ash_Ketchum нравится это.
  10. Ash_Ketchum

    Ash_Ketchum Постоялец

    Регистр.:
    17 фев 2008
    Сообщения:
    89
    Симпатии:
    6
    mentanos
    Вы правы, я с сессиями крайнемало знаком.
    Спасибо за совет и ссылочку буду пробывать.
     
Статус темы:
Закрыта.