Jump to content
  • Announcements

    • Xmat

      Pravidlo pro postování v TTT

      Do sekce Tipy, triky, tutoriály nepatří žádné dotazy.   Postujte sem vaše návody, tipy a různé další věci jež uznáte za vhodné sdělit zdejšímu osazenstvu, ale veškeré dotazy směřujte do sekce Všeobecná diskuse.
    • Replik

      Seznam návodů a důležitých témat v této sekci

      Pro lepší přehlednost jsem vytvořil tento seznam, který vás, méně zkušené, lépe provede touto sekcí. Věřím, že zde najdete, co hledáte. Vypsané jsou návody, které jsou oficiálně uznané jako návody. Běžné diskuze, které neposkytují postupy a rady zvěřejněny nejsou.   Instalace vlastního MaNGOS Serveru Díky těmto návodům budete (měli by jste být) schopni vytvořit a následně spustit váš vlastní server. Nastavení je pro verze s i bez datadisku.   Instalace MaNGOS Serveru (bez datadisku TBC) - Autor Benny Instalace MaNGOS Serveru (s datadiskem TBC) - Autor Malfik Instalace MaNGOS Serveru v prostředí Linux - Autor charlie Instalace MaNGOS Serveru v prostředí Linux - Autor kupkoid   Chyby a jejich řešení při přihlašování k serveru - Autor Cybe   Zálohování uživatelských dat   Dávkový soubor (BAT soubor) pro vytvoření SQL záloh - Autor Replik   Kompilování - tvoření vlastních release (revizí)   Tvorba kompilací pro Win32 (MangoScript) - Autor bLuma   Ostatní - těžko zařaditelné, ale neznamená to, že nejsou dobré   VIP Systém - Autor charlie Tvorba Webových stránek pro MaNGOS - Autor zahuba Tvorba teleportačních NPC (MangoScript) - Autor Replik Registrační web (původně předělaná SPORA) Funkční pro Antrix i MaNGOS - Autor Replik Nastavení a spuštění Minimanager pro MaNGOS - Autor BlackMartin Nastavení MaNGOS Website - Autor Artorius   Samozřejmě jsou zde i jiné návody, ale tyto jsou nejvíce používané, proto věřím, že vám budou nápomocné. Tuto sekci budeme upravovat podle potřeby. Pokud by jste něco nenašli nebo si nevěděli rady, hledejte na fóru a teprve potom založte vlastní topik. Pokud nějaký autor vytvoří kvalitní návod a chtěl by ho zveřejnit i v tomto seznamu, doporučuji, aby mi napsal zprávu skrze PM.   Díky a přeji hezký den na WoWResource   Replik
    • Aristo

      Příspěvky tam, kde nemají co dělat

      Dodržujte zákaz přispívání do topiků s repaky pokud si to zakladatelé nepřejí!! Opakované psaní příspěvků bude trestáno warnem.
    • Aristo

      Používání spoilerů

      Poslední dobou má většina uživatelů fora zvláštní nutkání postovat extrémně dlouhé texty nebo kódy, které zabírají v nejedenom případu i 80% obsahu celé stránky a hodně tak zvedají nepřehlednost v topiku. Chtěl bych všechny uživatele požádat, aby při postování citací, jakýchkoliv kódů, errorů, atp... delších než 30 řádků používali funkci spoileru.   Funkci vyvoláte příkazem [spoiler] text [/spoiler]   Ukázka:  
Sign in to follow this  
Mousik

Recovery Password

Recommended Posts

Měl jsem na mangosu takovou utilitku udelanou , ale při přechodu na trinity přestala fungovat , tak jak má ,i když se struktura nijak nezmenila.

 

Snad nekdo ví a poradí :

utilitka ZDE

 

Problem je vtom , ze to v pohode napise "Email byl odeslan" , tim padem by se mela provest zmena do databaze. V databazi se neco pohne , protoze se zmeni ten HASH , ale nejde se prihlasit do hry a po restartu se jde opet prihlasit starým heslem a nové vygenerované vždy zanikne ... A aj ty emaily , které mají chodit stím heslem jsou opožděné ... trvá jim to asi 3 hodiny než dojdou...Na mangosu to chodilo hned

 

 

předem díky za každou pomoc

Share this post


Link to post
Share on other sites

neznam trinity, ale duvod je jasny .. neco to cachuje accounty ... tohle sem ted resil na mangosu, a vyresil jsem to nakonec tim, ze mam nastavenej cron aby mi resetoval tealmd kazdou pulhodinu (uzivatele to ze hry nevykopne, jen se tech 5 sekund nemuze nikdo prihlasit)

 

.. snad ti to pomuze

Share this post


Link to post
Share on other sites

Muzes postnout celou utilitku prosim na ten recovery? klidne pres pm - nedelali to tenrat velke znaky u zivatelskeho jmena? ze musela byt vsechna pismena velka? :-) Diky

Share this post


Link to post
Share on other sites

heslo.php

 

<center>
<head>
       <meta name="generator" content="Geany 0.14" />
       <style type="text/css">
       .done{ font-weight: bold; color: #009000}
       .error{ font-weight: bold; color: #FF0000;}
       table{ border-collapse: collapse; }
       </style>
</head>

<body>
       <form action="" method="post">
               <table border='1' cellpadding='5'>
                       <tr>
                               <td>Uživatelské jméno</td>
                               <td><input type="text" name="login" /></td>
                       </tr>
                       <tr>
                               <td>Registrační email</td>
                               <td><input type="text" name="mail" /></td>
                       </tr>
                       <tr>
                               <td colspan="2"><input type="submit" value="Pošli" name="sub" /></td>
                       </tr>
               </table>
       </form>


<?php
if(!empty($_POST['sub'])){
       if(!empty($_POST['login']) AND !empty($_POST['mail'])){

               include "config.php";
               $db = mysql_connect($ip, $user, $pass) or die("<p class=\"error\">".mysql_error()."</p>");
               mysql_select_db($realmd) or die("<p class=\"error\">".mysql_error()."</p>");

                       if(mysql_result(mysql_query("SELECT COUNT(*) FROM account WHERE username = '".$_POST['login']."' AND email = '".$_POST['mail']."'"), 0) == 1){
                                       $query = mysql_query("SELECT username, email FROM account WHERE username = '".$_POST['login']."' AND email = '".$_POST['mail']."' limit 1") or die(mysql_error());
                                       $Dbresult = mysql_fetch_array($query);

                                       $heslo_plain = SubStr(MD5(rand(1, 100000)),0,8);
                                       $pass =  sha1(strtoupper($_POST['login']).':'.strtoupper($heslo_plain));
                                       $message = "Nove heslo u acc ".$Dbresult['username']." je: ".$heslo_plain."";
                                               if(mail($Dbresult['email'], "Zmena hesla u acc ".$Dbresult['username']."", $message, "From: [email protected]")){
                                                       $query = mysql_query("UPDATE account SET sha_pass_hash = '".$pass."' WHERE username = '".$Dbresult['username']."'") or die(mysql_error());
                                                       echo "<p class=\"done\">Na registrační email bylo zasláno nové heslo</p>";
                                               }
                                               else{
                                                       echo "<p class=\"error\">Nepodařilo se odeslat nové heslo na registrační email</p>";
                                               }
                       }
                       else{
                               echo "<p class=\"error\">Nenalezen odpovídající account</p>";
                       }
       }
       else{
               echo "<p class=\"error\">Nezadal jste potřebné údaje</p>";
       }
}

?>
<br></body>
</html>
</center>

 

config.php

 

<?php
$db = mysql_connect("ip_serveru", "user", "password");  //HOST = mysql hostitel (např. mysql.ic.cz) ; USET = mysql uživatel (např. own_warehouse) ; PASSWORD = heslo do mysql (např. 123456)
$dbname = realmd  //zde napište jméno databáze (např. own_warehouse)
?>

 

Good Luck ;)

Share this post


Link to post
Share on other sites

$query = mysql_query("UPDATE account SET sha_pass_hash = '".$pass."' WHERE username = '".$Dbresult['username']."'") or die(mysql_error());

změň na

 $query = mysql_query("UPDATE account SET sha_pass_hash = '".$pass."', v = ' ', s = ' ' WHERE username = '".$Dbresult['username']."'") or die(mysql_error());

 

 

 

 

a půjde to :)

