Szerző Téma: Eredetihez hasonló [ userplate ] Trinity-hez Multirealm-hoz is!  (Megtekintve 5181 alkalommal)

Nem elérhető NevemSenki

  • Adminisztrátor
  • Cube Head
  • *****
  • Hozzászólások: 967
  • Kliens Editer
  • Op. Rendszer: Windows Xp Home Edition
Eredetihez hasonló [ userplate ] Trinity-hez Multirealm-hoz is!
« Dátum: 2013 Január 11, 01:37:45 am »
Úgy döntöttem, hogy publikálom azt a rendszert, amit én hoztam létre.

Ez a rendszer a karakterváltásról szól, Userplate néven jobban ismert.
Csak hogy tudjuk miről is van szó:



Írnám is a lényeget, megpróbálok mindent belefoglalni.

Ez az egész dolog, beépíthető a saját weboldaladba is. Ez annyit tesz, hogy a weboldalhoz tartózó adatbázis, felhasználók táblájában frissít egy sort. ( Azt, hogy ti már hogy oldjátok meg, hogy a sor belekerüljön, az már a ti dolgotok. ) De csak akkor működik, ha a fiokid-hez tartozik sor!

Mondtam a MultiRealm-ot is, erre is képes, egyenlőre összesen 3 realmot tud kezelni.

Nagy vonalakban: Listázza a karakteredet $_SESSION['id'] alapján, ha van az account-odon, itt jön képbe a több realm és egy account párosítás. Majd a listából választasz egyet, amit használni szeretnél.
Egy kattintással UPDATE-elsz a felhasználók táblába, lecserélvén az előzőleg aktív karaktert.
Legjobb belátásom szerint, hülye biztos, és nehéz átverni.

Felhasználók tábla struktúrája:

Kód: (mysql) [Kijelölés]
DROP TABLE IF EXISTS `felhasznalok`;

CREATE TABLE `felhasznalok` (
  `fiokid` int(10) DEFAULT '0',
  `avatar` varchar(255) CHARACTER SET utf8 COLLATE utf8_hungarian_ci DEFAULT '0-0',
  `blizz` tinyint(1) DEFAULT '0',
  `karakternev` varchar(12) CHARACTER SET utf8 COLLATE utf8_hungarian_ci DEFAULT '0',
  `level` tinyint(3) DEFAULT '0',
  `guild` varchar(24) CHARACTER SET utf8 COLLATE utf8_hungarian_ci DEFAULT '0',
  `realm` varchar(32) CHARACTER SET utf8 COLLATE utf8_hungarian_ci DEFAULT '0',
  `class` int(2) DEFAULT '0',
  `guidid` int(4) DEFAULT '0',
  `race` int(2) DEFAULT '0',
  `realmid` int(2) DEFAULT '0'
) ENGINE=MyISAM AUTO_INCREMENT=20 DEFAULT CHARSET=latin1;

Mint láthatjátok, itt sok adatot szúr be, de csak kizárólag azt, ami nekünk kell. ( Tessék megnézni )

Bejelentkezéskor megkapja ezeket az adatokat:

Kód: (php) [Kijelölés]
          $_SESSION['id']=$login["id"];
  $_SESSION['username']=strtolower($login["username"]);
$_SESSION["nyelv"] = $login["locale"];
$_SESSION['n+j'] = $login['sha_pass_hash'];

// Gm-ek lekérése, GM-e, és ha igen akkor hanyas szintű és melyik realmon.
    $sql = "select * from account_access WHERE id='".$_SESSION['id']."'";
$eredmeny = mysql_query($sql);
if (!$eredmeny) {
die("Hiba a lekérésbe: $sql " . mysql_error());
}
if (mysql_num_rows($eredmeny) == 1) {
$adat = mysql_fetch_assoc($eredmeny);
$_SESSION["gmlevel"]= $adat["gmlevel"];
//$_SESSION["gmrealm"]= $adat["RealmID"];
}

Most kezd érdekes lenni. A fejlécben, vagy mind1 hogy hol, bevezetek egy változót, ami a $_SESSION['n+j'] tárolja. Én ezt a láblécben tettem.

var SenkiToken = '<? if(isset($_SESSION['n+j'])){echo $_SESSION['n+j'];}?>';

Ha ez megvan, akkor ugye jöhet a sokkalta nagyobb lényeg, maga a váltás.
Ez a listázó, teljesbe beteszem. Azért ide, mert ha ez kikerül, akkor tudjuk hogy innen lett nyúlva. Hátha hoz 1-2 felhasználót a fórumra a dolog.

Kód: (php) [Kijelölés]
<div class='context'>
<a href='javascript:;' class='close' onclick='return CharSelect.close(this);'></a>
<div class='context-user'>
<strong><? if ($karakterlekerdezes_valasztott_tomb['karakternev']){ echo $karakterlekerdezes_valasztott_tomb['karakternev'];}else{ echo 'Nincs kiválasztva karakter';} ?></strong>
<br/>
<span class='realm up'><? echo ucfirst($karakterlekerdezes_valasztott_tomb['realm']);?></span>
</div>
<div class='context-links'>
<a href='<? echo $kiindulomappa . 'kozosseg/karakter.php?profil=' . $karakterlekerdezes_valasztott_tomb['karakternev']; ?>' title='Profile' rel='np' class='icon-profile link-first'>
Profile
</a>
<a href='/wow/en/search?f=post&amp;a=Bravandvia%40Mazrigos&amp;sort=time' title='View my posts' rel='np' class='icon-posts'>
</a>
<a href='/wow/en/vault/character/auction/horde/' title='View auctions' rel='np' class='icon-auctions'>
</a>
<a href='/wow/en/vault/character/event' title='View events' rel='np' class='icon-events link-last'>
</a>
</div>
</div>
<div class='character-list'>
<div class='primary chars-pane'>
<div class='char-wrapper'>

<?
/* A megadott fiókon lévő összes karakter lekérdezése */
mysql_select_db($charsdb);
$karakterlekerdezes = mysql_query("select * from characters WHERE account='".$_SESSION['id']."'");
if(mysql_num_rows($karakterlekerdezes) != 0){
//$karakterlekerdezes_elso_tomb = mysql_fetch_array($karakterlekerdezes);
$karakter_1_array = array('realm' => 1);
//$karakter_tomb_1 = array_merge($karakterlekerdezes_elso_tomb, $karakter_1_array);
}else{
$karakter_1_array = array('realm' => 0);
}
mysql_select_db($charsdb2);
$karakterlekerdezes2 = mysql_query("select * from characters WHERE account='".$_SESSION['id']."'");
if(mysql_num_rows($karakterlekerdezes2) != 0){
//$karakterlekerdezes_masodik_tomb2 = mysql_fetch_array($karakterlekerdezes2);
$karakter_2_array = array('realm' => 2);
//$karakter_tomb_2 = array_merge($karakterlekerdezes_masodik_tomb2, $karakter_2_array);
}else{
$karakter_2_array = array('realm' => 0);
}
//$osszes_karakter = array_merge($karakterlekerdezes_masodik_tomb2, $karakter_2_array);

//$re_alm = array('re_alm' => $karakterlekerdezes_valasztott_tomb['realmid']);
//$gu_id_id = array('gu_id_id' => $karakterlekerdezes_valasztott_tomb['guidid']);


$clep = 1;

