php get & function
8 naročnikov
8 naročnikov
Mene pa zanima kako bi dobil ID izdelki.php?izbrisi=2 kot argument funcije function Izbrisi:
if ($_GET["izbrisi"] != NULL)
Zbrisi(???);
function Zbrisi(???)
{
$sql="DELETE * FROM izdelki WHERE ID='???'";
echo "<center><b>Izdelek izbrisan!</b></center>";
}
Se tega lotevam pravilno?
10 odgovorov
if(isset($GET["izbrisi"]) && isnumeric($_GET["izbrisi"])) ...
pa jaz bi raje uporabil POST za brisanje.
Imam podoben problem...
Podatke imam zlistane v bazi, sedaj pa želim da ko kliknem na ikono "uredi" se mi odpre facebox v katerem imam "id" in "vrednost" katero imam izbrani vnos.
Sedaj pa nevem kako bi shranil "id" kliknjenega vnos, da bi ga potem prikazal v facebox-u da ga lahko uredim.
Kaksna ideja?
mtance:
Mene pa zanima kako bi dobil ID izdelki.php?izbrisi=2 kot argument funcije function Izbrisi:
if ($_GET["izbrisi"] != NULL)
Zbrisi(???);function Zbrisi(???)
{
$sql="DELETE * FROM izdelki WHERE ID='???'";
echo "<center><b>Izdelek izbrisan!</b></center>";
}Se tega lotevam pravilno?
Če prav razumem tvoje vprašanje ti iščeš tole?
if ($GET["izbrisi"] != NULL)
Zbrisi($GET["izbrisi"]);
function Zbrisi($id)
{
$sql="DELETE * FROM izdelki WHERE ID='$id'";
echo "<center><b>Izdelek izbrisan!</b></center>";
}
Ja, verjetno nekaj takega, s tem da se moraš še prej povezati na bazo in izvesti ta sql stavek. Spremenljivka $sql ti tega sama ne naredi, saj je to samo "navaden" string.
Če query sestavljaš preko $GET spremenljivk, nujno uporabi funkcijo mysqlrealescapestring!!
$sql="DELETE * FROM izdelki WHERE ID='".mysqlrealescape_string($id)."'";
Drugače lahko kdo napiše npr:
www.domena.com/izdelek.php?izbrisi=1' OR 1=1 --; delete * from users
Vsekakor bodi pozoren na sql injection
Meni pa tole izgleda, kot da na novo delaš aplikacijo LuknjaTM :)
Oglej si predavanje s PHP konference, kjer je Gašper Kozak (fatg na tem forumu) govoril o vseh teh zadevah, o GET vs. POST, o SQL injection, proti kateremu tale tvoja koda ne bo imuna, če boš poslušal enega od zgornjih komentatorjev, itd :)
Predavanje najdeš na videolectures.net, močno priporočam tudi drugim.
Jp, pri tvoji trenutni kodi zadošča parameter id=5 OR 1 = 1 in adijo vsi podatki v tabeli. Escaping tukaj ne pomaga popolnoma nič, ker za tak query ne rabiš narekovajev. :)
Ahaa :) drugače pa imam t.i. nadzorno ploščo zaščiteno s htaccessom(user&password). V frontu nimam nč te šare. bom pa vseeno prečitu, saj me res zanima, kašne fore use obstajajo