php get & function
 
mtance 21. nov 2009 10:00:15 Pridružen od:
27. jan 2008
508 objav
198 16 1
#1

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?


všeč(0) ni všeč(0) spam(0)
 
HeXeR 21. nov 2009 10:05:20 Pridružen od:
13. dec 2006
3268 objav
122 22 5
#2

if(isset($GET["izbrisi"]) && isnumeric($_GET["izbrisi"])) ...



pa jaz bi raje uporabil POST za brisanje.


všeč(0) ni všeč(0) spam(0)
First rule of business, protect your investment.
 
mtance 21. nov 2009 10:09:00 Pridružen od:
27. jan 2008
508 objav
198 16 1
#3

kaj je razlika? sem bl ultra začetnik v tem :)


všeč(0) ni všeč(0) spam(0)
 
reklamist 21. nov 2009 11:07:23 Pridružen od:
15. jan 2009
944 objav
873 106 8
#4

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?


všeč(0) ni všeč(0) spam(0)
In clickbait we trust.
 
McDave 21. nov 2009 11:50:29 Pridružen od:
21. avg 2008
135 objav
47 29 0
#5

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>";

}


všeč(0) ni všeč(0) spam(0)
 
Tomcater 21. nov 2009 11:59:21 Pridružen od:
29. okt 2009
595 objav
509 82 8
#6

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.


všeč(0) ni všeč(0) spam(0)
 
blackmamba 21. nov 2009 12:01:07 Pridružen od:
4. mar 2008
559 objav
392 25 11
#7

Č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


všeč(0) ni všeč(0) spam(0)
 
Vini 21. nov 2009 12:02:56 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#8

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.


všeč(5) ni všeč(0) spam(0)
 
fatg 21. nov 2009 20:17:16 Pridružen od:
28. jan 2008
94 objav
73 2 0
#9

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. :)


všeč(1) ni všeč(0) spam(0)
 
mtance 21. nov 2009 21:25:14 Pridružen od:
27. jan 2008
508 objav
198 16 1
#10

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


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se