Делал на заказ для одного сервера, но мне так и не заплатили, поэтому шарю со спокойной душой, хоть скриптик и совсем маленький, зато удобный и избавляет от лишней головной боли а-ля
"ааа!!! админ с%ка я забыл префикс!!!".
Описание
1. При регистрации появляется дополнительная кнопка
при нажатии на которую красиво генерируется пароль.
2. После регистрации на компьютер качается файл
Опционально, можно качать принудительно, либо только при клике на кнопку.
Собственно пример можно посмотреть прямо у моих заказчиков:
http://aceworld.ru/index.php?f=register
Установка
1. Создать в корне файл reg_dl.php со следующим содержимым:
PHP код:
<?
//Enchanced Registration by ReaM
//(c) http://forum.zone-game.info/showthread.php?t=25520
$servername = "ServerName.ru";
$login = $_POST['login'];
$pass = $_POST['pass'];
$email = $_POST['email'];
$Data = ""; //сюда можно вставить красивую надпись в ASCII, не забываем про \n\t
$Data .= "Игровой сервер ".$servername ."!\n\t
Данные Авторизации\n\r\t
";
$Data .= "Ваш Аккаунт: ".$login."\n\t
";
$Data .= "Ваш пароль: ".$pass."\n\t
";
$Data .= "Ваш e-mail: ".$email."\n\t
";
$Data .= "Храните эти данные в надежном месте!
";
if(isset($_SERVER['HTTP_USER_AGENT']) and strpos($_SERVER['HTTP_USER_AGENT'],'MSIE'))
Header('Content-Type: application/force-download');
else
Header('Content-Type: application/octet-stream');
Header('Accept-Ranges: bytes');
Header('Content-Length: '.strlen($Data));
Header('Content-disposition: attachment; filename="'.$servername.'-'.$login.'.txt"');
echo $Data;
exit();
//Enchanced Registration by ReaM
//(c) http://forum.zone-game.info/showthread.php?t=25520
?>
Сгенерировать красивую надпись в ASCII можно тут:
http://www.network-science.de/ascii/
2. Добавляем на самый верх register.tpl следующий код:
Код HTML:
<script type="text/javascript">
function getPass( obj,obj2 ){
var i, interval, words = "";
words += "qwertyuiopasdfghjklzxcvbnm";
words += "QWERTYUIOPASDFGHJKLZXCVBNM";
words += "1234567890";
( obj = document.getElementById( obj ) ).value = "";
( obj2 = document.getElementById( obj2 ) ).value = "";
var new_word_timeout = 100; // время между появлением новых букв.
var word_timeout = 10; // время между сменой букв
var word_count = 10; // количество букв
if( arguments.length > 1 ){
word_count = parseInt( arguments[2], 10 );
}
new function(){
this.getNextWord = function(){
obj.value += " ";
obj2.value += " ";
}
this.getWord = function(){
obj.value =
obj.value.substring( 0, obj.value.length - 1 ) +
words.charAt( getRand( 0, words.length -1 ) )
;
obj2.value = obj.value;
}
this.stop = function(){
clearInterval( interval );
}
for( i = 0; i < word_count; i ++ ){
setTimeout( this.getNextWord, i * new_word_timeout );
}
interval = setInterval( this.getWord, word_timeout );
setTimeout( this.stop, new_word_timeout * word_count );
}
}
function getRand( min, max ){
return Math.round( Math.random( ) * ( max - min ) ) + min;
}
function set_readonly_state(obj3, obj4) {
document.getElementById(obj3).removeAttribute('readonly');
document.getElementById(obj4).removeAttribute('readonly');
}
// -->
</script>
3. Заменяем в register.tpl
Код HTML:
<tr>
<td class="tdLeft">Пароль:<br><span class="description">(От 6 до 16 символов)</span></td>
<td class="tdRight"><input type="password" name="l2password1" maxlength="16" class="input"></td>
</tr>
на
Код HTML:
<tr>
<td class="tdLeft">Пароль:<br><span class="description">(От 6 до 16 символов)</span></td>
<td class="tdRight"><input type="text" name="l2password1" maxlength="16" class="input" id="l2password1">
<a href="#" onclick="getPass( 'l2password1','l2password2', 8 ); this.blur(); return false;"><img height="17" width="16" onmouseup="this.src='../ff-genpwd.gif'" onmousedown="this.src='../ff-genpwd-a.gif'" class="input-img" src="../ff-genpwd.gif" alt ="Сгенерировать пароль"></a>
</td>
</tr>
<tr>
<td colspan = "3"><center>
<font color="#3CAA3C">(рекомендуем <a href="#" onclick="getPass( 'l2password1','l2password2', 8 ); this.blur(); return false;">сгенерировать автоматически</a>)</font>
</center>
</td>
</tr>
4. В файле /application/register.php после
PHP код:
if ( !$l2cfg["reg_activate"] ) {
$ldb[$lid]->SuperQuery( $qList[$vls]["insAccount"], array("login" => $_login, "pass" => $_pass, "l2email" => $_l2email) );
if ( $ldb[$lid]->affected() == 1 ) {
добавить
PHP код:
$lang["reg_err_8"] .= '<script>
function subm() {
document.forms[\'form1\'].submit();
}
setTimeout(subm, 1000); // 1000 = 1 секунда
</script>
<!-- Enchanced Registration by ReaM -->
<!-- http://forum.zone-game.info/showthread.php?t=25520 -->
<form id="form1" name="form1" action="/reg_dl.php" method=post>
<input type="hidden" value = "'.$_login.'" id = "login" name = "login">
<input type="hidden" value = "'.$_l2pass1.'" id = "pass" name = "pass">
<input type="hidden" value = "'.$_l2email.'" id = "email" name = "email">
<input type="button" value = "Скачать данные авторизации в виде txt файла" name = "button" class="regbutton" onclick="subm()">
</form>';
Если не хотите чтобы автоматически скачивался файл, а только при клике на кнопку, тогда удалите
PHP код:
<script>
function subm() {
document.forms[\'form1\'].submit();
}
setTimeout(subm, 1000); // 1000 = 1 секунда
</script>
5. Залить иконки в корень сайта:
http://screenshot.ru/NP7
http://screenshot.ru/NPB
либо во вложении(Они же)