За последние 24 часа нас посетили 17787 программистов и 1718 роботов. Сейчас ищут 937 программистов ...

Аутентификация пользлвателей

Тема в разделе "Прочие вопросы по PHP", создана пользователем anrus, 27 дек 2014.

  1. anrus

    anrus Новичок

    С нами с:
    26 дек 2014
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте и доброго времени суток. Я учусь в колледже и пишу дипломную. Изучаю php сам уже пару месяцев по форумам. Столкнулся с проблемой. В колледже помочь не могут :) , ну об уровне образования отдельный разговор. Буду благодарен всем кто сможет помочь

    СУТЬ ВОПРОСА
    Как сделать аутентификацию пользователей не нарушая концепции MVC приложения?

    У меня есть следующая идея, но что-то мне кажется, что она не будет работать. Жду от Вас предложений по реализации задачи или чтобы Вы подсказали что не так в моей идее. Желательно с объяснением как для новичка

    Вот сам вариант. https://drive.google.com/file/d/0ByAsks3al55jTUlYUGtpcFlOQW ... sp=sharing
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Смотри у тебя есть роутер, который я думаю управляет путями, к нему добавь ещё firewall и acl/rbac для авторизации.
    Посмотри как всё устроенно например в symfony2.
    Учить лучше по свежим книгам + теория по паттернам, ООП можешь посмотреть.

    И всё зависит от задачи, это как с алгоритмами, к ним разные требования.
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Подалуйста изложи "идею" без необходимости откуда-то что-то скачивать.
    А кто сказал, что одно против другого? Обоснуй.
     
  4. anrus

    anrus Новичок

    С нами с:
    26 дек 2014
    Сообщения:
    2
    Симпатии:
    0
    artoodetoo спасибо за критику :) ,
    я думаю, что если напрямую подключаться к БД из контроллера или из представления, пытаясь проводить операции над данными, то это нарушит саму идею модели (Это моё мнение могу быть не прав :) ). Насчёт идеи - у меня её нет и за этим я и задал вопрос, чтоб мне помогли и описали как и что должно работать, и приложил к вопросу я свой вариант, чтоб мне сказали правильный он или нет и всё (скорее всего не правильный). Под словом правильный я не подразумеваю рабочий т.к. заставить работать не проблема, но последствия могут быть неожиданными. Уже 3 раза переписываю эту несчастную дипломную и 4-го не хочу. А вложил файл, т.к. не было времени регистрироваться на хостинге изображений, а другого метода вставить изображение я не нашёл, извините.

    denis01 СПАСИБО ЗА ОТВЕТ.
    Да роутер (или рутер) есть, это 1 маленькая функция, вернее метод, а вторая подключает файл контроллера. Читал про spl_autoloader, так и не разобрался... оставил до лучших времён.

    Код (PHP):
    1. public function split_url(){
    2.     global $config;
    3.                 
    4.         $this->controller=$config['default_controller'];
    5.         $this->action=$config['default_action'];
    6.         //echo $_GET['url'],$this->controller,$this->action;
    7.         
    8.         if(isset($_GET['url'])){
    9.             $segments = explode('/',trim($_GET['url'] , '/'));
    10.             if(isset($segments[0]) && ($segments[0] !='')){
    11.                 $this->controller=$segments[0];
    12.             }
    13.  
    14.             if(isset($segments[1]) && ($segments[1] !='')){
    15.                 $this->action=$segments[1];
    16.             }
    17.             
    18.             if(count(array_slice($segments,2)) >0) {
    19.                 $this->params=array_slice($segments,2);
    20.                 //print_r( $this->params);
    21.             }
    22.         }
    23.         //echo $this->controller,$this->action;
    24.     }
    25.     
    26.     public function call_controller(){
    27.     global $config;
    28.     $path = CONTROLLERS_DIR . DS . $this->controller . '.php';
    29.         if(file_exists($path)){
    30.             include_once($path);
    31.             $this->controller = new $this->controller();
    32.                 if(method_exists($this->controller,$this->action) && ($this->test_method()))
    33.                 {
    34.                     call_user_func_array(array($this->controller,$this->action),$this->params);
    35.                 } else{
    36.                     call_user_func(array($this->controller, 'index'));
    37.                 }
    38.             
    39.         }else{
    40.         include_once(CONTROLLERS_DIR . DS . $config['error_controller'] . '.php');
    41.         $this->controller = new $config['error_controller'];
    42.         }
    43.     }
    За firewall и acl/rbac спасибо, погуглю.

    Посмотри как всё устроенно например в symfony2.
    Как-то смотрел не разобрался там спецом нужно быть, чтоб понять тот код :)

    Учить лучше по свежим книгам + теория по паттернам, ООП можешь посмотреть.
    Можете посоветовать что-то, но такое конкретное без лирических отступлений :) чтоб по существу, а то смотрел пару видео уроков и понял что не в них счастье.

    И всё зависит от задачи, это как с алгоритмами, к ним разные требования.

    Задача простая
    Создать freelance сайт с личным кабинетом у каждого пользователя и с админ панелью, с возможностью выбора шаблонов. Ну естественно с регистрацией т.п. Это дипломная которую нужно будет показать в течении 15 минут через 3 месяца... Времени, я понял у меня нет, учить придется на практике. За последние 2 месяца вроде получается, это с 0 и уже что-то получилось.

    СПАСИБО ЕЩЁ РАЗ ВСЕМ

    Добавлено спустя 2 минуты 48 секунд:
    Есть 1 маленькая просьба. Понимаю, что может быть лень писать, но пожалуйста пишите как можно подробней, каждое ваше слово сокращает мои поиски на пол часа. Ценю вашу помощь и понимание :)
     
  5. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Читай книги, вместо видео.
    Раз это дипломная, то главное чтобы ты понимал что и как работает наизусть и объяснил это тем кто будет проверить.
    Пиши и рассказывай как можно более простым языком и объясняй термины.

    Задача думаю тебе по силам.