всех пользователей сам заношу руками в базу.
Там есть хак для использования ника, имеете ввиду что, вместо ника прописать скажем phone и регистрировать по номеру телефона?
Да хоть по аське!
instantcms.ru/forum/thread21606.html
Вместо никнейма напишите phone.
Да хоть по любимой музыке.
Авторизацию можно сделать по любому (лучше уникальному) полю из таблицы cms_users
Birles,
Да хоть по любимой музыке.
Авторизацию можно сделать по любому (лучше уникальному) полю из таблицы cms_users
Ясно, телефонные номера как раз таки получаются уникальными. Может подскажете где взять готовое рабочее, проверенное решение для 2.4.5
public static function login($phone, $password, $remember=false) { /* if (!preg_match("/^([a-z0-9\._-]+)@([a-z0-9\._-]+)\.([a-z]{2,6})$/i", $email)){ return 0; } */ $model = cmsCore::getModel('users'); $model->filterEqual('phone', $phone); $model->filterFunc('password', "MD5(CONCAT(MD5('{$password}'), i.password_salt))"); $user = $model->getUser(); if (!$user) {$model = cmsCore::getModel('users'); $model->filterEqual('email', $phone); $model->filterFunc('password', "MD5(CONCAT(MD5('{$password}'), i.password_salt))"); $user = $model->getUser(); } if(!$user) { } $user = cmsEventsManager::hook('user_login', $user); 'id' => $user['id'], 'groups' => $user['groups'], 'time_zone' => $user['time_zone'], 'perms' => self::getPermissions($user['groups'], $user['id']), 'is_admin' => $user['is_admin'], )); 'ip' => self::getIp() ); if ($remember){ $auth_token = string_random(32, $email); $update_data['auth_token'] = $auth_token; } $model->update('cms_users', $user['id'], $update_data, true); return $user['id']; }
public static function login($email, $password, $remember=false) { /* if (!preg_match("/^([a-z0-9\._-]+)@([a-z0-9\._-]+)\.([a-z]{2,6})$/i", $email)){ return 0; } */ $model = cmsCore::getModel('users'); $model->filterEqual('email', $email); $model->filterFunc('password', "MD5(CONCAT(MD5('{$password}'), i.password_salt))"); $user = $model->getUser(); if (!$user){$model = cmsCore::getModel('users'); $model->filterEqual('phone', $email); $model->filterFunc('password', "MD5(CONCAT(MD5('{$password}'), i.password_salt))"); $user = $model->getUser(); } if (!$user){$model = cmsCore::getModel('users'); $model->filterEqual('skype', $email); $model->filterFunc('password', "MD5(CONCAT(MD5('{$password}'), i.password_salt))"); $user = $model->getUser(); } if (!$user){$model = cmsCore::getModel('users'); $model->filterEqual('icq', $email); $model->filterFunc('password', "MD5(CONCAT(MD5('{$password}'), i.password_salt))"); $user = $model->getUser(); } if (!$user){$model = cmsCore::getModel('users'); $model->filterEqual('nickname', $email); $model->filterFunc('password', "MD5(CONCAT(MD5('{$password}'), i.password_salt))"); $user = $model->getUser(); } if(!$user) { } $user = cmsEventsManager::hook('user_login', $user); 'id' => $user['id'], 'groups' => $user['groups'], 'time_zone' => $user['time_zone'], 'perms' => self::getPermissions($user['groups'], $user['id']), 'is_admin' => $user['is_admin'], )); 'ip' => self::getIp() ); if ($remember){ $auth_token = string_random(32, $email); $update_data['auth_token'] = $auth_token; } $model->update('cms_users', $user['id'], $update_data, true); return $user['id']; }
Заменил public static function login в файле \system\core\user.php кодом, который вы предоставили в первом спойлере и ничего не происходит. Как просил майл при регистрации, так и просит. При попытке зарегистрироваться пишет что формат емайл неправильный. Не подскажете, может я что то делаю неправильно. Пробовал вставить из второго спойлера, то же самое, ничего не происходит. Менял в версии 2.5.1HiAndy
Проверил на трех локальных сайтах (2.4, 2.5, 2.5.1) и одном рабочем (2.4).
Все работает безотказно.
Раз пишет что
значит работает проверка на правильность емейла.формат емайл неправильный
Вы видите, что в том файле, что я прислал эта функция "закомментирована".
/* if (!preg_match("/^([a-z0-9\._-]+)@([a-z0-9\._-]+)\.([a-z]{2,6})$/i", $email)){ return 0; } */
Почитайте про пыхапе хоть чуть-чуть. Например здесь: www.php.su/
Да! И кэш очистите.
, но к сожалению я простой пользователь и ничего не понимаю в пхп. Мои знания ограничиваются тем, что могу заменить что то, на что то готовое или чуть чуть подредактировать css, можно сказать совсем чайник.HiAndy
Увы, администратор сайта не может себе позволить быть "просто пользователем".к сожалению я простой пользователь
Все же рекомендую почитать, чтобы иметь минимальное представление что вообще происходит на сайте.
А вот авторизация по никнейму, телефону, аське и скайпу laugh
Осталось сделать авторизацию по размеру МПХ.
Я вот в этот хук засунул авторизацию по номеру телефона
Проверяю с помощью
в базу данных записали привязку своего компонента к этому хуку?получаю пустой массив.
в базу данных записали привязку своего компонента к этому хуку?
Спасибо вам огромаднейшее)) Теперь всё работает!!!
А всю функцию login, которая находится в /system/core/user.php, можно как-то переопределить в файле custom.php?
Тогда бы можно было не переживать и по поводу закомментированных строк проверки мыла на мыльность))
Что то по всякому попробовал, не получилось сделать авторизацию по номеру телефона… Может у кого есть решение для новой версии движка?
Что то по всякому попробовал, не получилось сделать авторизацию по номеру телефона… Может у кого есть решение для новой версии движка?
Я у Максисофта покупал… Не разу так и не использовал еще)))