while($clep < 4 and $karakter = mysql_fetch_array($karakterlekerdezes) and $realm = $karakter_1_array or $clep < 7 and $karakter = mysql_fetch_array($karakterlekerdezes2) and $realm = $karakter_2_array)
{
$fikusz = '';
if($karakterlekerdezes_valasztott_tomb['karakternev'] != $karakter['name']){
}elseif($realm['realm'] != $karakterlekerdezes_valasztott_tomb['realmid']){

}else{
$fikusz = 'pinned';
}
?>
<a href="#" class='char <? if(isset($fikusz)){echo $fikusz;}?>'  onclick="Core.karvaltas('<? echo $karakter['name']."','".$realm['realm'];?>', this); return false;"><!-- CharSelect.pin(1, this); return false; -->
<span class='pin'></span>
<span class='name'>
<? echo $karakter['name'];?>
</span>
<span <? echo " class='class wow-class-" . $karakter['class'] . "'";?>>
<? echo $karakter['level'];?>
 <? echo $karakter_race_tomb[$karakter['race']];?>
 <? echo $karakter_class_tomb[$karakter['class']]; ?>
 </span>
<span class='realm up'><!-- down -->
<? echo strtolower($realm['realm']);?>
</span>
</a>
<?
$clep++;
}
?>
</div>
<?
if($clep >= 7){
?>
<a href="" class="manage-chars" onclick="CharSelect.swipe('in', this); return false;"><!--CharSelect.swipe('in', this); return false;-->
                    <span class="plus"></span>
                    Több<br />
                    <span>Több karakter...</span>
                </a>

</div>

<div class="secondary chars-pane" style="display: none">
<div class="char-wrapper scrollbar-wrapper" id="scroll">
<div class="scrollbar">
<div class="track"><div class="thumb"></div></div>
</div>
<div class="viewport">
<div class="overview">
<?
while($karakter = mysql_fetch_array($karakterlekerdezes) and $realm = $karakter_1_array or $karakter = mysql_fetch_array($karakterlekerdezes2) and $realm = $karakter_2_array){
?>
<a href="javascript:;"
class="color-c<? echo $karakter['class'];?> pinned"
rel="np"
onclick="Core.karvaltas('<? echo $karakter['name']."','".$realm['realm'];?>')"
onmouseover="Tooltip.show(this, $(this).children('.hide').text());">
<img src="<? echo $kiindulomappa ?>megjelenes/<? echo $tema; ?>/images/icons/18/<? echo 'race_'.$karakter['race'].'_'.$karakter['gender']; ?>.jpg" alt="" />
<img src="<? echo $kiindulomappa ?>megjelenes/<? echo $tema; ?>/images/icons/18/<? echo 'class_'.$karakter['class']; ?>.jpg" alt="" />
<? echo $karakter['level'].' '.$karakter['name'];?>
<span class="hide"> <? echo $karakter_race_tomb[$karakter['race']].' '.$karakter_class_tomb[$karakter['class']].' ('.strtolower($realm['realm']).')';?></span>
</a>
<?
}
?>

<div class="no-results hide">No characters were found</div>
</div>
</div>
</div>
<div class="filter">
<input type="input" class="input character-filter" value="Szűrés.." alt="Szűrés.." /><br />
<a href="javascript:;" onclick="CharSelect.swipe('out', this); return false;">Vissza a karakterekhez</a>
</div>
</div>

<?
}else{
echo '</div>';
}
?>
</div>

Nem magyarázok sokat, nehezen, de érthető lesz.
A fentebb látható kódot, beillesztem az userplate div-be, és ez nekünk szépen listáz is.

Most ennek a lekezelése jön, de előbb el-Post-oljuk a nevet és a relamot:

Részlet:
Kód: (php) [Kijelölés]
onclick="Core.karvaltas('<? echo $karakter['name']."','".$realm['realm'];?>', this); return false;"
Ezen kis kóddal, már át is dobtam (pontosan a semmibe) az adatokat:

Kód: (javascript) [Kijelölés]
/************************************
* Karakterváltás felhasználóablak *
************************************/


karvaltas: function(nev, realm, link) {
Tooltip.hide();
$('div.character-list').html("").addClass('loading-chars');


var switchUrl = '';

$.ajax({
type: 'POST',
url: switchUrl,
data: {
  nev: nev,
  realm: realm,
  Token: SenkiToken
},
global: false,
success:
function(content) {
//$('div.character-list').html("").addClass('loading-chars');
location.reload(true);
}
})

},


És itt a PHP kód, ami mindezt lekezeli. 3 adatot vár el, majd mindent szépen kiolvas, és csak akkor lép tovább, ha az ellenőrzés IGAZ.

Kód: (php) [Kijelölés]
/************************************************************************************/
/* POST [ session, nev, token ] Update a felhasználók táblába ha mind a 3 jelen van */
/* !ELLENŐRZÉS!*/
/* Létezik-e a 3 elvárt POST-olt adat. */
if(isset($_POST['nev']) and isset($_SESSION['id']) and isset($_POST['Token']) and isset($_POST['realm'])){
   echo $_POST['realm'];
/* !ELLENŐRZÉS! */
/* AUTH --> account A felhasználónév és jelszó visszuaellenőrzése */
mysql_select_db($authdb);
$ervenyes_e = mysql_query("SELECT username, sha_pass_hash FROM account WHERE username='".$_SESSION['username']."' AND sha_pass_hash='".$_POST['Token']."'");
if(mysql_num_rows($ervenyes_e) != 0){
   

/* Lekérem a realm nevét*/
mysql_select_db($authdb);
$realmon_van_id_keres = mysql_query("SELECT realmid, acctid FROM realmcharacters WHERE acctid='".$_SESSION['id']."' AND realmid='".$_POST['realm']."'");
if(mysql_num_rows($realmon_van_id_keres) != 0){

$realmon_van_nev_keres = mysql_query("SELECT id, name FROM realmlist WHERE id='".$_POST['realm']."'");
if(mysql_num_rows($realmon_van_nev_keres) != 0){

$realmon_van_nev_tomb = mysql_fetch_array($realmon_van_nev_keres);
//if($_POST['realm'] == 1){$charsdb_va = $charsdb;}elseif($_POST['realm'] == 2){$charsdb_va = $charsdb2;}elseif($_POST['realm'] == 3){$charsdb_va = $charsdb3;}

switch($_POST['realm']){
case 1:
$charsdb_va = $charsdb;
break;
case 2:
$charsdb_va = $charsdb2;
break;
case 3:
$charsdb_va = $charsdb3;
break;
}
mysql_select_db($charsdb_va);
/* !ELLENŐRZÉS! */
/* CHARS --> characters Az acconton van-e ilyen nevű karakter */
//mysql_select_db($chars_db);
$kar_van_e = mysql_query("SELECT guid, account, name, race, class, gender, level FROM characters WHERE account='".$_SESSION['id']."' AND name='".$_POST['nev']."'");
if(mysql_num_rows($kar_van_e) != 0){

$karaktervaltas_query_row = mysql_fetch_array($kar_van_e);

if(isset($_SESSION["gmlevel"])){
$gm_szint = $_SESSION["gmlevel"];
}else{
$gm_szint = 0;
}

mysql_select_db($weboldaldb);
mysql_query("UPDATE felhasznalok SET avatar='".$karaktervaltas_query_row['race'].'-'.$karaktervaltas_query_row['gender']."', blizz='".$gm_szint."', karakternev='".$karaktervaltas_query_row['name']."', level='".$karaktervaltas_query_row['level']."', class='".$karaktervaltas_query_row['class']."', realm='".$realmon_van_nev_tomb['name']."', guidid='".$karaktervaltas_query_row['guid']."', race='".$karaktervaltas_query_row['race']."', realmid='".$_POST['realm']."' WHERE fiokid='".$_SESSION['id']."'");
}
}
}
}
}
/* POST [ session, nev, token ] Update a felhasználók táblába ha mind a 3 jelen van */
/************************************************************************************/

Feltöltöttem 2 videót.

Az elsőben hibás volt a post, de javítottam. Mondani is fogom a videóban, hogy nem tudom mi a fene lett vele...

http://youtu.be/on_lXRPm8-4

Itt viszont csak magát az átváltást láthatjátok, így tökéletes.

http://youtu.be/eCX_JIRHT1k

Míg töltött a videó, megoldottam hogy " az éppen aktív " karakter, a lista legelejére kerüljön, és ne jelenjen meg a listában újra.

Erről egy kép:



Most már csak az egyedi avatar-ok vannak hátra.... megpróbálom azt is megoldani.


EZ A KÓD, CSAKIS AZ INFÓBARKÁCSON ÉRHETŐ EL!



Üdv.: Senki
« Utoljára szerkesztve: 2013 Január 11, 09:38:10 pm írta NevemSenki »
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

Nem elérhető NevemSenki

  • Adminisztrátor
  • Cube Head
  • *****
  • Hozzászólások: 967
  • Kliens Editer
  • Op. Rendszer: Windows Xp Home Edition
Re:Eredetihez hasonló [ userplate ] Trinity-hez Multirealm-hoz is!
« Válasz #1 Dátum: 2013 Január 22, 02:53:11 am »
Egy kicsit feltuningoltam a dolgot. Most már képes arra, hogy ellenőrzi hogy van-e a felhasználók táblában sorod, ha nincs, akkor megnézi először az első, majd a második chars DB-ben hogy van-e karid. Ha talál, akkor annak az adatait bedobja a felhasználók táblába. Ha nem, akkor a NINCS KARAKTERED felirattal tér vissza. Mivel a realmcharacter tábla szar, így arra nem támaszkodhattam..... De megoldottam.
Fenállhat az az eset is, hogy a felhasználó törli a karakterét. Mivel ez a weboldal úgy épül, hogy semmi Core módosítás nem kell, meg semmi, így hát ezen tények alapján a felhasználók táblában benne marad.
Kiolvassa a táblából hogy pontosan ki van kiválasztva melyik realmról, realm szerint visszakeresi a Dchars DB-t, megkeresi fiokid, nev és guidid alapján hogy van-e ilyen karakter, ha van akkor nem piszkálja, ha nincs, akkor törli.
Fen áll az újabb eset, hogy mi vna akkor, ha csak az a karakter szűnt meg, ami éppen ki volt választva?
Akkor újra lefut a karakter keresés, és a legnagyobb színtűt kiválasztja.

