| php get & function | ||
|---|---|---|
| mtance21. nov 2009 11:00:15Pridružen od: 27. jan 2008 489 objav +178-151 | #1Mene 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? nazadnje urejal mtance 21. nov 2009 11:01:14 všeč(0)ni všeč(0)spam(0) | |
| HeXeR21. nov 2009 11:05:20Pridružen od: 13. dec 2006 3489 objav +90-110 | #2if(isset($_GET["izbrisi"]) && is_numeric($_GET["izbrisi"])) ... pa jaz bi raje uporabil POST za brisanje. všeč(0)ni všeč(0)spam(0) | |
| mtance21. nov 2009 11:09:00Pridružen od: 27. jan 2008 489 objav +178-151 | #3kaj je razlika? sem bl ultra začetnik v tem :) všeč(0)ni všeč(0)spam(0) | |
| human21. nov 2009 12:07:23Pridružen od: 15. jan 2009 686 objav +359-224 | #4Imam 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) | |
| McDave21. nov 2009 12:50:29Pridružen od: 22. avg 2008 131 objav +45-280 | #5 mtance: Č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) | |
| Tomcater21. nov 2009 12:59:21Pridružen od: 29. okt 2009 502 objavi +397-676 | #6Ja, 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) | |
| blackmamba21. nov 2009 13:01:07Pridružen od: 4. mar 2008 307 objav +163-101 | #7Če query sestavljaš preko $_GET spremenljivk, nujno uporabi funkcijo mysql_real_escape_string!! $sql="DELETE * FROM izdelki WHERE ID='".mysql_real_escape_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) | |
| Vini21. nov 2009 13:02:56Pridružen od: 1. sep 2006 6102 objavi +3395-31537 | #8Meni 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) | |
| fatg21. nov 2009 21:17:16Pridružen od: 28. jan 2008 94 objav +72-20 | #9Jp, 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) | |
| mtance21. nov 2009 22:25:14Pridružen od: 27. jan 2008 489 objav +178-151 | #10Ahaa :) 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 nazadnje urejal mtance 21. nov 2009 22:27:13 všeč(0)ni všeč(0)spam(0) | |