Kérdések és válaszok

Indította DoomKiller, 2010 augusztus 10, 06:46:54 DÉLUTÁN

Előző téma - Következő téma

NevemSenki

#285
Gondolkoztam ezen a nyelvválasztós dolgon.

Abból indulunk ki, hogy ez egy tört szervernek lesz a weboldala. Ha ide feljön egy vendég, akkor beállítja a nyelvet, elolvassa ami neki kell, és vagy úgy dönt hogy reggel, vagy úgy hogy ez szar.
Ha szar, akkor minek jönne ide többet, vagyis belátható időn belül. Vagy ha jön is, akkor vagy még aznap, vagy másnap. Ha pedig reggel, akkor itt is marad.

Vendég:
A session jó választás erre a célra, mert nem jön úgysem nap mint nap. De azért a KUKI.. is kéne, mondjuk ha van olyan ami tárolódik 1 napig, mert ha feljön mondjuk 2 óra múlva, újra megnézni a dolgokat, akkor nem kell újra nyelvet állítani. Ha pedig törli a KUKIkat akkor magára vessen.

Reggelt felhasználó:
Ha reggel, beállítja hogy milyen nyelven akarja használni, és onnan olvasom ki ha belép.
De ezt lesz lehetősége megváltoztatni.

Másik dolog, beszéltetek itt tárolásról, meg hogy csökken az oldal sebessége ha így és úgy oldom meg.
Na ezt nem nagyon értettem, sőt... sebaj...
Mi van akkor , ha többdimenziós tömbbel oldom meg?
Egy fájlban lekerítem a nyelv tömböt, azon belül mondjuk játékleírás, és azon belül mondjuk akármi más.
http://www.w3schools.com/php/php_arrays.asp Oldal közepe felé Multidimensional Arrays....
Mert így csak azt olvassa ki ami neki kell ( Jó kicsit többet, de így nem tölti be a fórumhoz tartozó dolgokat, ha a közösséget nézi ), kevesebbet kell betölteni. Vagy nem?

Vagy ez teljesen hülyeség?

Frissítés:

Még így este tökéletesítettem kicsit a dolgot.

A conn.php a legelső Includ-olt fájlom mindenhol, az megnézi hogy van-e értéke a $_GET['nyelv']-nek, és ha van, akkor besajtolja a $_SESSION['nyelv']-be.
Ha a $_SESSION['nyelv'] nek nincs értéke, akkor a conn.php-ben hozzáadja az alapértelmezettet a $_SESSIOn['nyelv'] = 'hu';
Ez alapján lehet átváltogatni, a nem reggelt tagoknak.

Ha reggelt, akkor be tud lépni, ahol összehasonlítom a beírt és a kiolvasott jelszót, annál az If-nél ha igaz, akkor, a kiolvasott értéket beteszi :
$_SESSION["nyelv"] = $login["locale"];

Így akármi volt a vendégként beállított nyelv, azt töröltem, és lecseréltem arra amit az account táblából kiolvastam.

A konstrukció működőképes. jó lesz ez így, vagy hülyeség amit csináltam?


Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

NevemSenki

Hali.

Fogalmam sincsen, hogy hogyan kéne rákeresni arra amit nem találok. Na ezt jól megfogalmaztam.
Szóval, fennakadtam valamin.

Adott egy ciklus, amiben ismétlek egy HTML DIV-et. Úgy szeretném változtatni a DIV class-át, hogy az egyszer

class="x"

Majd a következő ciklus lefutásakor

calss="y"

legyen.

Vagyis mindig változzon. De két egyforma nem lehet egymás alatt.
( Most csinálom a keresőt, és mikor kilistáztatom a karaktereket, a páros ás páratlan soroknak más színe van, de viszont minden páros és minden páratlan egyforma színű.  Ezt oldottam meg ciklussal. Csak éppen a váltogatást nem tudom kivitelezni. De még azt sem tudom hogy hogy keressek rá. )

Hogyan oldható ez meg, talán valami javascriptes megoldás? Mert azt még nem nagyon értem.
Előre is köszönöm a válaszokat.

Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

