@tchernout

Как организовать доступ в личный кабинет по ip в Opencart?

Доброго времени суток!
Ребята, подскажите решение вопроса, и вообще реально ли сделать так:
После регистрации пользователя, он может войти в личный кабинет но с условием что его ip адрес в момент регистрации - совпадает с ip на данный момент.
Только не спрашивайте зачем)))
  • Вопрос задан
  • 236 просмотров
Пригласить эксперта
Ответы на вопрос 1
zoozag
@zoozag
Opencart
ip уже в базе лежит, так что дело за малым.
Насколько я понимаю за вход отвечает вот этот код
\catalog\controller\account\login.php
if (!$this->customer->login($this->request->post['email'], $this->request->post['password'])) {

Он передает email и пароль. Передвайте еще и ip

Сам метод проверки логина/пароля в system\library\customer.php
public function login($email, $password, $override = false) {

Добавьте в функцию еще один аргумент, $ip
И замените
$customer_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE LOWER(email) = '" . $this->db->escape(utf8_strtolower($email)) . "' AND (password = SHA1(CONCAT(salt, SHA1(CONCAT(salt, SHA1('" . $this->db->escape($password) . "'))))) OR password = '" . $this->db->escape(md5($password)) . "') AND status = '1' AND approved = '1'");

На
$customer_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE LOWER(email) = '" . $this->db->escape(utf8_strtolower($email)) . "' AND (password = SHA1(CONCAT(salt, SHA1(CONCAT(salt, SHA1('" . $this->db->escape($password) . "'))))) OR password = '" . $this->db->escape(md5($password)) . "') AND status = '1' AND approved = '1' AND ip = '". $ip ."'");
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы