Autor Zpráva
karel
Profil *
když mám výpis nějakých položek, např.

1, první téma --> detail
2, druhé téma --> detail
3, třetí téma --> detail

... a kliknutím na "--> detail " bych chtěl přejít na další stránku, na kterou bych
z databáze vytáhl nějaké informace o daném tématu, jenže to potřebuji nějakým způsobem
naplnit proměnnou $_SESSION['id'] ... asi nějakým formulářovým prvkem?

díky moc za radu!

Karel
nightfish
Profil
k čemu session?
prostě na odkaz na detail bude <a href="detail.php?id=1">detail</a>
a v cílovém skriptu zpracuješ a zobrazíš podle $_GET['id']

...a nebo jsem to nepochopil
karel
Profil *
Ano, pochopil ... ale metoda get je napadnutelná přes url
(to, že teď nevím, jak by se moje hvězdná aplikace dala
zneužít neznamená, že to tak není :))
... jde to nějak udělat i pro session?
nightfish
Profil
get je napadnutelná přes url
pokud budeš kontrolovat všechny proměnné předané přes GET, tak není problém...

přes session tohle nepůjde... (tedy teď mě nenapadá jak by to šlo)
Anonymní
Profil *
tak nepoužívej get ale post, nicméně je to blbost, neboť na ty jednotlivý podstránky ti pak nepůjde odkazovat.
karel
Profil *
OK, já jsem taky nic nevymyslel, jenom jsem se chtěl ubezpečit, že nejsem blbej.
díky, K.
jonge
Profil
karel
Určitě pomocí <a href="detail.php?id=1">detail</a>. Ve skriptu detail.php pak provedeš něco takového:

if (preg_match("/^[0-9]+$/", $_GET['id'])) {
// výběr z databáze
}

else echo "Špatný formát!!!";
Pavel Strejček
Profil
Anonymní
tak nepoužívej get ale post

to není řešení, post se dá podvrhnout stejně snadno, stačí si udělat formulář
error414-
Profil *
karel
tohle se dela pres urcite pres ID <a href="detail.php?id=1">detail</a>

To ze se da get podvrhnou je pravda ale podvrnout se da cokoliv co prijde od uzivatele. post get cookie.

Vsechny tyhle udaje by se meli pri vstupu osetrit.

jonge
neni to divny????

tohle bude lespi, pripadne se muze kontrolovat z nejakeho seznamu pole
$_GET['id'] = (int)$_GET['id'];


if(in_array($_GET['id']), $povolene_prvky)){}
Anonymní
Profil *
error414-: není já to píšu ještě trošku jinak:

if((isset($_GET['id'])) && (ctype_digit($_GET['id']) === true) && (preg_match("#^([1-9])([0-9]{0,})$#", $_GET['id'])))

takhle v proměnné $_GET['id'] může být skutečně jen celé kladné číslo, cokoliv jiného je nevyhovující podmínkám a neprojde ;-)
krteczek
Profil
to jsem byl já
Toto téma je uzamčeno. Odpověď nelze zaslat.