nově je totiž potřeba mazat tyhle kontrolní součty, které v sobě mají uchováno i původní heslo :)

 

 

 

Edited by Chajak

Share this post


Link to post
Share on other sites

$query = mysql_query("UPDATE account SET sha_pass_hash = '".$pass."' WHERE username = '".$Dbresult['username']."'") or die(mysql_error());

změň na

 $query = mysql_query("UPDATE account SET sha_pass_hash = '".$pass."', v = ' ', s = ' ' WHERE username = '".$Dbresult['username']."'") or die(mysql_error());

 

 

 

 

a půjde to :)

nově je totiž potřeba mazat tyhle kontrolní součty, které v sobě mají uchováno i původní heslo :)

 

Jde to i bez toho ;)

Share this post


Link to post
Share on other sites

Natavil jsem config dal jsem ho do stejne slozky a presto to nefunguje. Pri odeslani se objevi prazdna stranka bez hlasky nevite nekdo co mam spatne?

Share this post


Link to post
Share on other sites

Jde to i bez toho ;)

bez toho to opravdu nejde ... diky moc za postnuti

az se vratim ze skoly , postnu cele odesilani a plne funkncni

Share this post


Link to post
Share on other sites

bez toho to opravdu nejde ... diky moc za postnuti

az se vratim ze skoly , postnu cele odesilani a plne funkncni

Teda vy jste v te skole nejak dlouho ja tu cekam a tu furt nic :-)

Share this post


Link to post
Share on other sites

zde to je ...

ja to mam resene jako dalsi funkci do manageru od hisgraka

 

password.php

<?  
$lang = 'cz';
include('functions.php');
include ('vrch.php');
?>
<img src="img/logon_vrch.jpg" alt="logon vrch"><br><table align="center" style="background : url(img/logon_obsah.jpg); width : 689; height: 289;)"><tr><th>
 <table width="255" align="center" valign="top">
 <tr><td class="nadpis"><? echo $write[77]; ?><br></td></tr>
<?php
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: Altron Support <[email protected]>' . "\r\n";
if(!empty($_POST['sub'])){
       if(!empty($_POST['login']) AND !empty($_POST['mail'])){

               require "config.php";
               $db = mysql_connect($dbhost, $dbuser, $dbpass) or die("<p class=\"error\">".mysql_error()."</p>");
               mysql_select_db($dbname) or die("<p class=\"error\">".mysql_error()."</p>");

                       if(mysql_result(mysql_query("SELECT COUNT(*) FROM account WHERE username = '".$_POST['login']."' AND email = '".$_POST['mail']."'"), 0) == 1){
                                       $query = mysql_query("SELECT username, email FROM account WHERE username = '".$_POST['login']."' AND email = '".$_POST['mail']."' limit 1") or die(mysql_error());
                                       $Dbresult = mysql_fetch_array($query);

                                       $heslo_plain = SubStr(MD5(rand(1, 100000)),0,8);
                                       $pass =  sha1(strtoupper($_POST['login']).':'.strtoupper($heslo_plain));
                                       $message = "
<html><body><center>
<br>
<table align=center border=0 cellpadding=0 cellspacing=0 style=position:relative; width=541 height=auto>
<tr><td background=http://manager.altron-wow.eu/mail/hlavicka.jpg style=backgroud-repeat:no-repeat;  width=541 height=248>

</td></tr>
<tr><td background=http://manager.altron-wow.eu/mail/account.jpg style=backgroud-repeat:no-repeat;  width=541 height=25>
<center><font size=3><b>".$Dbresult['username']."</b></font></center>
</td></tr>
<tr><td background=http://manager.altron-wow.eu/mail/mezi.jpg style=backgroud-repeat:no-repeat;  width=541 height=75>

</td></tr>
<tr><td background=http://manager.altron-wow.eu/mail/heslo.jpg style=backgroud-repeat:no-repeat;  width=541 height=25>
<center><font size=3><b>".$heslo_plain."</b></font></center>
</td></tr>
<tr><td background=http://manager.altron-wow.eu/mail/patka.jpg style=backgroud-repeat:no-repeat;  width=541 height=118>

</td></tr>

</table>
<br>
</body>
</html>
";
                                               if(mail($Dbresult['email'], "Support : NOVE HESLO", $message, $headers)){
                                                       $query = mysql_query("UPDATE account SET sha_pass_hash = '".$pass."', v = ' ', s = ' ' WHERE username = '".$Dbresult['username']."'") or die(mysql_error());
                                                       echo "<p class=\"done\">Heslo bylo odeslano.</p>";


                                               }
                                               else{
                                                       echo "<p class=\"error\">Nepodarilo se odeslat email</p>";
                                               }
                       }
                       else{
                               echo "<p class=\"error\">Nenalezen odpovidajici Account</p>";
                       }
       }
       else{
               echo "<p class=\"error\">Nezadal jste potrebne udaje</p>";
       }
}