hunti

#287
Én amit lehet phpval oldok meg, szóval tegyük fel hogy php-val printeled ki azokat a sorokat.
Ciklusban szerepeljen valahogy ez:

Kód (php) Kijelölés
$sorclass=!$sorclass;
print('<div class="'.($sorclass?'x':'y').'"></div>');


Első sor lényegében minden lefutáskor negálja az értékét (igaz vagy hamis).
A második sorban pedig van ez: ($sorclass?'x':'y')
Ez egy egyszerűsített if (nem tudom egyébként hogy nevezik, csak használom), amely úgy néz ki hogy a kérdőjel előtt van a feltétel, kérdőjel után pedig kettőspontal elválasztva előbb az igaz (x), utóbb a hamis (y) állításra való válasz.
Lényegében ez a kód megoldja hogy felváltva más class típusa legyen a diveknek. Ha esetleg javascriptben szeretnéd megoldani, az elv ugyanaz, csak át kell írni javascriptes megfelelőjére.

NevemSenki

#288
Köszönöm a választ, kipróbáltam.
Vagy én nem értettem meg a lényeget, vagy képtelen voltam megfogalmazni a kérdést, vagy pedig nem működik a logika.

Adott ez:

Kód (php) Kijelölés
<?php
while($karakter_kereses_teljes_tomb mysql_fetch_array($karakter_kereses_teljes)){
?>


<tr class="row1">
<td>
<a href="/wow/en/character/burning-blade/World/" class="item-link color-c2">
<span class="icon-frame frame-18">
<img src="http://us.battle.net/static-render/us/burning-blade/22/52335894-avatar.jpg?alt=/wow/static/images/2d/avatar/10-1.jpg" alt="" width="18" height="18" />
</span>
<strong><?php echo $karakter_kereses_teljes_tomb['name']; ?></strong>
</a>
</td>
<td class="align-center">
<?php echo $karakter_kereses_teljes_tomb['level']; ?>
</td>
<td class="align-center">
<span class="icon-frame frame-14 " data-tooltip="Blood Elf">
<img src="http://media.blizzard.com/wow/icons/18/race_10_1.jpg" alt="" width="14" height="14" />
</span>
</td>
<td class="align-center">
<span class="icon-frame frame-14 " data-tooltip="Paladin">
<img src="http://media.blizzard.com/wow/icons/18/class_2.jpg" alt="" width="14" height="14" />
</span>
</td>
<td class="align-center">
<span class="icon-frame frame-14 " data-tooltip="Horde">
<img src="http://media.blizzard.com/wow/icons/18/faction_1.jpg" alt="" width="14" height="14" />
</span>
</td>
<td>
<a href="/wow/en/guild/burning-blade/Lowered_Expectations/" class="sublink">Lowered Expectations</a>
</td>
<td>Burning Blade</td>
<td>Vindication</td>
</tr>
<?php
}
?>



Az lenne a lényeg, hogy minden első Tr <tr class="row1"> legyen, és minden második TR pedig <tr class="row2">

Gondoltam arra, hogy megoldom úgy, hogy bedobok értéknek mondjuk 1-et, lefut vele a ciklus, majd a végén megvizsgálom hogy az érték egyenlő-e 1-el, ha igen akkor hozzáadok még egyet, és újrafuttatom a ciklust. Ha a ciklus nem egyenlő 1-el, vagyis kettő lesz, az else ágban kivonok belőle 1-et. És akkor elméletben folyton változik a dolog.
Rossz ötlet?

( Tudom, kicsit hülyék a változónevek, de nekem így könnyebb. )

Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

AximCore

Inkább akkor egy Bool változót hozz létre és azt vizsgálgasd, hogy True v. False persze minden kiíratás után megváltoztatod a változó állapotát.
"Tanítani lehet az ostobát, de gondolkodásra bírni nem."
A Talmud

Windows Firewall
http://devopsreactions.tumblr.com/

Why use Windows, if you have open doors... to Linux

hunti

