форум vBSupport.ru > vBulletin > Вопрос — Ответ > Помогите найти!
Register Меню vBsupport Изображения Files Manager О рекламе Today's Posts Search
  • Родная гавань
  • Блок РКН снят
  • Premoderation
  • For English speaking users
  • Каталог Фрилансеров
  • If you want to buy some product or script
  • Администраторам
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже:
Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
 
 
 
 
sanika
Продвинутый
 
sanika's Avatar
Default автоматический пароль
0

Есть ли хак для автоматической генерации пароля при регистрации?
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
Luvilla
Гость
Default

для 4ки Генератор паролей на странице регистрации
для тройки - там есть ссылка
 
 
Phoenix
Специалист
 
Phoenix's Avatar
Default
1

Luvilla, опередила )))
Я там еще и перевел, если что, удалите

[3.8.x] Random password - Случайный пароль при регистрации
 
 
Luvilla
Гость
Default

Quote:
Originally Posted by Phoenix View Post
если что, удалите
зачем?
хаков должно быть много, чтобы был выбор
 
 
хрюк
Гость
Default

Эм, это локализованная версия http://vbsupport.ru/forum/showthread...335#post338335
 
 
Phoenix
Специалист
 
Phoenix's Avatar
Default
0

TAIFUN, Так я говорю, пардонтье ))). Я по названиям тем имя хака (random password) по поиску пробил, не нашел, поэтому скачал, перевел и выложил в отдельную тему. А с Luvilla мы одновременно написали, поэтому и тема отдельная осталась
 
 
Luvilla
Гость
Default

пусть остаётся как есть
у Phoenix'а отдельная тема, в правильном разделе и со скринами
 
 
sanika
Продвинутый
 
sanika's Avatar
Default
0

сделал по своему - поле ввода пароля вообще скрыл, а перед ними в файле register.php написал простенький генератор пароле1 и подставляю их сразу в оба поля пароля. Теперь осталось выслать этот пароль письмом, но не вижу где высылается приветственное письмо. Или можно создать свое письмо и выслать?

sanika добавил 04.07.2012 в 23:16
Можно ли сделать так
PHP Code:
$pw_subject="Ваш пароль";
$pw_message="Ваш пароль ............. Благодарим за регистраци."
vbmail($user['email'], $subject$messagetrue); 
Или есть еще какие-то условия?

sanika добавил 04.07.2012 в 23:23
Отправку пароля думаю прикрутить на хук register_form_complete, но какполучить емейл на который отправлять письмо? Вопросов больше чем ответов )

sanika добавил 05.07.2012 в 00:07
Думаю что тема будет интересна многим, почитал на орге http://www.vbulletin.org/forum/showt...06#post2063506 простенький хак, но люди хотят как раз такой вариант что и я - пароль генерится тайно и высылается на указанное мыло. причем хотят уже больше года

sanika добавил 05.07.2012 в 00:09
И стоит ли при таком варианте отправки пароля на емейл использовать Email Confirmation?
Что мы потеряем, если не будем её использовать?

sanika добавил 05.07.2012 в 00:11
вариант с подачей в поле пароля, наверное никуда не годиться? ведь пользователоь может сразу просмотреть его и ему не надо никакой верификации вообще? Т.е. правиль это генерить пароль перед внесением в базу и отправлением письма с приветствием?

sanika добавил 05.07.2012 в 00:50
Что значит эта строчка
PHP Code:
    // set password
    
$userdata->set('password', ($vbulletin->GPC['password_md5'] ? $vbulletin->GPC['password_md5'] : $vbulletin->GPC['password'])); 
sanika добавил 05.07.2012 в 00:59
Вот интересно. продолжаювариант с автоподстановкой пароля, остаетс ядин пункт - отправка пароля в письме. Для этого ввел новую переменную $pp, добавил ее в шаблон письма стандартного, и добавил строчку $pp=...... , но почему-то в письм ничего не передается. Почему?
PHP Code:
            $username htmlspecialchars_uni($vbulletin->GPC['username']);
            
$email htmlspecialchars_uni($vbulletin->GPC['email']);
            
$pp $vbulletin->GPC['password'];

            
// sort out emails and usergroups
            