?>
 <tr><td style="font-face : Times New Roman; color : #826230; font-size : 12; height : 65";><? echo $write[78]; ?></td></tr>
 <form action="" method="post">
 <tr><td><? echo $write[3]; ?><br>
         <input type="text" class="formul" name="login"></td></tr>
   <tr><td><br><? echo $write[11]; ?><br>
         <input type="text" class="formul" name="mail"></td></tr>
   <tr><td><input class="odeslat" id="submitbutton2" type="submit" value="." name="sub"></td></tr>
 </form>

 </table>
 </th></tr></table><img src="img/logon_spodek.jpg"><br></th></tr>

<? include ('patka.php'); ?>

config.php

<?php

// Připojení k databázi
error_reporting(0);
                   $tbc_allowed = '1';     // pokud na serveru máte vyplé tbc, nastavte 0
	    $dbhost = 'localhost';  // standardně localhost (127.0.0.1)

                   $dbuser = 'root';       // uživatelské jméno pro přístup do db, defaultně 'root'
                   $dbpass = 'password';      // heslo pro přístup do db
                   $dbname = 'realmd';     // databáze
                   $charname = 'characters';     // databáze
                   $ip = "altron.servegame.com"; // IP Serveru
		  $gmlevel = '4'; // gm level pro vstup do admin na webu
                   $db = mysql_connect($dbhost, $dbuser, $dbpass) or print("Nepodařilo se přihlásit do databáze. Server je zřejmě offline.<br>") AND $chyba = 1;
                   mysql_select_db($dbname);
?>

functions.php

<?php