Kód (php) Kijelölés
<tr class="row1">
helyett
Kód (php) Kijelölés
<tr class="row<?php print($sor?'2':'1'); $sor=!$sor;?>">

NevemSenki

#291
Hát én kipróbáltam, és nekem nem működik.

IdézNotice: Undefined variable: sor in C:\wamp\www\kereso\karakter.php on line 389


Ha már itt tartunk, ezt a részt nem értem, ez mit csinál?
Kód (php) Kijelölés
<?php
$sor
=!$sor
?>


Az előtte lévő rövidített if utasítást értem, csak a végét nem. Neten nem nagyon találtam ilyen példát.
Akinek van ideje segíthetne ezt megérteni.
Most így van megoldva:

Kód (php) Kijelölés
<?php while($karakter_kereses_teljes_tomb mysql_fetch_array($karakter_kereses_teljes)){

$kereso_karakter_avatar $karakter_kereses_teljes_tomb['race']. "-" $karakter_kereses_teljes_tomb['gender'];
$kereso_karakter_avatar_race 'race_'$karakter_kereses_teljes_tomb['race']. "_" $karakter_kereses_teljes_tomb['gender'];

?>

<tr class="row<?php echo $aclass?>">
<td>
<a href="/wow/en/character/burning-blade/World/" class="item-link <?php echo $karakter_class_szinek[$karakter_kereses_teljes_tomb['class']]; ?>">
<span class="icon-frame frame-18">
<img src="<?php echo $kiindulomappa ?>megjelenes/<?php echo $tema?>/images/2d/avatar/<?php echo $kereso_karakter_avatar?>.jpg" alt="" width="18" height="18" />
</span>
<strong><?php echo $karakter_kereses_teljes_tomb['name']; ?></strong>
</a>
</td>
<td class="align-center">
<?php echo $karakter_kereses_teljes_tomb['level']; ?>
</td>
<td class="align-center">
<span class="icon-frame frame-14 " data-tooltip="<?php echo $karakter_race_tomb[$karakter_kereses_teljes_tomb['race']]; ?>">
<img src="<?php echo $kiindulomappa ?>megjelenes/<?php echo $tema?>/images/icons/18/<?php echo $kereso_karakter_avatar_race?>.jpg" alt="" width="14" height="14" />
</span>
</td>
<td class="align-center">
<span class="icon-frame frame-14 " data-tooltip="<?php echo $karakter_class_tomb[$karakter_kereses_teljes_tomb['class']]; ?>">
<img src="http://media.blizzard.com/wow/icons/18/class_<?php echo $karakter_kereses_teljes_tomb['class']; ?>.jpg" alt="" width="14" height="14" />
</span>
</td>
<td class="align-center">
<span class="icon-frame frame-14 " data-tooltip="<?php echo $karakter_klikk_tomb[$karakter_kereses_teljes_tomb['race']]; ?>">
<img src="http://media.blizzard.com/wow/icons/18/<?php echo $karakter_faction_kep_tomb[$karakter_kereses_teljes_tomb['race']]?>.jpg" alt="" width="14" height="14" />
</span>
</td>
<td>
<a href="/wow/en/guild/burning-blade/Lowered_Expectations/" class="sublink">Lowered Expectations</a>
</td>
<td>Burning Blade</td>
</tr>
<?php
if($aclass == '1'){
$aclass '2';
}else{
$aclass '1';
}
}
?>


Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

hunti

Kód (php) Kijelölés
<?php
$sor
=!$sor;
?>

! jel a logikai negáció jele, tehát a logikai igaz-t hamissá, hamist igazá teszi.
Lényegében ez a kód sor azt jelenti, hogy a változó legyen egyenlő az (logikai) ellenkezőjével.

Az hogy nem megy neked, valószínűleg nem az alábbi hibaüzenet miatti ok miatt van, mert ez csak egy notice, nem hibaüzenet csak megjegyzés, ettől még működne. DE:
Kód (php) Kijelölés
<?php echo $kiindulomappa ?>
ebből mintha hiányozna egy pontos vessző, és ez két helyen is szerepel hibásan a kódban :)

NevemSenki