Marha nehéz volt megcsinálni, mivel MultiRealmot is kezel.
Sokat szarakodtam vele, remélem rajtam kívül majd másnak is hasznos lesz.
Feldobom ide a kódot, ha felfér....

Kód: (php) [Kijelölés]
<?
//      _   __                        _____            __   _
//     / | / /__ _   _____  ____ ___ / ___/___  ____  / /__(_)
//    /  |/ / _ \ | / / _ \/ __ `__ \\__ \/ _ \/ __ \/ //_/ /
//   / /|  /  __/ |/ /  __/ / / / / /__/ /  __/ / / / ,< / / 
//  /_/ |_/\___/|___/\___/_/ /_/ /_/____/\___/_/ /_/_/|_/_/   
//                                                           

/************************************************************************************/
/* POST [ session, nev, token ] Update a felhasználók táblába ha mind a 3 jelen van */
/* !ELLENŐRZÉS!*/
/* Létezik-e a 3 elvárt POST-olt adat. */
if(isset($_POST['nev']) and isset($_SESSION['id']) and isset($_POST['Token']) and isset($_POST['realm'])){
   //echo $_POST['realm'];
/* !ELLENŐRZÉS! */
/* AUTH --> account A felhasználónév és jelszó visszuaellenőrzése */
mysql_select_db($authdb);
$ervenyes_e = mysql_query("SELECT username, sha_pass_hash FROM account WHERE username='".$_SESSION['username']."' AND sha_pass_hash='".mysql_real_escape_string($_POST['Token'])."'");
if(mysql_num_rows($ervenyes_e) != 0){
   

/* Lekérem a realm nevét*/
mysql_select_db($authdb);
$realmon_van_id_keres = mysql_query("SELECT realmid, acctid FROM realmcharacters WHERE acctid='".$_SESSION['id']."' AND realmid='".mysql_real_escape_string($_POST['realm'])."'");
if(mysql_num_rows($realmon_van_id_keres) != 0){

$realmon_van_nev_keres = mysql_query("SELECT id, name FROM realmlist WHERE id='".mysql_real_escape_string($_POST['realm'])."'");
if(mysql_num_rows($realmon_van_nev_keres) != 0){

$realmon_van_nev_tomb = mysql_fetch_array($realmon_van_nev_keres);
//if($_POST['realm'] == 1){$charsdb_va = $charsdb;}elseif($_POST['realm'] == 2){$charsdb_va = $charsdb2;}elseif($_POST['realm'] == 3){$charsdb_va = $charsdb3;}

switch($_POST['realm']){
case 1:
$charsdb_va = $charsdb;
break;
case 2:
$charsdb_va = $charsdb2;
break;
}
mysql_select_db($charsdb_va);
/* !ELLENŐRZÉS! */
/* CHARS --> characters Az acconton van-e ilyen nevű karakter */
//mysql_select_db($chars_db);
$kar_van_e = mysql_query("SELECT guid, account, name, race, class, gender, level FROM characters WHERE account='".$_SESSION['id']."' AND name='".mysql_real_escape_string($_POST['nev'])."'");
if(mysql_num_rows($kar_van_e) != 0){

$karaktervaltas_query_row = mysql_fetch_array($kar_van_e);

if(isset($_SESSION["gmlevel"])){
$gm_szint = $_SESSION["gmlevel"];
}else{
$gm_szint = 0;
}

if(isset($_SESSION['guidid'])){
unset($_SESSION['guidid']);
$_SESSION['guidid'] = 1;
}else{
$_SESSION['guidid'] = 1;
}

mysql_select_db($weboldaldb);
mysql_query("UPDATE felhasznalok SET avatar='".$karaktervaltas_query_row['race'].'-'.$karaktervaltas_query_row['gender']."', blizz='".$gm_szint."', karakternev='".$karaktervaltas_query_row['name']."', level='".$karaktervaltas_query_row['level']."', class='".$karaktervaltas_query_row['class']."', realm='".$realmon_van_nev_tomb['name']."', guidid='".$karaktervaltas_query_row['guid']."', race='".$karaktervaltas_query_row['race']."', realmid='".$_POST['realm']."' WHERE fiokid='".$_SESSION['id']."'");



}
}
}
}
}
/* POST [ session, nev, token ] Update a felhasználók táblába ha mind a 3 jelen van */
/************************************************************************************/
   

/************************/
/* WEBSITE FELHASZNALOK */

/* WEBSITE --> felhasznalok ven-e ilyen sor SESSION id szerint */
mysql_select_db($weboldaldb);
$felhasznalok_karakter_keres = mysql_query("SELECT * FROM felhasznalok WHERE fiokid='".$_SESSION['id']."'");
if(!$felhasznalok_karakter_keres) { die("Hibás lekérdezés: (MYSQL): " . mysql_error()); }
if(mysql_num_rows($felhasznalok_karakter_keres) == 0){

/* !ELLENŐRZÉS! */
/* CHARS --> caharacters vane-e az account-on karakter */

mysql_select_db($authdb);
$realmon_van_id_keres = mysql_query("SELECT * FROM realmcharacters WHERE acctid='".$_SESSION['id']."' AND numchars > 0");
if(!$realmon_van_id_keres) { die("Hibás lekérdezés: (MYSQL): " . mysql_error()); }
if(mysql_num_rows($realmon_van_id_keres) != 0){

/************/
/* REALMNÉV */
//$karakter_insert_realm_keres_1 = mysql_query("SELECT id, name FROM realmlist WHERE id=1");
//if(!$karakter_insert_realm_keres_1) { die("Hibás lekérdezés: (MYSQL): " . mysql_error()); }
//$karakter_insert_realm_tomb_1 = mysql_fetch_array($karakter_insert_realm_keres_1);

/* REALMNÉV */
/************/

if(isset($_SESSION["gmlevel"])){
$gm_szint = $_SESSION["gmlevel"];
}else{
$gm_szint = 0;
}

$guildban_van_1 = "Nincs Guildban";

mysql_select_db($charsdb);
$karakter_insert_keres_1 = mysql_query("SELECT guid, account, name, race, class, gender, level FROM characters WHERE account='".$_SESSION['id']."' ORDER BY level DESC");
if(!$karakter_insert_keres_1) { die("Hibás lekérdezés: (MYSQL): " . mysql_error()); }
if(mysql_num_rows($karakter_insert_keres_1) == 1){
$karakter_insert_tomb_1 = mysql_fetch_array($karakter_insert_keres_1);



mysql_select_db($weboldaldb);
$insert_sql_1 = "insert into felhasznalok (fiokid, avatar, blizz, karakternev, level, guild, realm, class, guidid, race, realmid) VALUES ('".$_SESSION['id']."', '".$karakter_insert_tomb_1['race'].'-'.$karakter_insert_tomb_1['gender']."', '".$gm_szint."', '".$karakter_insert_tomb_1['name']."', '".$karakter_insert_tomb_1['level']."', '".$guildban_van_1."', 'realm', '".$karakter_insert_tomb_1['class']."','".$karakter_insert_tomb_1['guid']."', '".$karakter_insert_tomb_1['race']."', '1')";
mysql_query($insert_sql_1);
header('location: '.$_SERVER["REQUEST_URI"]); // Saját magát hívja meg, de postolt adat nélkül.
exit();

}else{

if(isset($_SESSION["gmlevel"])){
$gm_szint = $_SESSION["gmlevel"];
}else{
$gm_szint = 0;
}

$guildban_van_1 = "Nincs Guildban";

mysql_select_db($charsdb2);
$karakter_insert_keres_1 = mysql_query("SELECT guid, account, name, race, class, gender, level FROM characters WHERE account='".$_SESSION['id']."' ORDER BY level DESC");
if(!$karakter_insert_keres_1) { die("Hibás lekérdezés: (MYSQL): " . mysql_error()); }
if(mysql_num_rows($karakter_insert_keres_1) == 1){
$karakter_insert_tomb_1 = mysql_fetch_array($karakter_insert_keres_1);

mysql_select_db($weboldaldb);
$insert_sql_1 = "insert into felhasznalok (fiokid, avatar, blizz, karakternev, level, guild, realm, class, guidid, race, realmid) VALUES ('".$_SESSION['id']."', '".$karakter_insert_tomb_1['race'].'-'.$karakter_insert_tomb_1['gender']."', '".$gm_szint."', '".$karakter_insert_tomb_1['name']."', '".$karakter_insert_tomb_1['level']."', '".$guildban_van_1."', 'realm', '".$karakter_insert_tomb_1['class']."','".$karakter_insert_tomb_1['guid']."', '".$karakter_insert_tomb_1['race']."', '2')";
mysql_query($insert_sql_1);
header('location: '.$_SERVER["REQUEST_URI"]); // Saját magát hívja meg, de postolt adat nélkül.
exit();

}else{

?>
<div class="user-plate">
<div class="card-character plate-default no-character">
</div>
<div class="meta-wrapper meta-no-character ajax-update">
<div class="meta">
<div class="player-name"> <?
echo ucfirst($_SESSION['username']);
?></div>
<? echo $u['no_char'];?> Chars táblában nincs
</div>
</div>
</div>
<?

}


}
}else{

// ha van acc, de nincs karaktere
?>
<div class="user-plate">
<div class="card-character plate-default no-character">
</div>
<div class="meta-wrapper meta-no-character ajax-update">
<div class="meta">
<div class="player-name"> <?
echo ucfirst($_SESSION['username']);
?></div>
<? echo $u['no_char'];?>Realcharactrs szerint nincs vagy 0
</div>
</div>
</div>
<?}
}else{

mysql_select_db($weboldaldb);
$kar_del_k = mysql_query("SELECT * FROM felhasznalok WHERE fiokid='".$_SESSION['id']."'");
$kar_del_t = mysql_fetch_array($kar_del_k);
switch($kar_del_t['realmid']){
case 1:
$charsdb_del = $charsdb;
break;
case 2:
$charsdb_del = $charsdb2;
break;
case 3:
$charsdb_del = $charsdb3;
break;
}
mysql_select_db($charsdb_del);
$char_del_k = mysql_query("SELECT * FROM characters WHERE guid = '".$kar_del_t['guidid']."' AND account = '".$kar_del_t['fiokid']."' AND name = '".$kar_del_t['karakternev']."'");
if(mysql_num_rows($char_del_k) != 1){

mysql_select_db($weboldaldb);
mysql_query("DELETE FROM felhasznalok WHERE fiokid = '".$_SESSION['id']."'");

header('location: '.$_SERVER["REQUEST_URI"]); // Saját magát hívja meg, de postolt adat nélkül.
exit();

}else{


// amennyiben van sor a felhasználók táblában

mysql_select_db($weboldaldb);
$karakterlekerdezes_valasztott_keres = mysql_query("SELECT * FROM felhasznalok WHERE fiokid='".$_SESSION['id']."'");
/* Már hozott létre karaktert, és ki is van választva [ felhasználók tábla feltöltve ]*/
if(mysql_num_rows($karakterlekerdezes_valasztott_keres) != 0){

//$vank_kar = 1;

$karakterlekerdezes_valasztott_tomb = mysql_fetch_array($karakterlekerdezes_valasztott_keres);

$kartya_hatterek = array("2-0", "2-1", "5-0", "5-1", "6-0", "6-1", "8-0", "8-1", "10-0", "10-1");


if(in_array($karakterlekerdezes_valasztott_tomb['avatar'], $kartya_hatterek)){
$kartya_hatter = 'class="card-character plate-horde ajax-update"';
$meta_wrapper = 'meta-horde';
}else{
$kartya_hatter = 'class="card-character plate-alliance ajax-update"';
$meta_wrapper = 'meta-alliance';
}

?>
<div class='user-plate'>
<a id='user-plate'
<?
echo $kartya_hatter;
?>
rel='np' href=''>
<span class='card-portrait' style="background-image:url(<? echo $kiindulomappa.'megjelenes/'.$tema.'/images/2d/avatar/'.$karakterlekerdezes_valasztott_tomb['avatar'].'.jpg'; ?>)"></span>
</a>
<div class='meta-wrapper
<?
echo $meta_wrapper;
?>
ajax-update'>
<div class='meta'>
<div class='player-name'>
<?
echo ucfirst($_SESSION['username']);
?>
</div>
<div class='character'>
<a class='character-name context-link text-small' rel='np' href='' data-tooltip='Change character' data-tooltip-options='{"location": "topCenter"}'>
<?
echo $karakterlekerdezes_valasztott_tomb['karakternev'].' ';
?>
<span class="arrow"></span>
</a>
<div id='context-1' class='ui-context character-select'>
<?
require_once('karaktervaltas.php');
?>
</div>
</div>
</div>
</div>
</div>
<?
}
}
}
?>