switch ($lang):

 case ('cz'):
 $write[1] = 'Přihlášení';
 $write[2] = 'Pro užívání account manageru se musíte přihlásit do systému, prostřednictvím formuláře níže.';
 $write[3] = 'Vaše uživatelské jméno';
 $write[4] = 'Vaše heslo';
 $write[5] = 'přihlášen uživatel';
 $write[6] = 'přehled';
 $write[7] = 'odhlásit se';
 $write[8] = 'Jméno účtu';
 $write[9] = 'Charactery';
 $write[10] = 'Typ účtu';
 $write[11] = 'Email';
 $write[12] = 'Účet vytvořen';
 $write[13] = 'Poslední přihlášení';
 $write[14] = 'Služby';
 $write[15] = 'Chcete upgradovat svůj účet na the Burning Crusade, nebo podporu datadisku z accountu odstranit?<br>Tak toto je služba pro vás!';
 $write[16] = 'Změna emailu';
 $write[17] = 'Změňte svůj email';
 $write[18] = 'Změna hesla';
 $write[19] = 'Změňte svoje heslo k účtu';
 $write[20] = 'Změna jména characteru';
 $write[21] = 'Snadná cesta ke změně jména vašeho charu. Pozor, tato služba je placená. <br>Po provedení změny se odečte ';
 $write[22] = 'z vašeho inventáře.';
 $write[23] = 'Neplatná hodnota';
 $write[24] = 'Typ účtu byl úspěšně změněn';
 $write[25] = 'Email byl úspěšně změněn<br> Vás nový email je ';
 $write[26] = 'Staré heslo';
 $write[27] = 'Nové heslo';
 $write[28] = 'Nové heslo znovu';   
 $write[29] = 'Staré heslo není správné.';
 $write[30] = 'Heslo bylo úspěšně změněno.';
 $write[31] = 'Nové hesla se neshodují';
 $write[32] = 'Staré jméno';
 $write[33] = 'Nové jméno';
 $write[34] = 'Změna jména stojí';
 $write[35] = 'Změnit jméno';
 $write[36] = 'Toto jméno je již obsazeno';
 $write[37] = 'Zpět';  
 $write[38] = 'Vaše jméno bylo úspěšně změněno.<br> Teď máte ';
 $write[39] = 'Nemáte dostatek peněz';
 $write[40] = 'Character je online. Nejdřív se odhlašte.'; 
 $write[41] = 'Odhlášení proběhlo úspěšně'; 
 $write[42] = 'Návrat na hlavní stranu';
 $write[43] = 'zde';
 $write[76] = 'Zapoměli jste heslo?';           
 $write[77] = 'Zapomenuté Heslo';   
 $write[78] = 'Pokud jste zapoměli svoje heslo , stačí , aby jste vyplnil svoje uživatelské jméno a Váš email a vygeneruje se Vám nové heslo , které Vám přijde i na email.'; 
 break;


 case ('en'):
 $write[1] = 'Log in';
 $write[2] = 'You must log in with your World of Warcraft account to access protected areas of the Account Manager.';
 $write[3] = 'Your user name';
 $write[4] = 'Your password';
 $write[5] = 'loged user';
 $write[6] = 'Summary';
 $write[7] = 'log out';
 $write[8] = 'Account name';
 $write[9] = 'Characters';
 $write[10] = 'Account type';
 $write[11] = 'Email';
 $write[12] = 'Account created';
 $write[13] = 'Last login';
 $write[14] = 'Services';
 $write[15] = 'If you want upgrade your account to Burning Crusade use this service!';
 $write[16] = 'Email change';
 $write[17] = 'Change your email, fast and easy.';
 $write[18] = 'Password change';
 $write[19] = 'Change your account password';
 $write[20] = 'Character name change';
 $write[21] = 'Through the wonders of gnomish engineering you are now able to change your character’s name. Finally, you can turn the name that seemed like a good idea at the time into something befitting your true status! Warning: This service cost ';
 $write[22] = 'from your characters inventory.';
 $write[23] = 'Incorect value';
 $write[24] = 'Account type was successfully changed';
 $write[25] = 'Your email was successfully changed.<br> Your new email is ';
 $write[26] = 'Old password';
 $write[27] = 'New passowrd';
 $write[28] = 'New password again';
 $write[29] = 'Your old password is incorrect.';
 $write[30] = 'Your password was succesfully changed.';
 $write[31] = 'New passwords arent same.';
 $write[32] = 'Old name';
 $write[33] = 'New name';
 $write[34] = 'Change name cost';
 $write[35] = 'Change name';
 $write[36] = 'This name already exist';
 $write[37] = 'Back';  
 $write[38] = 'Your name was succesfully changed.<br> Now you have ';
 $write[39] = 'You dont have money';
 $write[40] = 'Character is online. Logout first';
 $write[41] = 'Logout was success'; 
 $write[42] = 'Return on main site is';
 $write[43] = 'here';                 
 break;

endswitch;

function selectDb($jmeno)
{
 global $ip, $user, $pw, $realmd, $characters;

 switch ($jmeno):

 case ("realmd"):
 $db = $realmd;
 break;

 case ("characters"):
 $db = $characters;
 break;

 endswitch;

 $connect = mysql_pconnect($ip, $user, $pw);
 mysql_select_db($db, $connect);
 mysql_query("SET NAMES 'cp1250'");

}

