lordollchen
Grünschnabel
Hallo,
ich bin (so wie wohl jeder, der sich zu lange mit php beschäftigt) dabei, mein eigenes Content Management zu schreiben.
Nun hab ich ne Frage an die Sicherheitsfreaks.
Is ja so, dass man sowas wie Funktionsübergabe über $_GET immer machen muss.
Dann sieht mans überall, dass jede Funktionalität mühsam einzeln ausgewertet werden muss. Das sieht dann etwa etwa so aus:
Wenn das sehr viele Funktionalitäten werden sollen und das Ganze modular sein soll wird das unübersichtlich.
Aber eigentlich könnte man sich doch nen Haufen Code sparen, indem man mit den übergebenen Parametern dynamisch ganz einfach gleich die betreffende Klasse anspricht:
Was meint ihr dazu? Kann man da irgendwelchen Unfug damit machen? Wohl auch nicht mehr als mit der switch-Variante oder?
Oder gibts da inzwischen ganz was Neues oder hat einer ne andere Idee?
Also ich wollt halt was, was wirklich sicher und schnell is, dass man ein professionelles System draus machen kann.
Oliver
ich bin (so wie wohl jeder, der sich zu lange mit php beschäftigt) dabei, mein eigenes Content Management zu schreiben.
Nun hab ich ne Frage an die Sicherheitsfreaks.
Is ja so, dass man sowas wie Funktionsübergabe über $_GET immer machen muss.
Dann sieht mans überall, dass jede Funktionalität mühsam einzeln ausgewertet werden muss. Das sieht dann etwa etwa so aus:
PHP:
//aufruf: index.php?func=func
switch ($_GET['func']){
case funktion1:$klasse1->funktion1();
break;
case funktion2:$klasse1->funktion2();
break;
case funktion3:$klasse2->funktion1();
break;
case funktion4:$klasse2->funktion2();
break;
... usw
}
Wenn das sehr viele Funktionalitäten werden sollen und das Ganze modular sein soll wird das unübersichtlich.
Aber eigentlich könnte man sich doch nen Haufen Code sparen, indem man mit den übergebenen Parametern dynamisch ganz einfach gleich die betreffende Klasse anspricht:
PHP:
//aufruf: index.php?func=klasse_func
if (isset($_GET['func'])){
$temp=explode("_",$_GET['func']);
if (is_callable(array($klassenvariable[$temp[0]],$temp[1])))
$klassenvariable[$temp[0]]->$temp[1]();
}
Was meint ihr dazu? Kann man da irgendwelchen Unfug damit machen? Wohl auch nicht mehr als mit der switch-Variante oder?
Oder gibts da inzwischen ganz was Neues oder hat einer ne andere Idee?
Also ich wollt halt was, was wirklich sicher und schnell is, dass man ein professionelles System draus machen kann.
Oliver