És a karvaltas.php is szükségeltetik a teljes átláthatóság fényében.

Kód: (php) [Kijelölés]
<div class='context'>
<a href='javascript:;' class='close' onclick='return CharSelect.close(this);'></a>
<div class='context-user'>
<strong><? if ($karakterlekerdezes_valasztott_tomb['karakternev']){ echo $karakterlekerdezes_valasztott_tomb['karakternev'];}else{ echo 'Nincs kiválasztva karakter';} ?></strong>
<br/>
<span class='realm up'><? echo ucfirst($karakterlekerdezes_valasztott_tomb['realm']);?></span>
</div>
<div class='context-links'>
<a href='<? echo $kiindulomappa.'kozosseg/karakter.php?profil='.$karakterlekerdezes_valasztott_tomb['karakternev'].'&r='.$karakterlekerdezes_valasztott_tomb['realmid']; ?>' title='Profile' rel='np' class='icon-profile link-first'>
Profile
</a>
<a href='/wow/en/search?f=post&amp;a=Bravandvia%40Mazrigos&amp;sort=time' title='View my posts' rel='np' class='icon-posts'>
</a>
<a href='/wow/en/vault/character/auction/horde/' title='View auctions' rel='np' class='icon-auctions'>
</a>
<a href='/wow/en/vault/character/event' title='View events' rel='np' class='icon-events link-last'>
</a>
</div>
</div>
<div class='character-list'>
<div class='primary chars-pane'>
<div class='char-wrapper'>

<?
/* A megadott fiókon lévő összes karakter lekérdezése */
mysql_select_db($charsdb);
$karakterlekerdezes = mysql_query("select * from characters WHERE account='".$_SESSION['id']."'");
if(mysql_num_rows($karakterlekerdezes) != 0){
//$karakterlekerdezes_elso_tomb = mysql_fetch_array($karakterlekerdezes);
$karakter_1_array = array('realm' => 1);
//$karakter_tomb_1 = array_merge($karakterlekerdezes_elso_tomb, $karakter_1_array);
}else{
$karakter_1_array = array('realm' => '');
}
mysql_select_db($charsdb2);
$karakterlekerdezes2 = mysql_query("select * from characters WHERE account='".$_SESSION['id']."'");
if(mysql_num_rows($karakterlekerdezes2) != 0){
//$karakterlekerdezes_masodik_tomb2 = mysql_fetch_array($karakterlekerdezes2);
$karakter_2_array = array('realm' => 2);
//$karakter_tomb_2 = array_merge($karakterlekerdezes_masodik_tomb2, $karakter_2_array);
}else{
$karakter_2_array = array('realm' => '');
}
//$osszes_karakter = array_merge($karakterlekerdezes_masodik_tomb2, $karakter_2_array);

//$re_alm = array('re_alm' => $karakterlekerdezes_valasztott_tomb['realmid']);
//$gu_id_id = array('gu_id_id' => $karakterlekerdezes_valasztott_tomb['guidid']);
?>
<a href="#" class='char pinned'  onclick=""><!-- CharSelect.pin(1, this); return false; -->
<span class='pin'></span>
<span class='name'>
<? echo $karakterlekerdezes_valasztott_tomb['karakternev'];?>
</span>
<span <? echo " class='class wow-class-" . $karakterlekerdezes_valasztott_tomb['class'] . "'";?>>
<? echo $karakterlekerdezes_valasztott_tomb['level'];?>
 <? echo $karakter_race_tomb[$karakterlekerdezes_valasztott_tomb['race']];?>
 <? echo $karakter_class_tomb[$karakterlekerdezes_valasztott_tomb['class']]; ?>
 </span>
<span class='realm up'><!-- down -->
<? echo strtolower($karakterlekerdezes_valasztott_tomb['realm']);?>
</span>
</a>





<?