function getRace($rasa)
{

 switch ($rasa):
   case 1:
     $rasa = "Human";
     break;

   case 2:
     $rasa = "Ork";
     break;

   case 3:
     $rasa = "Dwarf";
     break;

   case 4:
     $rasa = "Night elf";
     break;

   case 5:
     $rasa = "Undead";
     break;

   case 6:
     $rasa = "Tauren";
     break;

   case 7:
     $rasa = "Gnome";
     break;

   case 8:
     $rasa = "Troll";
     break;

   case 9:
     $rasa = "Goblin";
     break;

   case 10:
     $rasa = "Blood elf";
     break;

   case 11:
     $rasa = "Draenei";
     break;
 endswitch;

print $rasa;

}


function getClass($class)
{
 switch ($class):
   case 1:
     $class = "Warrior";
     break;

   case 2:
     $class = "Paladin";
     break;

   case 3:
     $class = "Hunter";
     break;

   case 4:
     $class = "Rogue";
     break;

   case 5:
     $class = "Priest";
     break;

   case 6:
     $class = "Death Knight";
     break;

   case 7:
     $class = "Shaman";
     break;

   case 8:
     $class = "Mage";
     break;

   case 9:
     $class = "Warlock";
     break;

   case 11:
     $class = "Druid";
     break;

   endswitch;

print $class;

}


function getExpansion($typ)
{
 switch ($typ):
   case 0:
   $typ = "World of Warcraft";
   break;

   case 1:
   $typ = "the Burning Crusade";
   break;

   case 44 or 2:
   $typ = "Wrath Of the Lich King";
   break;
   endswitch;

return $typ;

}


function sha_password($jmeno,$heslo){
return SHA1($jmeno.':'.$heslo);
}


function getGold($money)
{
 $copper = substr($money, -2);
 $silver = substr($money, -4, 2);
 $gold = substr($money, 0, -4);

return "$gold <img src=\"img/gold.png\" alt=\"\">
       $silver <img src=\"img/silver.png\" alt=\"\">
       $copper <img src=\"img/copper.png\" alt=\"\">";
}


?>

  • Upvote 1

Share this post


Link to post
Share on other sites

Uz to vypada ze to funguje ovsem na emailu nic nemam jak docilim toho aby mi to chodilo ihned? Pouzil jsem cast kodu z predesleho prispevku, originalni kod vsechno a zadny vysledek.

 

Jde jeste nejak nastavit aby prijemce nejprve potvrdil, ze je email jeho a ze opravdu chce zmenit heslo pres nejaky link v mailu? Takhle kdyz nekdo bude prihlasovaci jmeno a heslo muze neustale odesilat tuto volbu.

Edited by dukla

Share this post


Link to post
Share on other sites

Uz to vypada ze to funguje ovsem na emailu nic nemam jak docilim toho aby mi to chodilo ihned? Pouzil jsem cast kodu z predesleho prispevku, originalni kod vsechno a zadny vysledek.

 

Jde jeste nejak nastavit aby prijemce nejprve potvrdil, ze je email jeho a ze opravdu chce zmenit heslo pres nejaky link v mailu? Takhle kdyz nekdo bude prihlasovaci jmeno a heslo muze neustale odesilat tuto volbu.

Ne tak to vypada ze mi heslo vubec neprijde ale v DB se asi zmeni ale nevim na jake kdyz mi heslo mailem neprijde. Funguje to posilani opravdu? a na jakem systemu vlastne? Dekuji za odpovedi.

Share this post


Link to post
Share on other sites

Ale vzdyt z tohoto scriptu se nemuze nic odeslat na mail? Kde je funkce pro odeslani mailu? Kde je nastaveni smtp a vubec z jake adresy a jak to prijde? Nic takoveho tu nevidim - maximalne zobrazit nove heslo ihned na strance coz je nesmysl a bezpecnostni riziko ...

Share this post


Link to post
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

Sign in to follow this  

×