Ebben igazad van, javítottam a hibákat, csak mindig utólag szoktam. Megírtam, lepróbáltam, de a ;-re nem dobott hibát ( igaz hiba volt ) csak a $sor -ra.
A ; hibák javítva lettek, csak néha lehagyom, de mikor befejezek egy fájlt, mindig átböngészem az egészt. Ez még csak egy elég nyers próbálkozós fájlnak egy része volt.
De nálam ez akkor sem működik. És nem tudom miért.
Most már tudom hogy mi is az, szóval hátha neten találok megoldást rá.

A másik dolog pedig a következő lenne, ez már egy kicsit bonyolultabb.

Adott egy tömb, egy bizonyos értékhez, rendelek egy másikat. Majd egy ciklusban meghívom a kellő adatot, majd egybeírom a tömbbel, és kiírja a hozzá rendelt dolgot.
Mutatom, részlet ( a ciklus nincs kiírva teljesen ), a kód így tökéletesen működik.

Kód (php) Kijelölés
<?php 

// Tömb az item linkekhez.
$karakter_item_szinek = array(
=> 'color-q0',
=> 'color-q1',
=> 'color-q2',
=> 'color-q3',
=> 'color-q4',
=> 'color-q5',
=> 'color-q6',
=> 'color-q7'

);