$clep = 1;
while($clep < 4 and $karakter = mysql_fetch_array($karakterlekerdezes) and $realm = $karakter_1_array or $clep < 7 and $karakter = mysql_fetch_array($karakterlekerdezes2) and $realm = $karakter_2_array)
{
if($karakterlekerdezes_valasztott_tomb['karakternev'] != $karakter['name']){
include('kar_valt_lista.php');

}elseif($realm['realm'] != $karakterlekerdezes_valasztott_tomb['realmid']){
include('kar_valt_lista.php');

}else{
$clep++;
}
$clep++;
}
?>
</div>
<?
if($clep >= 7){
?>
<a href="" class="manage-chars" onclick="CharSelect.swipe('in', this); return false;"><!--CharSelect.swipe('in', this); return false;-->
                    <span class="plus"></span>
                    Több<br />
                    <span>Több karakter...</span>
                </a>

</div>

<div class="secondary chars-pane" style="display: none">
<div class="char-wrapper scrollbar-wrapper" id="scroll">
<div class="scrollbar">
<div class="track"><div class="thumb"></div></div>
</div>
<div class="viewport">
<div class="overview">
<?
while($karakter = mysql_fetch_array($karakterlekerdezes) and $realm = $karakter_1_array or $karakter = mysql_fetch_array($karakterlekerdezes2) and $realm = $karakter_2_array){
?>
<a href="javascript:;"
class="color-c<? echo $karakter['class'];?> pinned"
rel="np"
onclick="Core.karvaltas('<? echo $karakter['name']."','".$realm['realm'];?>')"
onmouseover="Tooltip.show(this, $(this).children('.hide').text());">
<img src="<? echo $kiindulomappa ?>megjelenes/<? echo $tema; ?>/images/icons/18/<? echo 'race_'.$karakter['race'].'_'.$karakter['gender']; ?>.jpg" alt="" />
<img src="<? echo $kiindulomappa ?>megjelenes/<? echo $tema; ?>/images/icons/18/<? echo 'class_'.$karakter['class']; ?>.jpg" alt="" />
<? echo $karakter['level'].' '.$karakter['name'];?>
<span class="hide"> <? echo $karakter_race_tomb[$karakter['race']].' '.$karakter_class_tomb[$karakter['class']].' ('.strtolower($realm['realm']).')';?></span>
</a>
<?
}
?>

<div class="no-results hide">No characters were found</div>
</div>
</div>
</div>
<div class="filter">
<input type="input" class="input character-filter" value="Szűrés.." alt="Szűrés.." /><br />
<a href="javascript:;" onclick="CharSelect.swipe('out', this); return false;">Vissza a karakterekhez</a>
</div>
</div>

<?
}else{
echo '</div>';
}
?>
</div>


Ez is csak itt érhető el Infobarkácson!!!

Üdv.: Senki
« Utoljára szerkesztve: 2013 Január 22, 02:55:46 am írta NevemSenki »
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

Nem elérhető NevemSenki

  • Adminisztrátor
  • Cube Head
  • *****
  • Hozzászólások: 967
  • Kliens Editer
  • Op. Rendszer: Windows Xp Home Edition
Re:Eredetihez hasonló [ userplate ] Trinity-hez Multirealm-hoz is!
« Válasz #2 Dátum: 2013 Január 22, 01:17:09 pm »
És a végleges forma, átnézve.. megjegyzésekkel.
Még lehet benne hiba, de minden lehetőséget kezel, és tökéletesen működik.
Mint láthatjátok, rövidített PHP Tage-ekkel dolgozok, ha használni szeretnétek, vagy kapcsoljátok be a modult, vagy írjátok át őket.

Végleges forma, ezen már nem változtatok!
Bízok abban, ha most még nem, de idővel valaki fel tudja majd használni.
És mint láthatjátok, nem csak az a jó amit Internetről töltünk le, írhatunk egy sokkal jobbat saját magunk is!

Használjátok egészséggel!

Üdv.: Senki

Kód: (php) [Kijelölés]
<?
//      _   __                        _____            __   _
//     / | / /__ _   _____  ____ ___ / ___/___  ____  / /__(_)
//    /  |/ / _ \ | / / _ \/ __ `__ \\__ \/ _ \/ __ \/ //_/ /
//   / /|  /  __/ |/ /  __/ / / / / /__/ /  __/ / / / ,< / / 
//  /_/ |_/\___/|___/\___/_/ /_/ /_/____/\___/_/ /_/_/|_/_/   
//                                                           

/************************************************************************************/
/* POST [ session, nev, token ] Update a felhasználók táblába ha mind a 3 jelen van */
/* !ELLENŐRZÉS!*/
/* Létezik-e a 3 elvárt POST-olt adat. */
if(isset($_POST['nev']) and isset($_SESSION['id']) and isset($_POST['Token']) and isset($_POST['realm'])){
   //echo $_POST['realm'];
/* !ELLENŐRZÉS! */
/* AUTH --> account A felhasználónév és jelszó visszuaellenőrzése */
mysql_select_db($authdb);
$ervenyes_e = mysql_query("SELECT username, sha_pass_hash FROM account WHERE username='".$_SESSION['username']."' AND sha_pass_hash='".mysql_real_escape_string($_POST['Token'])."'");
if(mysql_num_rows($ervenyes_e) != 0){
   

/* Lekérem a realm nevét*/
mysql_select_db($authdb);
$realmon_van_id_keres = mysql_query("SELECT realmid, acctid FROM realmcharacters WHERE acctid='".$_SESSION['id']."' AND realmid='".mysql_real_escape_string($_POST['realm'])."'");
if(mysql_num_rows($realmon_van_id_keres) != 0){

$realmon_van_nev_keres = mysql_query("SELECT id, name FROM realmlist WHERE id='".mysql_real_escape_string($_POST['realm'])."'");
if(mysql_num_rows($realmon_van_nev_keres) != 0){

$realmon_van_nev_tomb = mysql_fetch_array($realmon_van_nev_keres);
//if($_POST['realm'] == 1){$charsdb_va = $charsdb;}elseif($_POST['realm'] == 2){$charsdb_va = $charsdb2;}elseif($_POST['realm'] == 3){$charsdb_va = $charsdb3;}

switch(mysql_real_escape_string($_POST['realm'])){
case 1:
$charsdb_va = $charsdb;
break;
case 2:
$charsdb_va = $charsdb2;
break;
default:
$charsdb_va = $charsdb;
}
mysql_select_db($charsdb_va);
/* !ELLENŐRZÉS! */
/* CHARS --> characters Az acconton van-e ilyen nevű karakter */
//mysql_select_db($chars_db);
$kar_van_e = mysql_query("SELECT guid, account, name, race, class, gender, level FROM characters WHERE account='".$_SESSION['id']."' AND name='".mysql_real_escape_string($_POST['nev'])."'");
if(mysql_num_rows($kar_van_e) != 0){

$karaktervaltas_query_row = mysql_fetch_array($kar_van_e);

if(isset($_SESSION["gmlevel"])){
$gm_szint = $_SESSION["gmlevel"];
}else{
$gm_szint = 0;
}

if(isset($_SESSION['guidid'])){
unset($_SESSION['guidid']);
$_SESSION['guidid'] = 1;
}else{
$_SESSION['guidid'] = 1;
}

mysql_select_db($weboldaldb);
mysql_query("UPDATE felhasznalok SET avatar='".$karaktervaltas_query_row['race'].'-'.$karaktervaltas_query_row['gender']."', blizz='".$gm_szint."', karakternev='".$karaktervaltas_query_row['name']."', level='".$karaktervaltas_query_row['level']."', class='".$karaktervaltas_query_row['class']."', realm='".$realmon_van_nev_tomb['name']."', guidid='".$karaktervaltas_query_row['guid']."', race='".$karaktervaltas_query_row['race']."', realmid='".$_POST['realm']."' WHERE fiokid='".$_SESSION['id']."'");

}
}
}
}
}
/* POST [ session, nev, token ] Update a felhasználók táblába ha mind a 3 jelen van */
/************************************************************************************/
   

/************************/
/* WEBSITE FELHASZNALOK */
/************************/

