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:
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)
 
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)
 
stran 1 od 2 |<<12>|