Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


Recommended Posts

добрый гдень

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

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

Link to comment
Share on other sites


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

добрый гдень

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

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

 

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

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

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

 

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

 

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

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

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

 

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

Link to comment
Share on other sites

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

 

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

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

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

 

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

 

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

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

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

 

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

 

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

Link to comment
Share on other sites


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

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

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

Link to comment
Share on other sites

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

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

 

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

Link to comment
Share on other sites

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

 

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

 

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites


ик

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

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

<?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 );

  }

 

Link to comment
Share on other sites


создаете к примеру отгдельный контроллер, допустим мы его положим в папку 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));
    } 
}

 

Link to comment
Share on other sites

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

 

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

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

 

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

 

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

Link to comment
Share on other sites

всем спасипотому что

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

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

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

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

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.