/* !ELLENŐRZÉS! */
/* WEBSITE --> felhasznalok ven-e ilyen sor SESSION id szerint */
mysql_select_db($weboldaldb);
$felhasznalok_karakter_keres = mysql_query("SELECT * FROM felhasznalok WHERE fiokid='".$_SESSION['id']."'");
if(!$felhasznalok_karakter_keres) { die("Hibás lekérdezés: (MYSQL): " . mysql_error()); }
if(mysql_num_rows($felhasznalok_karakter_keres) == 0){

/************************************/
/* Ha !nincs! a felhasználókban sor */

/* !ELLENŐRZÉS! */
/* REALMCHARS --> vane-e az account-on karakter a realmcharacter tábla szerint*/
mysql_select_db($authdb);
$realmon_van_id_keres = mysql_query("SELECT * FROM realmcharacters WHERE acctid='".$_SESSION['id']."' AND numchars > 0");
if(!$realmon_van_id_keres) { die("Hibás lekérdezés: (MYSQL): " . mysql_error()); }
if(mysql_num_rows($realmon_van_id_keres) != 0){

/**************************************************/
/* Ha van eredmény a realmcharacter tábla szerint */

/* !ELLENŐRZÉS! */
/* CHARS --> van-e karaktere CharsDB [ 1 ]*/
mysql_select_db($charsdb);
$karakter_insert_keres_1 = mysql_query("SELECT guid, account, name, race, class, gender, level FROM characters WHERE account='".$_SESSION['id']."' ORDER BY level DESC");
if(!$karakter_insert_keres_1) { die("Hibás lekérdezés: (MYSQL): " . mysql_error()); }
if(mysql_num_rows($karakter_insert_keres_1) > 0){

/***************************************/
/* Ha van a CHARS [ 1 ] -ben karaktere */

$karakter_insert_tomb_1 = mysql_fetch_array($karakter_insert_keres_1);

/* GM level átadás*/
if(isset($_SESSION["gmlevel"])){
$gm_szint = $_SESSION["gmlevel"];
}else{
$gm_szint = 0;
}

$guildban_van_1 = "Nincs Guildban"; // GUILD

/* Realmnév lekérése */
mysql_select_db($authdb);
$realm_nev_k = mysql_query("SELECT id, name FROM realmlist WHERE id = 2");
$realm_nev_t = mysql_fetch_assoc($realm_nev_k);

/* INSERT a felhasználók táblába [ CharsDB 1 ]*/
mysql_select_db($weboldaldb);
$insert_sql_1 = "insert into felhasznalok (fiokid, avatar, blizz, karakternev, level, guild, realm, class, guidid, race, realmid) VALUES ('".$_SESSION['id']."', '".$karakter_insert_tomb_1['race'].'-'.$karakter_insert_tomb_1['gender']."', '".$gm_szint."', '".$karakter_insert_tomb_1['name']."', '".$karakter_insert_tomb_1['level']."', '".$guildban_van_1."', '".$realm_nev_t['name']."', '".$karakter_insert_tomb_1['class']."','".$karakter_insert_tomb_1['guid']."', '".$karakter_insert_tomb_1['race']."', '1')";
mysql_query($insert_sql_1);
header('location: '.$_SERVER["REQUEST_URI"]); // Saját magát hívja meg, de postolt adat nélkül.
exit();

}
/* Ha van a CHARS [ 1 ] -ben karaktere */
/***************************************/
else{
/*******************************************/
/* Ha !nincs! a CHARS [ 1 ] -ben karaktere */

/* !ELLENŐRZÉS! */
/* CHARS --> van-e karaktere CharsDB [ 2 ]*/
mysql_select_db($charsdb2);
$karakter_insert_keres_1 = mysql_query("SELECT guid, account, name, race, class, gender, level FROM characters WHERE account='".$_SESSION['id']."' ORDER BY level DESC");
if(!$karakter_insert_keres_1) { die("Hibás lekérdezés: (MYSQL): " . mysql_error()); }
if(mysql_num_rows($karakter_insert_keres_1) > 0){

/***************************************/
/* Ha van a CHARS [ 2 ] -ben karaktere */
$karakter_insert_tomb_1 = mysql_fetch_array($karakter_insert_keres_1);

/* GM level átadás*/
if(isset($_SESSION["gmlevel"])){
$gm_szint = $_SESSION["gmlevel"];
}else{
$gm_szint = 0;
}

$guildban_van_1 = "Nincs Guildban"; // GUILD

/* Realmnév lekérése */
mysql_select_db($authdb);
$realm_nev_k = mysql_query("SELECT id, name FROM realmlist WHERE id = 2");
$realm_nev_t = mysql_fetch_assoc($realm_nev_k);

/* INSERT a felhasználók táblába [ CharsDB 2 ]*/
mysql_select_db($weboldaldb);
$insert_sql_1 = "insert into felhasznalok (fiokid, avatar, blizz, karakternev, level, guild, realm, class, guidid, race, realmid) VALUES ('".$_SESSION['id']."', '".$karakter_insert_tomb_1['race'].'-'.$karakter_insert_tomb_1['gender']."', '".$gm_szint."', '".$karakter_insert_tomb_1['name']."', '".$karakter_insert_tomb_1['level']."', '".$guildban_van_1."', '".$realm_nev_t['name']."', '".$karakter_insert_tomb_1['class']."','".$karakter_insert_tomb_1['guid']."', '".$karakter_insert_tomb_1['race']."', '2')";
mysql_query($insert_sql_1);
header('location: '.$_SERVER["REQUEST_URI"]); // Saját magát hívja meg, de postolt adat nélkül.
exit();

}
/* Ha van a CHARS [ 2 ] -ben karaktere */
/***************************************/
else{

/**************************************************************************/
/* Ha !nincs! a CHARS [ 1 ] -ben és !nincs! CHARS [ 2 ] -ben sem karaktere*/
?>
<div class="user-plate">
<div class="card-character plate-default no-character">
</div>
<div class="meta-wrapper meta-no-character ajax-update">
<div class="meta">
<div class="player-name">
<?echo ucfirst($_SESSION['username']);?>
</div>
<? echo $u['no_char'];?>
</div>
</div>
</div>
<?
}
/* Ha !nincs! a CHARS [ 1 ] -ben és !nincs! CHARS [ 2 ] -ben sem karaktere*/
/**************************************************************************/
}
/* Ha !nincs! a CHARS [ 1 ] -ben karaktere */
/*******************************************/
}
/* Ha van eredmény a realmcharacter tábla szerint */
/**************************************************/
else{
/******************************************************/
/* Ha nincs a Realmcharacter tábla szerint charactere */
?>
<div class="user-plate">
<div class="card-character plate-default no-character">
</div>
<div class="meta-wrapper meta-no-character ajax-update">
<div class="meta">
<div class="player-name">
<?echo ucfirst($_SESSION['username']);?>
</div>
<? echo $u['no_char'];?>
</div>
</div>
</div>
<?
/* Ha nincs a Realmcharacter tábla szerint charactere */
/******************************************************/
}
}
/* Ha !nincs! a felhasználókban sor */
/***********************************/

else{
/********************************/
/* Ha !van! a felhasználókban sor */

/* Visszakeresem a karakterét a characters táblából */
mysql_select_db($weboldaldb);
$kar_del_k = mysql_query("SELECT * FROM felhasznalok WHERE fiokid='".$_SESSION['id']."'");
$kar_del_t = mysql_fetch_array($kar_del_k);
switch($kar_del_t['realmid']){
case 1:
$charsdb_del = $charsdb;
break;
case 2:
$charsdb_del = $charsdb2;
break;
default:
$charsdb_va = $charsdb;
}
mysql_select_db($charsdb_del);
$char_del_k = mysql_query("SELECT * FROM characters WHERE guid = '".$kar_del_t['guidid']."' AND account = '".$kar_del_t['fiokid']."' AND name = '".$kar_del_t['karakternev']."'");
if(mysql_num_rows($char_del_k) != 1){


/* Ha nem létezik a karakter a megadott chars DB-ben, akkor törlöm a felhsználók táblából a sort */
mysql_select_db($weboldaldb);
mysql_query("DELETE FROM felhasznalok WHERE fiokid = '".$_SESSION['id']."'");

header('location: '.$_SERVER["REQUEST_URI"]); // Saját magát hívja meg, de postolt adat nélkül.
exit();

}else{
/*************************************************************************/
/* Amenyiben van karakter a felhsználók táblában, és a karakter érvényes */


/* Lekérem a karakter összes adatát a felhasználók táblából */
mysql_select_db($weboldaldb);
$karakterlekerdezes_valasztott_keres = mysql_query("SELECT * FROM felhasznalok WHERE fiokid='".$_SESSION['id']."'");

/********************************************************************************************************/
/* Már hozott létre karaktert, és ki is van választva [ felhasználók tábla feltöltve & érvényes adatok ]*/
if(mysql_num_rows($karakterlekerdezes_valasztott_keres) != 0){


$karakterlekerdezes_valasztott_tomb = mysql_fetch_array($karakterlekerdezes_valasztott_keres);

$kartya_hatterek = array("2-0", "2-1", "5-0", "5-1", "6-0", "6-1", "8-0", "8-1", "10-0", "10-1");


if(in_array($karakterlekerdezes_valasztott_tomb['avatar'], $kartya_hatterek)){
$kartya_hatter = 'class="card-character plate-horde ajax-update"';
$meta_wrapper = 'meta-horde';
}else{
$kartya_hatter = 'class="card-character plate-alliance ajax-update"';
$meta_wrapper = 'meta-alliance';
}

?>
<div class='user-plate'>
<a id='user-plate' <?echo $kartya_hatter;?> rel='np' href=''>
<span class='card-portrait' style="background-image:url(<? echo $kiindulomappa.'megjelenes/'.$tema.'/images/2d/avatar/'.$karakterlekerdezes_valasztott_tomb['avatar'].'.jpg'; ?>)">
</span>
</a>
<div class='meta-wrapper <?echo $meta_wrapper;?> ajax-update'>
<div class='meta'>
<div class='player-name'>
<?echo ucfirst($_SESSION['username']);?>
</div>
<div class='character'>
<a class='character-name context-link text-small' rel='np' href='' data-tooltip='Change character' data-tooltip-options='{"location": "topCenter"}'>
<?echo $karakterlekerdezes_valasztott_tomb['karakternev'].' ';?>
<span class="arrow"></span>
</a>
<div id='context-1' class='ui-context character-select'>
<?require_once('karaktervaltas.php');?>
</div>
</div>
</div>
</div>
</div>
<?
}
/* Már hozott létre karaktert, és ki is van választva [ felhasználók tábla feltöltve & érvényes adatok ]*/
/********************************************************************************************************/
}
/* Amenyiben van karakter a felhsználók táblában, és a karakter érvényes */
/*************************************************************************/
}
/* Ha !van! a felhasználókban sor */
/********************************/

/************************/
/* WEBSITE FELHASZNALOK */
/************************/
?>
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

Nem elérhető NevemSenki

  • Adminisztrátor
  • Cube Head
  • *****
  • Hozzászólások: 967
  • Kliens Editer
  • Op. Rendszer: Windows Xp Home Edition
Re:Eredetihez hasonló [ userplate ] Trinity-hez Multirealm-hoz is!
« Válasz #3 Dátum: 2013 Január 23, 08:00:49 pm »


A lentebb publikát kód működéséről megbizonyosodhattok ezen videó alapján!


Kód: (php) [Kijelölés]
<?
//      _   __                        _____            __   _
//     / | / /__ _   _____  ____ ___ / ___/___  ____  / /__(_)
//    /  |/ / _ \ | / / _ \/ __ `__ \\__ \/ _ \/ __ \/ //_/ /
//   / /|  /  __/ |/ /  __/ / / / / /__/ /  __/ / / / ,< / / 
//  /_/ |_/\___/|___/\___/_/ /_/ /_/____/\___/_/ /_/_/|_/_/   
//                                                           

/************************************************************************************/
/* POST [ session, nev, token ] Update a felhasználók táblába ha mind a 3 jelen van */
/* !ELLENŐRZÉS!*/
/* Létezik-e a 3 elvárt POST-olt adat. */
if(isset($_POST['nev']) and isset($_SESSION['id']) and isset($_POST['Token']) and isset($_POST['realm'])){
   //echo $_POST['realm'];
/* !ELLENŐRZÉS! */
/* AUTH --> account A felhasználónév és jelszó visszuaellenőrzése */
mysql_select_db($authdb);
$ervenyes_e = mysql_query("SELECT username, sha_pass_hash FROM account WHERE username='".$_SESSION['username']."' AND sha_pass_hash='".mysql_real_escape_string($_POST['Token'])."'");
if(mysql_num_rows($ervenyes_e) != 0){
   

/* Lekérem a realm nevét*/
mysql_select_db($authdb);
$realmon_van_id_keres = mysql_query("SELECT realmid, acctid FROM realmcharacters WHERE acctid='".$_SESSION['id']."' AND realmid='".mysql_real_escape_string($_POST['realm'])."'");
if(mysql_num_rows($realmon_van_id_keres) != 0){

$realmon_van_nev_keres = mysql_query("SELECT id, name FROM realmlist WHERE id='".mysql_real_escape_string($_POST['realm'])."'");
if(mysql_num_rows($realmon_van_nev_keres) != 0){

$realmon_van_nev_tomb = mysql_fetch_array($realmon_van_nev_keres);
//if($_POST['realm'] == 1){$charsdb_va = $charsdb;}elseif($_POST['realm'] == 2){$charsdb_va = $charsdb2;}elseif($_POST['realm'] == 3){$charsdb_va = $charsdb3;}

switch(mysql_real_escape_string($_POST['realm'])){
case 1:
$charsdb_va = $charsdb;
break;
case 2:
$charsdb_va = $charsdb2;
break;
default:
$charsdb_va = $charsdb;
}
mysql_select_db($charsdb_va);
/* !ELLENŐRZÉS! */
/* CHARS --> characters Az acconton van-e ilyen nevű karakter */
//mysql_select_db($chars_db);
$kar_van_e = mysql_query("SELECT guid, account, name, race, class, gender, level FROM characters WHERE account='".$_SESSION['id']."' AND name='".mysql_real_escape_string($_POST['nev'])."'");
if(mysql_num_rows($kar_van_e) != 0){

$karaktervaltas_query_row = mysql_fetch_array($kar_van_e);

if(isset($_SESSION["gmlevel"])){
$gm_szint = $_SESSION["gmlevel"];
}else{
$gm_szint = 0;
}

if(isset($_SESSION['guidid'])){
unset($_SESSION['guidid']);
$_SESSION['guidid'] = 1;
}else{
$_SESSION['guidid'] = 1;
}

mysql_select_db($weboldaldb);
mysql_query("UPDATE felhasznalok SET avatar='".$karaktervaltas_query_row['race'].'-'.$karaktervaltas_query_row['gender']."', blizz='".$gm_szint."', karakternev='".$karaktervaltas_query_row['name']."', level='".$karaktervaltas_query_row['level']."', class='".$karaktervaltas_query_row['class']."', realm='".$realmon_van_nev_tomb['name']."', guidid='".$karaktervaltas_query_row['guid']."', race='".$karaktervaltas_query_row['race']."', realmid='".$_POST['realm']."' WHERE fiokid='".$_SESSION['id']."'");

}
}
}
}
}
/* POST [ session, nev, token ] Update a felhasználók táblába ha mind a 3 jelen van */
/************************************************************************************/
   

/************************/
/* WEBSITE FELHASZNALOK */
/************************/

/* !ELLENŐRZÉS! */
/* WEBSITE --> felhasznalok ven-e ilyen sor SESSION id szerint */
mysql_select_db($weboldaldb);
$felhasznalok_karakter_keres = mysql_query("SELECT * FROM felhasznalok WHERE fiokid='".$_SESSION['id']."'");
if(!$felhasznalok_karakter_keres) { die("Hibás lekérdezés: (MYSQL): " . mysql_error()); }
if(mysql_num_rows($felhasznalok_karakter_keres) == 0){

/************************************/
/* Ha !nincs! a felhasználókban sor */

/* !ELLENŐRZÉS! */
/* REALMCHARS --> vane-e az account-on karakter a realmcharacter tábla szerint*/
mysql_select_db($authdb);
$realmon_van_id_keres = mysql_query("SELECT * FROM realmcharacters WHERE acctid='".$_SESSION['id']."' AND numchars > 0");
if(!$realmon_van_id_keres) { die("Hibás lekérdezés: (MYSQL): " . mysql_error()); }
if(mysql_num_rows($realmon_van_id_keres) != 0){

/**************************************************/
/* Ha van eredmény a realmcharacter tábla szerint */

/* !ELLENŐRZÉS! */
/* CHARS --> van-e karaktere CharsDB [ 1 ]*/
mysql_select_db($charsdb);
$karakter_insert_keres_1 = mysql_query("SELECT guid, account, name, race, class, gender, level FROM characters WHERE account='".$_SESSION['id']."' ORDER BY level DESC");
if(!$karakter_insert_keres_1) { die("Hibás lekérdezés: (MYSQL): " . mysql_error()); }
if(mysql_num_rows($karakter_insert_keres_1) > 0){

/***************************************/
/* Ha van a CHARS [ 1 ] -ben karaktere */

$karakter_insert_tomb_1 = mysql_fetch_array($karakter_insert_keres_1);

/* GM level átadás*/
if(isset($_SESSION["gmlevel"])){
$gm_szint = $_SESSION["gmlevel"];
}else{
$gm_szint = 0;
}

$guildban_van_1 = "Nincs Guildban"; // GUILD

/* Realmnév lekérése */
mysql_select_db($authdb);
$realm_nev_k = mysql_query("SELECT id, name FROM realmlist WHERE id = 2");
$realm_nev_t = mysql_fetch_assoc($realm_nev_k);

/* INSERT a felhasználók táblába [ CharsDB 1 ]*/
mysql_select_db($weboldaldb);
$insert_sql_1 = "insert into felhasznalok (fiokid, avatar, blizz, karakternev, level, guild, realm, class, guidid, race, realmid) VALUES ('".$_SESSION['id']."', '".$karakter_insert_tomb_1['race'].'-'.$karakter_insert_tomb_1['gender']."', '".$gm_szint."', '".$karakter_insert_tomb_1['name']."', '".$karakter_insert_tomb_1['level']."', '".$guildban_van_1."', '".$realm_nev_t['name']."', '".$karakter_insert_tomb_1['class']."','".$karakter_insert_tomb_1['guid']."', '".$karakter_insert_tomb_1['race']."', '1')";
mysql_query($insert_sql_1);
header('location: '.$_SERVER["REQUEST_URI"]); // Saját magát hívja meg, de postolt adat nélkül.
exit();

}
/* Ha van a CHARS [ 1 ] -ben karaktere */
/***************************************/
else{
/*******************************************/
/* Ha !nincs! a CHARS [ 1 ] -ben karaktere */

/* Ellenőrzöm hogy van-e CHARS [ 2 ], ha van akkor átadom, ha nincs akkor a CHARS [ 1 ]-et adom át hogy ne legyen hiba. */
if($charsdb2 != ''){$DB_chars = $charsdb2;}else{$DB_chars = $charsdb;}

/* CHARS --> van-e karaktere CharsDB [ 2 ]*/
mysql_select_db($DB_chars);
$karakter_insert_keres_1 = mysql_query("SELECT guid, account, name, race, class, gender, level FROM characters WHERE account='".$_SESSION['id']."' ORDER BY level DESC");
if(!$karakter_insert_keres_1) { die("Hibás lekérdezés: (MYSQL): " . mysql_error()); }
if(mysql_num_rows($karakter_insert_keres_1) > 0){

/***************************************/
/* Ha van a CHARS [ 2 ] -ben karaktere */
$karakter_insert_tomb_1 = mysql_fetch_array($karakter_insert_keres_1);

/* GM level átadás*/
if(isset($_SESSION["gmlevel"])){
$gm_szint = $_SESSION["gmlevel"];
}else{
$gm_szint = 0;
}

$guildban_van_1 = "Nincs Guildban"; // GUILD

/* Realmnév lekérése */
mysql_select_db($authdb);
$realm_nev_k = mysql_query("SELECT id, name FROM realmlist WHERE id = 2");
$realm_nev_t = mysql_fetch_assoc($realm_nev_k);

/* INSERT a felhasználók táblába [ CharsDB 2 ]*/
mysql_select_db($weboldaldb);
$insert_sql_1 = "insert into felhasznalok (fiokid, avatar, blizz, karakternev, level, guild, realm, class, guidid, race, realmid) VALUES ('".$_SESSION['id']."', '".$karakter_insert_tomb_1['race'].'-'.$karakter_insert_tomb_1['gender']."', '".$gm_szint."', '".$karakter_insert_tomb_1['name']."', '".$karakter_insert_tomb_1['level']."', '".$guildban_van_1."', '".$realm_nev_t['name']."', '".$karakter_insert_tomb_1['class']."','".$karakter_insert_tomb_1['guid']."', '".$karakter_insert_tomb_1['race']."', '2')";
mysql_query($insert_sql_1);
header('location: '.$_SERVER["REQUEST_URI"]); // Saját magát hívja meg, de postolt adat nélkül.
exit();

}
/* Ha van a CHARS [ 2 ] -ben karaktere */
/***************************************/
else{

/**************************************************************************/
/* Ha !nincs! a CHARS [ 1 ] -ben és !nincs! CHARS [ 2 ] -ben sem karaktere*/
?>
<div class="user-plate">
<div class="card-character plate-default no-character">
</div>
<div class="meta-wrapper meta-no-character ajax-update">
<div class="meta">
<div class="player-name">
<?echo ucfirst($_SESSION['username']);?>
</div>
<? echo $u['no_char'];?>
</div>
</div>
</div>
<?
}
/* Ha !nincs! a CHARS [ 1 ] -ben és !nincs! CHARS [ 2 ] -ben sem karaktere*/
/**************************************************************************/
}
/* Ha !nincs! a CHARS [ 1 ] -ben karaktere */
/*******************************************/
}
/* Ha van eredmény a realmcharacter tábla szerint */
/**************************************************/
else{
/******************************************************/
/* Ha nincs a Realmcharacter tábla szerint charactere */
?>
<div class="user-plate">
<div class="card-character plate-default no-character">
</div>
<div class="meta-wrapper meta-no-character ajax-update">
<div class="meta">
<div class="player-name">
<?echo ucfirst($_SESSION['username']);?>
</div>
<? echo $u['no_char'];?>
</div>
</div>
</div>
<?
/* Ha nincs a Realmcharacter tábla szerint charactere */
/******************************************************/
}
}
/* Ha !nincs! a felhasználókban sor */
/***********************************/