<?
php
while($item_kereses_tomb mysql_fetch_array($item_kereses_teljes)){
?>

<tr class="row<?php echo $aclass?>">
<td>
<a href="http://us.battle.net/wow/en/item/20756" class="item-link <?php echo $karakter_item_szinek[$item_kereses_tomb['Quality']]; ?>">
?>


Na most, mi van abban az esetben, ha a tömb nem csak pár adatot tartalmaz, hanem egy 2 oszlopos adatbázisban foglal helyet?
Hogyan oldanám meg ugyan ezt?

Mondjuk ha a $karakter_item_szinek egy iylen táblában lenne:

Kód (SQl) Kijelölés
create table `itemszinek` (
`id`,
`szin`
);


Akár hogy próbálkoztam, lövésem sincsen. Kiolvastam mysql_fetch_array-ba az adatokat, majd hasonlóan megírtam mint fentebb is, de úgy nem jó. Más ötletem nem nagyon volt.
Ha tudtok segíteni azt megköszönném.

Tudom hogy sok a kérdés, és néha hülyeségek, de próbálom megtanulni a dolgokat.
Nem mindenben kérek segítséget, de ez a dolog felmerült már több mint 1 hete, de hanyagoltam, és közben  próbáltam megoldani. Attól hogy sok a kérdés, azt nem azt jelenti hogy azonnal felteszem mihelyt a probléma előjön.

Előre is köszi a segítséget.

Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

hunti

Vissza térve egy régebbi kérdésedre, azok az általam meg nem nevezett if-ek "inline if" vagy "shorthand if" néven googlizhatóak, bár úgy érzem ezek még nem a pontos nevük, de legalább lehet rá keresni neten leírást ezekkel. Jó lenne tudni végre a rendes nevüket.

Nem biztos hogy jól értem a problémát, még csak most ébredezek, de:
Kód (php) Kijelölés
$query = mysql_query("SELECT * FROM `dbneve`.`itemszinek`");
while($qs=mysql_fetch_row($query)) {
   karakter_item_szinek[$qs['id']]=$qs['szin'];
  }


És visszatérve arra a kérdésedre, hogy mit csinál ez: $sor=!$sor;
Kód (php) Kijelölés
                                                if($sor == '0'){
                                                $sor= '1';
                                                }else{
                                                $sor= '0';
                                                }

Így tudnám elmagyarázni másképpen. Ahogy mondtam logikai igaz és hamis között váltakozik a $sor változó, ami 0 és 1-nek felel meg digitálisan (valójában 0 és nem 0, ugyanis php-nál és más programozási nyelveknél is a 0 a hamis, és bármi más ami nem 0 értékű az logikailag igaz).

NevemSenki

Köszönöm a választ, és a magyarázatot hozzá. Most már nekem is működik a $sor = !$sor; dolog.
A kódon semmit nem változtattam, de a dolog az elején nem működött. Még régebben bekapcsoltam a rövidített  PhP Tag-ek mondult, és a rewrite modult is. Csak így viccből kikapcsoltam mind a kettő, majd újra be. Ugye restartolódott a wampserver. És most működik a dolog.

Nem tudom hogy mitől lehet ez, mert egyszer már újraraktam. Valami nagy gondok lehetnek nálam gép ügyileg.
Mint annó a 3d character megjelenítő-vel is voltak hibák.
Lehet hogy újra kéne raknom az egész gépet, ami most sajnos nem kivitelezhető, mert annyi adatom van, hogy hetek mire összeválogatom őket.
Nagyon köszönöm a segítséget, a magyarázatot, és mindent.
Szerintem ez az egész nem csak nekem segít sokat, hanem sok fórumozónak, és vendégnek is akik hasonló szintem vannak a PhP-ben mint én.

Lenne még egy érdekes kérdésem, gondolati síkon.

Nézegettem a static-render-t, próbáltam utánakeresgélni neten. Érdekes dolog ez, mert a meglévő karakterről, készít egy " profilképet ", amit bizonyos időnként frissít, majd ezt használja avatar-nak az oldal.
Ezen dolog megvalósításán gondolkodtam. De ez koránt sem egyszerű.
Csak hogy tudjuk hogy nagy vonalakban miről is beszélek: http://us.battle.net/wow/en/forum/topic/6571627473

Ez megvalósíható, mert Blizzard is megvalósította, és amennyiben feltételezzük hogy nem Ufók vagy Autóbot-ok, akkor ez nekünk is megvalósítható lenne.
Szerintetek mi lehetne ennek a nyitja, merre kéne körülnézni, vagy mi lenne az elképzelés ezen dolog megvalósítására?
Egy olyan weboldalt sem láttam még, ahol ez akár még részben is működne.
( Kevés olyan oldal van, ami az eredi wow weboldalára hajaz, mert igaz, máshol ez nem kerülhet elő. )
Megvalósítható, ez tény, hisz látható Blizz Bácsinál, de mégis hogyan?
Csak elméleti síkon haladjunk, akinek van valami ötlete, írja le, várom a válaszokat.

Előre is köszönöm.

Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

hunti

Már tört szerverekhez is megoldott a 3d karakter megjelenítés, itemekkel, innen már csak egy kis programozási tudás kell, és a kimenetet fájlba irányítva kész a karakter kép.

NevemSenki

Igaz. Megjeleníthetőek a karakterek, itemek...
De azt hogy oldom meg, hogy a karakternek csak egy részét vigyem át magára a képre?
Mert ugye én a karaktereket a shadez-ből kölcsönzött megjelenítővel szándékozom megjeleníteni. De viszont az avatarokat le kéne kreálni. De ott viszont csak jóformán az arckép látható (+ chest, +fejes, +vállas részei).

Az a baj, hogy igazából gőzöm sincs hogy ez hogy menne. Egy SWf által jeleníthetem meg a 3D karakter weben ( az én felfogásom szerint ), de hogy képezek ebből képet?

Mik lennének az irányvonalak? Vagy egyáltalán milyen program nyelvel?

Mert én minden részt csak is úgy akarok felhasználni, beépíteni, ha a működését 100%-ban értem.
Ha netán erre létezik script, vagy egy adott program, azt hiába is linkelnétek be, nem használnám fel.
Én egy ilyen érdekes ember vagyok. :)

Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

NevemSenki

#298
Keresgéltem, nézegettem... gondolkodtam...
Konkrét megvalósításokat még csak egy swf lejátszó által megjelenített videóból való pillanatkép kiragadásra találtam, ami igaz az ami nekem kéne, de nem teljesen.
Viszont most találtam valamit, igaz a leírás angol, ezért nem biztos hogy jól értettem, de ha minden igaz ez képes lenne ellátni a Static-render szerepét.

http://www.muhammadbinyusrat.com/flash/PNGExport/

Véleményeket kérek, hogy jó fele keresgélek-e.

