zaka4ek 0 Опубликовано 20 апреля, 2010 Жалоба Share Опубликовано 20 апреля, 2010 Добрый день! У меня оформление заказов сделано через быструю форму, поэтому там пароли генерятся автоматически и пользователь не знает свой пароль. Можно ли отправлять его в письмо с заказом? Делать, что бы пользователь вводил сам свой пароль не предлагать. Спасибо Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 20 апреля, 2010 Жалоба Share Опубликовано 20 апреля, 2010 Нет, по умолчанию нельзя, только скрипты править. Ссылка на сообщение Поделиться на другие сайты
Bububu 0 Опубликовано 20 апреля, 2010 Жалоба Share Опубликовано 20 апреля, 2010 http://vamshop.ru/forum/index.php?topic=4703.msg39275#msg39275 Ссылка на сообщение Поделиться на другие сайты
zaka4ek 0 Опубликовано 20 апреля, 2010 Автор Жалоба Share Опубликовано 20 апреля, 2010 Нет, по умолчанию нельзя, только скрипты править. Это понятно, вот и спрашиваю, что нужно сделать. В send_order.php Добавляю метку на подобии остальных Что есть: $vamTemplate->assign('NAME', $order->customer['name']); $vamTemplate->assign('COMMENTS', $order->info['comments']); $vamTemplate->assign('EMAIL', $order->customer['email_address']); $vamTemplate->assign('PHONE',$order->customer['telephone']); Добавляю: $vamTemplate->assign('PASS',$order->customer['password']); Дальше редактирую шаблон письма, добавляю туда метку: <strong>Пароль:</strong> {$PASS}<br /> Но только пароль так и не приходит. Приходит пустое поле. Возможно это из-за того, что в базе пароли в зашифрованном виде хранятся... Ссылка на сообщение Поделиться на другие сайты
Bububu 0 Опубликовано 20 апреля, 2010 Жалоба Share Опубликовано 20 апреля, 2010 ............... ........ Но только пароль так и не приходит. Приходит пустое поле. Возможно это из-за того, что в базе пароли в зашифрованном виде хранятся... Проверьте это. Поставьте так: $vamTemplate->assign('PASS', 'Ento est my password tipa test taczi-baczi'); Ссылка на сообщение Поделиться на другие сайты
zaka4ek 0 Опубликовано 20 апреля, 2010 Автор Жалоба Share Опубликовано 20 апреля, 2010 Проверил, тест приходит нормально. Ссылка на сообщение Поделиться на другие сайты
mosquito 0 Опубликовано 20 апреля, 2010 Жалоба Share Опубликовано 20 апреля, 2010 не приходит так как нет таких данных для пользователя в заказе... $order->customer['password'] посмотри класс order $this->customer = array('id' => $order['customers_id'], 'name' => $order['customers_name'], 'firstname' => $order['customers_firstname'], 'secondname' => $order['customers_secondname'], 'lastname' => $order['customers_lastname'], 'csID' => $order['customers_cid'], 'company' => $order['customers_company'], 'street_address' => $order['customers_street_address'], 'suburb' => $order['customers_suburb'], 'city' => $order['customers_city'], 'postcode' => $order['customers_postcode'], 'state' => $order['customers_state'], 'country' => $order['customers_country'], 'format_id' => $order['customers_address_format_id'], 'telephone' => $order['customers_telephone'], 'email_address' => $order['customers_email_address']);[/code] сюда нужно добавить [code]$query = "select customers_password from customers where customers_id = '".$order['customers_id'],."'";$query = vam_db_query($query);$query = vam_db_fetch_array($query);$password = $query['customers_password'];$this->customer['password'] = $password; только это будет md5 пароль вроде а как с него вытянуть я незнаю =\ Ссылка на сообщение Поделиться на другие сайты
mosquito 0 Опубликовано 20 апреля, 2010 Жалоба Share Опубликовано 20 апреля, 2010 если кто то знает как получить из хеша пароль будет тоже интересно, пока только нашол что большинство пишет что это невозможно) нашол только сервисы которые типа делают decrypt сравнивая хеш со своей базой.. если пользоваться простым перебором и сравниванием с хеша вот один интересный комментарий) MD5 guessing algorithms can guess your password depending on how large it is and whether CASE is significant. If it is only 4 characters long and CASE sensitive (26 lowercase + 26 uppercase + 10 digits = 62 possible characters) then it will take: (62)^4 =14.8 million iterations. On a fast machine that should take at most 10 seconds (depending on your programming language). If it's 8 characters long it will be 14.8 million times longer than that. Assuming the 4 character password took at most 10 seconds, an 8 character password would take ((62)^8)/3600/24/360 = 7 million years. Of course, if you had 1000 machines that were each a 1000X faster than that, all working in parallel, then it would take Deep Thought about 7 years. 7 years to guess an 8 character password from an MD5 hash. Good luck with that. Ссылка на сообщение Поделиться на другие сайты
Bububu 0 Опубликовано 20 апреля, 2010 Жалоба Share Опубликовано 20 апреля, 2010 Поскольку пароль можно получить только зашифрованный, можно пойти двумя путями: 1. Сохранять пароль в глобальной переменной и вставлять в письмо оттуда 2. Добавить дополнительное поле в таблицу customers и хранить там незашифрованный ваш пароль. Советую обратиться к mosquito с коммерческим предложением о подобной доработке. Ссылка на сообщение Поделиться на другие сайты
mosquito 0 Опубликовано 20 апреля, 2010 Жалоба Share Опубликовано 20 апреля, 2010 >поэтому там пароли генерятся автоматически и пользователь не знает свой пароль. Можно ли отправлять его в письмо с заказом? если так то там же можно генерировать пароль каждый раз при заказе вставлять его в базу и отсылать в письме Ссылка на сообщение Поделиться на другие сайты
zaka4ek 0 Опубликовано 20 апреля, 2010 Автор Жалоба Share Опубликовано 20 апреля, 2010 Нашел вариант, как сделать. Правда он наверное не очень безопасный =) 1. В файле vam_create_password.inc.php перед шифрованием записываем пароль в переменную $_SESSION['password'] 2. Потом в файле send_order.php после отправки письма удаляем эту переменную. Ссылка на сообщение Поделиться на другие сайты
zaka4ek 0 Опубликовано 20 апреля, 2010 Автор Жалоба Share Опубликовано 20 апреля, 2010 ПОторопился =) Пароль нифига не подходит потом =) Ссылка на сообщение Поделиться на другие сайты
Bububu 0 Опубликовано 20 апреля, 2010 Жалоба Share Опубликовано 20 апреля, 2010 ПОторопился =) Пароль нифига не подходит потом =) Дак создайте $_SESSION['password2'] Ссылка на сообщение Поделиться на другие сайты
zaka4ek 0 Опубликовано 20 апреля, 2010 Автор Жалоба Share Опубликовано 20 апреля, 2010 Не работает, судя по всему дело не в том, в какой переменной хранить Ссылка на сообщение Поделиться на другие сайты
mosquito 0 Опубликовано 20 апреля, 2010 Жалоба Share Опубликовано 20 апреля, 2010 зачем та сессия если пароль всеравно никто не знает то генерируй при отправке его заново просто потом обнови его в базе для этого пользователя Ссылка на сообщение Поделиться на другие сайты
zaka4ek 0 Опубликовано 20 апреля, 2010 Автор Жалоба Share Опубликовано 20 апреля, 2010 А смысл одно и тоже действие 2 раза делать Ссылка на сообщение Поделиться на другие сайты
zaka4ek 0 Опубликовано 20 апреля, 2010 Автор Жалоба Share Опубликовано 20 апреля, 2010 Сделал =) В файле checkout_alternative.php коментируем следующее: if (strlen($password) < ENTRY_PASSWORD_MIN_LENGTH) { $error = true; $messageStack->add('checkout_alternative', ENTRY_PASSWORD_ERROR); } elseif ($password != $confirmation) { $error = true; $messageStack->add('checkout_alternative', ENTRY_PASSWORD_ERROR_NOT_MATCHING); } Вместо строки $password = vam_create_password(8); Вставляем $_SESSION['pass'] = vam_RandomString(5); $password = vam_encrypt_password($_SESSION['pass']); Чуть ниже в этом же файле строку $sql_data_array = array ('customers_vat_id' => $vat, 'customers_vat_id_status' => $customers_vat_id_status, 'customers_status' => $customers_status, 'customers_firstname' => $firstname, 'customers_lastname' => $lastname, 'customers_email_address' => $email_address, 'customers_telephone' => $telephone, 'customers_fax' => $fax, 'orig_reference' => $html_referer, 'customers_newsletter' => $newsletter, 'delete_user' => '0', 'account_type' => '0', 'customers_password' => vam_encrypt_password($password),'customers_date_added' => 'now()','customers_last_modified' => 'now()'); Заменяем на $sql_data_array = array ('customers_vat_id' => $vat, 'customers_vat_id_status' => $customers_vat_id_status, 'customers_status' => $customers_status, 'customers_firstname' => $firstname, 'customers_lastname' => $lastname, 'customers_email_address' => $email_address, 'customers_telephone' => $telephone, 'customers_fax' => $fax, 'orig_reference' => $html_referer, 'customers_newsletter' => $newsletter, 'delete_user' => '0', 'account_type' => '0', 'customers_password' => $password,'customers_date_added' => 'now()','customers_last_modified' => 'now()'); В файле send_order.php после строк $vamTemplate->assign('NAME', $order->customer['name']); $vamTemplate->assign('COMMENTS', $order->info['comments']); $vamTemplate->assign('EMAIL', $order->customer['email_address']); $vamTemplate->assign('PHONE',$order->customer['telephone']); Дописываем $vamTemplate->assign('PASS',$_SESSION['pass']); unset ($_SESSION['pass']); Дальше идем в шаблон отправляемого письма и добавляем там метку $PASS для вывода пароля, например <strong>Пароль:</strong> {$PASS} У меня работает =) Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения