Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Генерация и отправка паролей пользователям


ruslanstroj
 Поделиться

Рекомендованные сообщения

добрый день

может кто встречал такое решение?

в базе 10тыс пользователей, нужно сделать им новые пароли и разослать их по email пользователям

Ссылка на комментарий
Поделиться на других сайтах


55 минут назад, ruslanstroj сказал:

добрый день

может кто встречал такое решение?

в базе 10тыс пользователей, нужно сделать им новые пароли и разослать их по email пользователям

 

ни разу не встречал. Это индивидуальное решение задачи.

Причем не описано с вашей стороны при каких обстоятельствах отправить всем юсерам пароли,

может по клику кнопочки в админке, может по какой то дате или еще что

 

А если вам надо тупо здесь и сейчас отослать и не нужны всякие там кнопочки и условия, то

 

К примеру создаем новый метод в контроллере contact.php, туда суем свой код:

  1. Получаем юсеров из бд
  2. Генерим пароль
  3. Отсылаем

и чтоб это сработало перейти по адресу sait.ru/index.php?route=information/contact/твой метод

 

Если сам не пытался сделать и ждешь что тебе что то дадут бесплатно, то иди заказывай такую задачу

Ссылка на комментарий
Поделиться на других сайтах

41 минуту назад, Venter сказал:

 

ни разу не встречал. Это индивидуальное решение задачи.

Причем не описано с вашей стороны при каких обстоятельствах отправить всем юсерам пароли,

может по клику кнопочки в админке, может по какой то дате или еще что

 

А если вам надо тупо здесь и сейчас отослать и не нужны всякие там кнопочки и условия, то

 

К примеру создаем новый метод в контроллере contact.php, туда суем свой код:

  1. Получаем юсеров из бд
  2. Генерим пароль
  3. Отсылаем

и чтоб это сработало перейти по адресу sait.ru/index.php?route=information/contact/твой метод

 

Если сам не пытался сделать и ждешь что тебе что то дадут бесплатно, то иди заказывай такую задачу

 

не бесплатно понятное дело.

Ссылка на комментарий
Поделиться на других сайтах


7 минут назад, ruslanstroj сказал:

переезд с джумлы, пароли не получилось перенести

Тогда просто отправьте ссылку на восстановление пароля с разъяснением ситуации или закажите услугу переноса паролей (при авторизации будет генерироваться под новую систему).

Ссылка на комментарий
Поделиться на других сайтах

29 минут назад, buslikdrev сказал:

Тогда просто отправьте ссылку на восстановление пароля с разъяснением ситуации или закажите услугу переноса паролей (при авторизации будет генерироваться под новую систему).

 

ну так это опять таки рассылка что и в первом случае

Ссылка на комментарий
Поделиться на других сайтах

34 минуты назад, ruslanstroj сказал:

 

не бесплатно понятное дело.

 

ну раз так, то напиши что нужно сделать не за бесплатно, что ищите исполнителя

Ссылка на комментарий
Поделиться на других сайтах

Доброго времени суток ну как нашелся хороший вариант модуля для генерации пароля.

Ссылка на комментарий
Поделиться на других сайтах


нашел такую функцию

https://parzibyte.me/blog/en/2019/06/01/reset-opencart-password-manually-database/

вот теперь думаю как применить для всех сразу юзеров

Ссылка на комментарий
Поделиться на других сайтах


получается нужно первым шагом вытянуть всех юзером, потом пройтись по ним циклов использую эту функцию

может кто помощь с этим?

Ссылка на комментарий
Поделиться на других сайтах


так

пол дела сделал

кто поможет составить запрос дальше

<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);



function token($length = 32) {
	$string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
	
	$max = strlen($string) - 1;
	
	$token = '';
	
	for ($i = 0; $i < $length; $i++) {
		$token .= $string[mt_rand(0, $max)];
	}	
	
	return $token;
}

function generar_pass($passTextoPlano){
	$sal = token(9);
	$hash = sha1($sal . sha1($sal . sha1($passTextoPlano)));
	return [
		"sal" => $sal,
		"hash" => $hash,
	];
}

$mysqli = new mysqli("localhost", "test", "test", "test");



 $sql = mysqli_query($mysqli, 'SELECT * FROM `oc_customer`');
  while ($result = mysqli_fetch_array($sql)) {

    $id_user = $result['customer_id'];
    $name_user = $result['firstname'];
    $email_user = $result['email'];
    $phone_user = $result['telephone'];

		$datosPass = generar_pass("123456");
		$pass = $datosPass["hash"];
		$sal = $datosPass["sal"];

		printf("id: %s имя: %s  почта: %s телефон: %s пароль: %s соль: %s <br>", $id_user, $name_user, $email_user, $phone_user, $pass, $sal );

  }

 

Ссылка на комментарий
Поделиться на других сайтах


зачем такой велосипед писать когда можно воспользоваться функция ми опенкарта

Ссылка на комментарий
Поделиться на других сайтах

создаете к примеру отдельный контроллер, допустим мы его положим в папку common, назовем контроллер sender.php

 

потом в этот файл вставляем код

<?php
class ControllerCommonSender extends Controller {
	public function index() {
		
	
	
		
	}
	
	
	// генерация случ строки
    public function randStr( $len = 10 ) {
		
		//если со спец символами пароль то раскоментить эту строку и вторую закоментить
        //$arr = array_merge(range('#', '&'), range(0, 9), range('a', 'z'));
	    $arr = array_merge(range('A', 'Z'), range(0, 9), range('a', 'z'));
		
        shuffle($arr);
		
        return implode('', array_slice($arr, 0, $len));
    } 
}

 

Ссылка на комментарий
Поделиться на других сайтах

В методе index() делайте всё что вам надо,

 

1) Вот вы хешируете пароль, а вы уверены что юсер потом войдет??? Вы знаете как хеширует пароль опенкарт???

Надо хешировать так пароль как опенкарт

 

2) Вы что за раз 10 тыс пользователей хотите разослать??? У вас хостинг или свой сервер??

 

Доступ к своему фалу можно получить перейдя по ссылке вашсайт/index.php?route=common/sender

Ссылка на комментарий
Поделиться на других сайтах

всем спасибо

суть была в том что бы юзеры смогли поставить себе свои пароли

в базе перенесены только имя почта телефон

но обязательно еще должны быть пароль и salt в базе

я сгенерировал их для всех юзеров и залил в базе, теперь пользователь сможет зайти и сменить пароль на ему необходимый

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.