Je to luknja?
 
blackmamba12. jan 2012 21:54:14Pridružen od:
4. mar 2008
307 objav
+163-101
#1Živjo mojstri!
Napisal sem primer, za katerega me zanima ali je luknjast oz. ali lahko kak zlobnež pokliče kakšno neželjeno funkcijo. Jaz mislim da je ok.

Hvala za vaša mnenja :)

Primeri klicev:
http://localhost/test.php
http://localhost/test.php?action=test
http://localhost/test.php?action=blaaaa
<?php

class Mama
{
protected $action;

protected function indexAction(){
return 'index akcija';
}

public function handle()
{
if(empty($this->action))
{
return $this->indexAction();
}
if(preg_match('/^[a-z_0-9]+$/i', $this->action))
{
return $this->{"{$this->action}Action"}();
}
}

public function __call($name, $args)
{
return 'Akcija <b>'.htmlspecialchars($name).'</b> ne obstaja.';
}
}

class Test extends Mama
{
public function __construct()
{
if(isset($_GET['action']))
{
$this->action = $_GET['action'];
}
}

protected function testAction(){
return 'test';
}
}

$test = new Test();
print($test->handle());

?>
všeč(0)ni všeč(0)spam(0)
 
krho14. jan 2012 08:46:07Pridružen od:
7. jul 2011
58 objav
+26-41
#2Po hitrem pregledu, razen neenakomernega code styla :P, jaz ne vidim problemov.
Offtopic: A Symfony2 components stuff je bil preveč? Ker avtor sedaj piše bloge s navodili kako ji uporabiti..
všeč(0)ni všeč(0)spam(0)
www.pagein.si | www.nadzornaplošča.si - Kvalitetno, zanesljivo in cenovno ugodno gostovanje elektronskih poštnih predalov.
 
SlimDeluxe14. jan 2012 09:18:08Pridružen od:
29. apr 2010
630 objav
+489-772
#3Kje pa vidiš, da uporablja oz. želi uporabljati Symfony2 ?

blackmamba: Jaz osebno, bi raje uporabil method_exists funkcijo.
všeč(0)ni všeč(0)spam(0)
 
blackmamba14. jan 2012 10:26:37Pridružen od:
4. mar 2008
307 objav
+163-101
#4@krho: Hehe, s code stylom sem se res 10 min zafrkaval, da sem vse text indente s presledki naredil itd, ekstra sem se še potrudil z { in \n{ ,ampak tebi nič ne uide :)

Nazadnje, ko si mi predlagaly Symfony2 si mi dal ogromno zanimivega branja in danes tudi, thx! Nekaj komponent sem tudi uporabil.
Routing komponente ne morem uporabiti, ker moj sistem generira url-je na drugačen način in do klica kontrolerjev je druga pot(podobna, ampak drugače :)).
Zgornji primer sem si izmislil samo za IM, da sem lahko približno razumljivo vprašal kaj me zanima.

@Slim: Pomojem je posumil na Symfony2 zaradi indexAction() :)
Se strinjam, __call() ni primarno namenjen za ugotavljanje ali funkcija obstaja. Tukaj pokličem default funkcije, kar sem v primeru zbrisal.
všeč(0)ni všeč(0)spam(0)
 
krho15. jan 2012 16:41:43Pridružen od:
7. jul 2011
58 objav
+26-41
#5@SlimDeluxe: šlo je za komponente iz sf2 in ne za celoten framework. Zadnjič sem mu dal predlog za to.

@blackmamba: naredi razred, kateri implementira RouterInterface :), pa bi moralo iti tudi s Routing komponento.
všeč(0)ni všeč(0)spam(0)
www.pagein.si | www.nadzornaplošča.si - Kvalitetno, zanesljivo in cenovno ugodno gostovanje elektronskih poštnih predalov.
 
stran 1 od 1 |<<1>>|