else{
/********************************/
/* Ha !van! a felhasználókban sor */

/* Visszakeresem a karakterét a characters táblából */
mysql_select_db($weboldaldb);
$kar_del_k = mysql_query("SELECT * FROM felhasznalok WHERE fiokid='".$_SESSION['id']."'");
$kar_del_t = mysql_fetch_array($kar_del_k);
switch($kar_del_t['realmid']){
case 1:
$charsdb_del = $charsdb;
break;
case 2:
$charsdb_del = $charsdb2;
break;
default:
$charsdb_del = $charsdb;
}
mysql_select_db($charsdb_del);
$char_del_k = mysql_query("SELECT * FROM characters WHERE guid = '".$kar_del_t['guidid']."' AND account = '".$kar_del_t['fiokid']."' AND name = '".$kar_del_t['karakternev']."'");
if(mysql_num_rows($char_del_k) != 1){


/* Ha nem létezik a karakter a megadott chars DB-ben, akkor törlöm a felhsználók táblából a sort */
mysql_select_db($weboldaldb);
mysql_query("DELETE FROM felhasznalok WHERE fiokid = '".$_SESSION['id']."'");

header('location: '.$_SERVER["REQUEST_URI"]); // Saját magát hívja meg, de postolt adat nélkül.
exit();

}else{
/*************************************************************************/
/* Amenyiben van karakter a felhsználók táblában, és a karakter érvényes */


/* Lekérem a karakter összes adatát a felhasználók táblából */
mysql_select_db($weboldaldb);
$karakterlekerdezes_valasztott_keres = mysql_query("SELECT * FROM felhasznalok WHERE fiokid='".$_SESSION['id']."'");

/********************************************************************************************************/
/* Már hozott létre karaktert, és ki is van választva [ felhasználók tábla feltöltve & érvényes adatok ]*/
if(mysql_num_rows($karakterlekerdezes_valasztott_keres) != 0){


$karakterlekerdezes_valasztott_tomb = mysql_fetch_array($karakterlekerdezes_valasztott_keres);

$kartya_hatterek = array("2-0", "2-1", "5-0", "5-1", "6-0", "6-1", "8-0", "8-1", "10-0", "10-1");


if(in_array($karakterlekerdezes_valasztott_tomb['avatar'], $kartya_hatterek)){
$kartya_hatter = 'class="card-character plate-horde ajax-update"';
$meta_wrapper = 'meta-horde';
}else{
$kartya_hatter = 'class="card-character plate-alliance ajax-update"';
$meta_wrapper = 'meta-alliance';
}

?>
<div class='user-plate'>
<a id='user-plate' <?echo $kartya_hatter;?> rel='np' href=''>
<span class='card-portrait' style="background-image:url(<? echo $kiindulomappa.'megjelenes/NevemSenki/images/2d/avatar/'.$karakterlekerdezes_valasztott_tomb['avatar'].'.jpg'; ?>)">
</span>
</a>
<div class='meta-wrapper <?echo $meta_wrapper;?> ajax-update'>
<div class='meta'>
<div class='player-name'>
<?echo ucfirst($_SESSION['username']);?>
</div>
<div class='character'>
<a class='character-name context-link text-small' rel='np' href='' data-tooltip='Change character' data-tooltip-options='{"location": "topCenter"}'>
<?echo $karakterlekerdezes_valasztott_tomb['karakternev'].' ';?>
<span class="arrow"></span>
</a>
<div id='context-1' class='ui-context character-select'>
<?require_once('karaktervaltas.php');?>
</div>
</div>
</div>
</div>
</div>
<?
}
/* Már hozott létre karaktert, és ki is van választva [ felhasználók tábla feltöltve & érvényes adatok ]*/
/********************************************************************************************************/
}
/* Amenyiben van karakter a felhsználók táblában, és a karakter érvényes */
/*************************************************************************/
}
/* Ha !van! a felhasználókban sor */
/********************************/

/************************/
/* WEBSITE FELHASZNALOK */
/************************/
?>

Ezzel én az Userplate funkcióit megírtam, lehet másképpen is, lehet jobban is. Ez is egy lehetőség, egy szál amin el lehet indulni ha valaki egy hasonlót szeretne kreálni. Működése tökéletes. Kommentelgettem elég rendesen a kódot, hogy könnyebb legyen megérteni.
Egyetlen hibája, hogy kizárólag TC-het használható. Módosításokkal más emuhoz is, de ebbe nem megyek bele.
A videókban mindent láthattok, bár az utolsó elég gyengére sikerült minőség téren. De a lényeg látható, és érthető.
Én még egy szerveren sem, egy weblapon sem láttam, hogy ez az egész ilyen szintem működött volna, főleg úgy nem hogy multirealm-hoz is használható.
Használjátok egészséggel, de ha majd a későbbiekben úgy döntötök, hogy azt a weboldalt akarjátok használni a szerveretekhez amit most írok, akkor ez vissza fog köszönni. :)

Köszönöm annak aki figyelemmel kísérte a tevékenységemet, annak még jobban, aki néha 1-2 szót hozzá is szólt, vagy esetleg csak névtelenül egy Respect-el adta tudtomra hogy tetszik neki amit csinálok.
Kérdezni nem szégyen, se Respect-elni, se hozzászólni akár pozitív, vagy negatív kritikákkal.

Üdvözlettel: NevemSenki
« Utoljára szerkesztve: 2013 Január 23, 08:06:46 pm írta NevemSenki »
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27