<HTML>Jednoduché. Proměnná $_SESSSION neobsahuje položku dolary. Když už si hraješ na hackerskou onlajnovku, nauč se sám číst chybové hlášky ;)
(A proč ji neobsahuje? Možná protože dotyčný návštěvník/hráč ještě nemá session vytvořenou a naplněnou hodnotami. Podívej se na nějaký návod, jak se pracuje se sessions. A možná jen nemáš ten případ ošetřen.)</HTML>
cz.php.net/isset
$dolary = isset($_SESSION['dolary']) ? $_SESSION['dolary'] : '';
Je nastavene session['dolary'] ? ano, pouzij session['dolary'] : ne, pouzij prazdny retezec ''.
Pokud nema nastavene dolary, tak ve tvem pripade jnejspis neni ani prihlaseny, takze bys mel zabezpecit, aby k vykonani takoveho sql dotazu vubec nedoslo.
"hackermanie/hra" :)
Ten php kod je pro hackery, jak delany :)
"SELECT `id` FROM `uzivatele` WHERE `dolary`='{$_SESSION['dolary']}' AND `z.cihly`='{$_SESSION['z.cihly']}'"
Co kdyz nastavim
$_SESSION['dolary'] = "' OR 1=1 --";
$_SESSION['z.cihly'] = '';
Dosadim:
"SELECT `id` FROM `uzivatele` WHERE `dolary`='' OR 1=1 --' AND `z.cihly`=''"
-- je komentar a vse za nim je ignorovano, takze sql dotaz vypada...
"SELECT `id` FROM `uzivatele` WHERE `dolary`='' OR 1=1"
A to vrati vsechny id uzivatelu.
A ted bych tam mohl dat klidne vlozeny dotaz "SELECT * FROM uzivatele" a ziskam kompletni tabulku uzivatelu, jmena, hesla, adresy a pacham trestny cin ala ti hackeri na Sony. Ani se nemuseli moc snazit, si myslim :)