Авторизация через соц.сети – Boxcode 8.5 и ниже

Авторизация через соц.сети – Boxcode 8.5 и ниже

Приветствую тебя. Давно еще делал авторизацию через социальные сети для движка Boxcode и, вот, сегодня решил поделиться кодом.

Установка модуля несложная. Будьте внимательны. Авторизация использует сервис Ulogin, поэтому любые задержки или отказы возникают по причине работы  этого сервиса ( очень редко ).

Инструкция по установке прилагается. Делайте всегда копии файлов, прежде, чем начать работать.

Авторизация подходит для движка Boxcode  любой версии , не выше 8.5 .

Скачать можно по ссылке


присылайте свои идеи к нам на admin@make-board.ru

55 Комментариев
  1. Есть одно НО, я не уверен, что все соц сети отдают email в нижнем регистре. Может strtolower() еще к $data[’email’] добавить??

    • Начнем с того, что авторизация в движке проходит по логину. Если вы пишите про почту , то,я так полагаю, что у вас авторизация идет по почте ? – Если да, то проверьте, не стоит ли у вас в выборке на колонке почты BINARY

        • В таком случае, если обычная выборка по почте, то учитываться регистр не должен, но вашего кода выборки я не вижу. Если вопрос будет актуален , то создавайте тему на форуме с примером кода вашего !

  2. if (ON_AKTIV_AVTORIZ==1)
    {

    //проверка e-mail в таблице пользователей
    $db_query=”select count(*) from “.DB_PREF.”users where email_user='”.codeText($this->mas_inbox_registr[“email_user”]).”‘”;
    $q_ident=obr_db_query($db_query);

    $kol_email=mysql_result($q_ident,0);
    if ($kol_email!=0)
    {
    $this->mas_error_registr[]=”Пользователь с таким E-mail уже существует!”;
    return;
    }

    }

    • в том файле сделайте var_dump($this->mas_inbox_registr[“email_user”]);

      Потом напишите email с большой буквы и подтвердите. Потом сообщите, в каком регистре вывел var_dump почту

        • Тогда проверяйте в таблице эту колонку. Если на ней не стоит BINARY или BLOB, то тогда я ничем не могу подсказать, т.к по обычному полю (tinytext) регистр не учитывается

          • 3 name_user tinytext utf8_general_ci
            Сам не понимаю как…))

            Но у принципе тот метод, что я применил, сработает же?

        • email_user,а не name_user.

          При регистрации переводить все в нижний регистр, при авторизации в нижний регистр – да , поможет

          • email_user тоже самое, tinytext. Я просто перепутал при копировании))

  3. все установил, работает, в registr_showuser.html логин получилось изменить, а вот в sendms, show_list_message, show_one_message не понял как. Подскажите пожалуйста.

    • в шаге 7 инструкции
      Человек , который авторизовался через соц.сети будет иметь не очень хороший логин (будет vasya|vk.com/id12121212)
      Поэтому можно ,везде, где отображается логин юзера сделать функцию explode (на примере анкеты)
      файл /templates/light/components/registr_showuser.html
      {?$name_user=explode(‘|’,$data_user[“name_user”]|codehtml)}
      Логин: {$name_user[0]}
      но этот метод не работает в sendms.html, show_list_message.html, show_one_message.html. Выдает ошибку (правда я это делал на денвере). То есть если отправлять от пользователя личное сообщение, который зарегистрировался по ulogin, то выводится типа от vasya|vk.com/id12121212. Помогите пожалуйста.

      • Потому что в данных файлах логин выводится через другую переменную , например
        $data_recipient_user[“name_user”].
        Достаточно открыть файлы и смотреть название этих переменных

        • понятно но меняю с
          {?$name_user=explode(‘|’,$data_user[“name_user”]|codehtml)}
          на
          {?$data_recipient_user=explode(‘|’,$data_user[“name_user”]|codehtml)}
          но выводит ошибку постоянно
          Fatal error: Maximum function nesting level of ‘100’ reached, aborting!

  4. в общем постоянно выводит ошибку: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 19362 bytes) in /var/www/www-root/data/www/site.ru/addapplication/dmk/dmk_compiler.class.php on line 883

  5. делаю так:
    размещаю {?$name_user=explode(‘|’,$data_recipient_user[“name_user”])}, далее за место {$data_recipient_user[“name_user”]} ставлю {$name_user[0]}, загружаю на сервер, ошибка: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 19362 bytes) in /var/www/www-root/data/www/site.ru/addapplication/dmk/dmk_compiler.class.php on line 883

  6. sendms.html
    Там где “Новое сообщение для пользователя: {$data_recipient_user[“name_user”]} ” выводится имя кому отправить сообщение, если он зарегистрирован посредством соц сетей, то сейчас выводится типа “vasya|vk.com/id12121212”, если в любом месте разместить {?$name_user=explode(‘|’,$data_recipient_user[“name_user”])} то выводится ошибка “Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 19358 bytes) in /var/www/www-root/data/www/site.ru/addapplication/dmk/dmk_compiler.class.php on line 883” в любом случае.

Комментировать

Обязательные поля отмечены *. Ваш электронный адрес не будет опубликован.