kaliostro_den 2 Опубликовано: 28 апреля 2008 Рассказать Опубликовано: 28 апреля 2008 Данный хак(модуль) даёт возможность восстановление пароля не только через мыло, но и посредством секретного вопроса. вообщем в архиве есьт док по установки, но написан уже для немного опытных людей которые знаю как сделать запрос в базу и что такое прификс. Вообще если посмотреть то он будет работать с весрии после которой стали применять двойное хэширование md5(md5()), по моему это 4-ка с чем-то была, точнее посмотерл это 4.3 Скачать P.S. возможны небольшие ошибки, так как сильно не гонял, написал, поставил, проверил работает и всё. Так что тестирование возлогаю на всех вас. Пишите всё что найдёте исправлю. Ссылка на сообщение Поделиться на других сайтах
suslik 0 Опубликовано: 26 августа 2008 Рассказать Опубликовано: 26 августа 2008 3. Открыть файл modules/register.php Найти: if(!defined('DATALIFEENGINE')) { die("Hacking attempt!"); } Ниже сделать копию настройек из 1-ого файла. Из какого первого, и какие настройки? не по русски, нет завязки в предложении с вышенаписанным Ссылка на сообщение Поделиться на других сайтах
MSW 1 Опубликовано: 26 августа 2008 Рассказать Опубликовано: 26 августа 2008 suslik как я понял имелось ввиду: // Module Configuration $lost_advance = 1; // 1-выключить модуль, 0-выключить $requred_answer = 1; //Поле ответа будет обязательным для заполнения $question_array = array( "Девичья фамилия матери", "Любимое блюдо", "Почтовый индекс родителей", "Дата рождения бабушки", "Любимый номер телеофна", "Номер паспорта", ); $lost_method = 1; // 1-пользователь сам водит новый пароль, 0-пароль генерируется автоматически //////////////////////// из файла lost_advance.php так оно и есть теперь вопрос: это работает для пользователей который зарегистрируются после установки данного модуля. как добавить эти поля тем кто уже зарегистрирован? Ссылка на сообщение Поделиться на других сайтах
kaliostro_den 2 Опубликовано: 26 августа 2008 Рассказать Опубликовано: 26 августа 2008 Автор это работает для пользователей который зарегистрируются после установки данного модуля. угу как добавить эти поля тем кто уже зарегистрирован? Поля у них есть, только они пустые. Если добавить еще 2 поля в профеле, это вопрос и ответ для восттановления и чтобы старые пользователи их заполнили. Ссылка на сообщение Поделиться на других сайтах
MSW 1 Опубликовано: 26 августа 2008 Рассказать Опубликовано: 26 августа 2008 kaliostro, добавил, в нужное место по дизайну, в userinfo.tpl: <tr> <td width="130" height="25">Вопрос для восстановления пароля</td> <td>{questions}</td> </tr> <tr> <td width="130" height="25">ответ на вопрос</td> <td><input type="text" name="answer" class="f_input" /></td> </tr> а вот как правильно добавить в engine\modules\profile.php? Ссылка на сообщение Поделиться на других сайтах
kaliostro_den 2 Опубликовано: 26 августа 2008 Рассказать Опубликовано: 26 августа 2008 Автор Открыть файл modules/profile.php Найти:if(!defined('DATALIFEENGINE')) { die("Hacking attempt!"); } Ниже сделать копию настройек из файла lost_advance.CODE. После $tpl->set('{edituser}',"[ <a href=\"java script:ShowOrHide('options')\">".$lang['news_option']."</a> ]"); Вставить такое if ($lost_advance && $question_array) { $questions = "<select name=\"question\" >\n"; foreach ($question_array as $num=>$quest) { $questions .= "<option value=\"$num\"".(($quest == $row['question'])?' checked="checked" ':'')." >$quest</option>"; } $questions .= "</select>"; $tpl->set("{questions}", $questions); } $tpl->set("{answer}", $row['answer']); Найти $sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'"; Заменить на $sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip', question='".$db->safesql($question_array[intval($_REQUEST['question'])])."', answer='".$db->safesql(trim($_REQUEST['answer']))."' where name='$user'"; Найти $sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'"; Заменить на $sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip', question='".$db->safesql($question_array[intval($_REQUEST['question'])])."', answer='".$db->safesql(trim($_REQUEST['answer']))."' where name='$user'"; в шаблоне вместо <tr> <td width="130" height="25">ответ на вопрос</td> <td><input type="text" name="answer" class="f_input" /></td> </tr> Вставь <tr> <td width="130" height="25">ответ на вопрос</td> <td><input type="text" name="answer" value="{answer}" class="f_input" /></td> </tr> Ссылка на сообщение Поделиться на других сайтах
MSW 1 Опубликовано: 26 августа 2008 Рассказать Опубликовано: 26 августа 2008 kaliostro, спасибо! работает! единственное неудобство: при последующем редактировании профиля сбрасывается опять на первый вариант вопроса. может сделать первую строку вариантов пустой? и при редактировании профиля проверку вставить - если пустая строка в вопросе то не изменять этот параметр? Ссылка на сообщение Поделиться на других сайтах
kaliostro_den 2 Опубликовано: 26 августа 2008 Рассказать Опубликовано: 26 августа 2008 Автор Посомтри я уже поправил у себя, 1-ая вставка уже другая, теперь он должен ставит нужный вопрос. Ссылка на сообщение Поделиться на других сайтах
MSW 1 Опубликовано: 26 августа 2008 Рассказать Опубликовано: 26 августа 2008 к сожалению тоже самое... После: if (!$icq) $icq = ""; Вставить: $question = $db->safesql($question_array[intval($_REQUEST['question'])]); $answer = $db->safesql(trim($_REQUEST['answer'])); После xfields='$filecontents', allowed_ip='$allowed_ip' Добавить:(2 раза) , question='$question', answer='$answer' Это вместо: question='".$db->safesql($question_array[intval($_REQUEST['question'])])."', answer='".$db->safesql(trim($_REQUEST['answer']))."' Так просто немножко красивше будет и не будет сильно выделятся от стиля кода в движке Ссылка на сообщение Поделиться на других сайтах
kaliostro_den 2 Опубликовано: 27 августа 2008 Рассказать Опубликовано: 27 августа 2008 Автор ну да, вот немного ошибся. Смени это $questions .= "<option value=\"$num\"".(($quest == $row['question'])?' checked="checked" ':'')." >$quest</option>"; на $questions .= "<option value=\"$num\"".(($quest == $row['question'])?' selected ':'')." >$quest</option>"; Ссылка на сообщение Поделиться на других сайтах
MSW 1 Опубликовано: 27 августа 2008 Рассказать Опубликовано: 27 августа 2008 kaliostro, Всё супер! теперь осталось собрать всё красиво в один мануал большое спасибо! Ссылка на сообщение Поделиться на других сайтах
Budrin 1 Опубликовано: 20 июля 2009 Рассказать Опубликовано: 20 июля 2009 хм... ссылка на скачивание битая... есть у кого нибудь данный хак? Ссылка на сообщение Поделиться на других сайтах
kaliostro_den 2 Опубликовано: 20 июля 2009 Рассказать Опубликовано: 20 июля 2009 Автор хм... ссылка на скачивание битая... есть у кого нибудь данный хак? http://forum.kaliostro.net/announcement.php?f=13&a=8 Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Архивировано
Эта тема находится в архиве и закрыта для публикации сообщений.