Ha a link nem lenne elérhető, amire volt példa miközben keresgéltem, ezen esetre kisbetűsen bemásolnám a leírást. A kódokat PhP kodtage-be tettem, hogy kicsit elkülönüljön, de ez nem PhP.




Flash ActionScript 3.0 Flash to PNG Exporter Class (Ver 0.2)

Export PNG images from Flash with ActionScript 3.0 in the easiest way possible.

Author: Muhammad bin Yusrat (www.muhammadbinyusrat.com)

Description: Makes an easy to export PNG Images from with in Flash. You can take a snapshot of any MovieClip (or the entire stage) and tell the class to export it to PHP which then saves it on the server.

Important: The class has now shifted to the Flash ActionScript to PNG Export Class page on Flashiology. The page you are reading may be out dated.

Functions:


This function accepts two arguments. One is the target MovieClip that needs to be snapped. Second is an optional Rectangle (flash.geom.Rectangle) which, if passed, will crop the image to that rectangle.


Once the movieclip has been snapped you can simply call this second function and give it the URL to the PHP Page (or any other server side language, sample PHP included in the files) and it will send the image to it. Basically it encodes the image to Base64 which can easily be decoded using PHP, ASP or any other language without having to install any specific component on the server. This DOES NOT require GD Library with PHP. If you do not know what I am saying, don't worry.. just read on.

This function has 1 primary and 3 optional arguments.

1. PageURL: The data will be sent to this page. Pass it as a string. Required.
2. onComplete: A function to be invoked once the image has been send successfully. Optional.
3. ProgressFunction: In case you need to show the user some progress of how much image has been uploaded, this parameter can be used. It passes a ProgressEvent to the function. Optional.
4. vars: Just in case you need to send some additional POST variables (Session IDs, etc..) to the receiving page, you can use this parameter. See below examples. This is also optional.

Here is the easiest way to export PNG image with ActionScript 3 using this class:

Kód (php) Kijelölés
import com.muhammadbinyusrat.PNGExport;

var exporter:PNGExport = new PNGExport();
exporter.Snap(testClip);
exporter.SendTo("getImage.php");


Crop and onComplete Example:

Kód (php) Kijelölés
import com.muhammadbinyusrat.PNGExport;

var exporter:PNGExport = new PNGExport();
var cropArea:Rectangle = new Rectangle(50,50,100,150);
exporter.Snap(MovieClip(root),cropArea); //This will Snap the entire page and crop it according to the rectangle.
exporter.SendTo("getImage.php",ShowWhenImageSaved);

function ShowWhenImageSaved(e:Event):void{
trace("The image has been saved..");
  trace("PHP Said:" + e.target.data);
}


ProgressEvent Example:

Kód (php) Kijelölés
import com.muhammadbinyusrat.PNGExport;

var exporter:PNGExport = new PNGExport();
exporter.Snap(SomeMovieClip);

exporter.SendTo("getImage.php",null,ShowProgress); //second argument is null because I don't want to specify a onComplete function in this example.

function ShowProgress(e:ProgressEvent):void{
trace(int((e.bytesLoaded/e.bytesTotal)*100)); //this should trace from 0 to 100 while the image is loading..
}


Custom Variable Example:

Kód (php) Kijelölés
import com.muhammadbinyusrat.PNGExport;

var exporter:PNGExport = new PNGExport();
exporter.Snap(SomeMovieClip);
var ExtraVariables:Array = new Array();
ExtraVariables[0] = {define:"Username",value:"ibnYusrat"};
ExtraVariables[1] = {define:"SessionID",value:"FFWEIE23920800012343JIFWK9V932CC"});

exporter.SendTo("getImage.php",null,null,ExtraVariables); //This will send two extra variables called "Username" and "Password" with the values as specified above.





Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

hunti

Ha egyszer sikerül valahogy lerenderelni a képet, onnan már könnyű kivágni a kívánt részt. Viszont flash kliens oldali dolog, viszont neked olyan megoldás kellene ami szerver oldali, legenerálja a képet és lementi fájlba.

Powered by EzPortal