if ($vbulletin->options['verifyemail'])
            {
                
$activateid build_user_activation_id($userid, (($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser']) ? 2), 0);

                eval(
fetch_email_phrases('activateaccount'));

                
vbmail($email$subject$messagetrue);

            } 
sanika добавил 05.07.2012 в 01:36
Подытожу свои размышления. Итак проверку емейла надо оставить, и в письмо вложить пароль. При этом поля ввода пароля при регистрации скрываются, и в них автоматом влаживается сгенерированный пароль. , но так как осталась проверка емейла, то пользователь, не сможет писать пока не подтвердит его. В итоге выполянются все задачи - пользователь указывает реальные емейл, чтоб иметь возможность писать на форуме, но его пароль будет сложным, что защитит от взлома простым перебором. Для выполнения этой задачи осталось малое - передать пароль в письмо этот шаг я сделал, как описал выше, но он не передается. чувствую разгадка близко...

sanika добавил 05.07.2012 в 01:55
Вот интересно - в глобальном массиве переменная password есть
PHP Code:
$vbulletin->input->clean_array_gpc('p', array(
        
'options'             => TYPE_ARRAY_BOOL,
        
'username'            => TYPE_STR,
        
'email'               => TYPE_STR,
        
'emailconfirm'        => TYPE_STR,
        
'parentemail'         => TYPE_STR,
        
'password'            => TYPE_STR,
        
'password_md5'        => TYPE_STR,
        
'passwordconfirm'     => TYPE_STR,
        
'passwordconfirm_md5' => TYPE_STR,
        
'referrername'        => TYPE_NOHTML,
        
'coppauser'           => TYPE_BOOL,
        
'day'                 => TYPE_UINT,
        
'month'               => TYPE_UINT,
        
'year'                => TYPE_UINT,
        
'timezoneoffset'      => TYPE_NUM,
        
'dst'                 => TYPE_UINT,
        
'userfield'           => TYPE_ARRAY,
        
'showbirthday'        => TYPE_UINT,
        
'humanverify'         => TYPE_ARRAY,
    )); 
почему не работает
PHP Code:
$pp $vbulletin->GPC['password']; 
не понятно

Last edited by sanika : 07-05-2012 at 02:55 AM. Reason: Добавлено сообщение
 
 
kerk
k0t
 
kerk's Avatar
Default
1

Quote:
Originally Posted by sanika View Post
почему не работает
$pp = $vbulletin->GPC['password'];
переменная "$pp" зарезервирована воблой, это алиас "$perpage", переопределаять ее не стоит, лучше придумать свое имя переменной
если в браузере узера включен яваскрипт, то пароль прогоняется через яваскрипт, файл vbulletin_md5.js, в зависимости от того, что есть в полях пасс и конфирм_пасс и в пхп уходит уже хэш пароля, сгенерированный из значений введенных узером
на сколько помню, в опере точно поле "password" пустое, нужно отлавливать "password_md5" и "passwordconfirm_md5"
в лисе можно отловить это поле

если яваскрипт отключен, то в пхп приходят значения из полей "password" и "passwordconfirm"
 
 
sanika
Продвинутый
 
sanika's Avatar
Default
1

Т.е. если работает яваскрипт, то я получаю уже лишь хеш пароля, а сам пароль исчезает. правильно? А если в таком случае продублировать пароль на дополнительную переменную и ее использовать? или может есть другой выход?

sanika добавил 05.07.2012 в 11:20
Продублировал пароль на дополнительное поле, и из него уже данные вставляю в письмо.

sanika добавил 05.07.2012 в 12:17
Не знаю, пригодится ли кому то, но для автоматического пароля, я сделал следующее:
1) в файле register.php, после
PHP Code:
if ($_REQUEST['do'] == 'register')

добавил простенький генератор паролей на 12 символов

PHP Code:
function getPass$num 12 ){
    
$signs 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
    
$res_str '';
    
$str_len strlen$signs );
    if( ! 
is_int$num ) || $num <= || $num 32 
        
$num 12;
    for( 
$i 0$i $num$i++ )
        
$res_str .= $signsmt_rand(0$str_len 1) };
    return 
$res_str;
  }
    
$paswd=getPass(12); 
2) небольшие изменения в шаблон register

HTML Code:
<fieldset class="fieldset">
	<legend>$vbphrase[password]</legend>
добавляем невидимости для этого элемента
HTML Code:
  style="display:none"
Далее
ищем поля ввода пароля и его подтверждения и назначаем им переменную из первого пункта, закрываем от редактирвания (readonly="1") + вводим дополнительное поля для передачи пароля в письме - sendpwd

HTML Code:
<td>
						$vbphrase[password]:<br />
						<input type="password" class="bginput" readonly="1" name="password" style="display:none" size="25" maxlength="50" value="$paswd" />
					</td>
					<td>
						$vbphrase[confirm_password]:<br />
						<input type="password" class="bginput" readonly="1" name="passwordconfirm" size="25" maxlength="50" value="$paswd" />
						
						<input type="password" class="bginput" readonly="1" name="sendpwd" style="display:none" size="25" maxlength="50" value="$paswd" />
					</td>
В принципе почти все. осталось в шаблон письма activateaccount вставить строчку
Code:
Your password is: $paswd
И потом передаю переменную $sendpwd вписьмо
для этого в файле register.php нашел место где проходит отправка письма на верификацию

PHP Code:
            $username htmlspecialchars_uni($vbulletin->GPC['username']);
            
$email htmlspecialchars_uni($vbulletin->GPC['email']);

            
// sort out emails and usergroups 
и добавил нужную переменную

PHP Code:
            $username htmlspecialchars_uni($vbulletin->GPC['username']);
            
$email htmlspecialchars_uni($vbulletin->GPC['email']);
            
$paswd $vbulletin->GPC['sendpwd'];

            
// sort out emails and usergroups 
А чтоб она заработала добавляю в список переменных в этом же файле

PHP Code:
// ############################### start add member ###############################
if ($_POST['do'] == 'addmember')
{
    
$vbulletin->input->clean_array_gpc('p', array(
        
'options'             => TYPE_ARRAY_BOOL,
        
'username'            => TYPE_STR,
        
'email'               => TYPE_STR,
        
'emailconfirm'        => TYPE_STR,
        
'parentemail'         => TYPE_STR,
        
'password'            => TYPE_STR,
        
                 
'sendpwd'            => TYPE_STR,// вот эта переменная 
И теперь выполняются все требования - пароль юзер не водит, он генерится за него, даже просмотрев пароль в коде, он не сможет писать пока не пройдет верификацию. Ну и сам пароль приходит в письме, которое высылается для верификации мыла. Может кому то пригодится. Если есть замечания по рациональности кода, подскажите.

Last edited by sanika : 07-05-2012 at 01:17 PM. Reason: Добавлено сообщение
 

Tags
автоматический пароль, пароль


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 05:54 AM.


Powered by vBulletin® Version 4.x.fuck
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.