Mailinglisten-Archive |
Hallo Steffen,
>
> $Modul = Pruefe_Modul('fibu');
> /* ^ Liefert bei true 'fibu', sonst 0 */
> $Funktion = Pruefe_Funktion('zudd_erfassen', $Modul);
> /* ^ Liefert bei true die Funktion sonst 0 */
>
Ich würde das anders angehen. Punkt 1. ist, dass unter Umständen mit jedem
Funktionsaufruf "Pruefe_Funktion()" ein Datenbankzugriff generiert wird, was
unnötig ist. Bei einer nicht allzu großen Anzahl von Funktionen kannst Du
lieber so vorgehen (Ob die Daten aus der DB kommen oder nicht mußt Du selber
umsetzen, ich gehe davon aus, dass man eine Liste erlaubter Funktionen für
einen Benutzer durchlaufen kann):
<schnipp>
durchlaufe_Liste_der_erlaubten_funktionen {
$all_functions[$momentane_funktionskennung] = true;
}
<schnapp>
In Deinem Beispiel hättest Du ein assoziatives Array mit:
$all_functions["fibu"] = true;
$all_functions["zudd_erfassen"] = true;
Später kannst Du dann über eine ganz einfache Prüfung checken, ob der
Benutzer darf oder nicht:
if($all_functions["fibu"] == true) {
echo "jo, gell?";
} else {
echo "äh, nö.";
}
Zudem hast Du (sofern Du eine DB nutzt) nur einen einzigen Zugriff auf die
Tabelle mit den Rechten, was Zeitvorteile bringt.
Grüße Tim
php::bar PHP Wiki - Listenarchive