Ich verwende die Klasse einer anderen Person und diese Person hat eine Funktion mit fünf Argumenten definiert.
in Sentry.php:
function checkLogin($user = '',$pass = '',$group = 10,$goodRedirect = '',$badRedirect = '')
Wenn alle fünf Felder ausgefüllt sind, führt dies zu einer Anmeldeprozedur.
Auf der Seite, auf der er erklärt, wie man das benutzt, gibt es ein Snippet, das laut php.net keinen Sinn macht.
in einer Seite, die den Wächter lädt:
require_once('../system/Sentry.php');
$theSentry = new Sentry();
if(!$theSentry->checkLogin(2)){ header("Location: login.php"); die(); }
die sich standardmäßig so verhalten sollte, dass sie prüft, ob das Argument $group <= 10 ist (Standardeinstellung). In diesem Fall sollte es zwei sein. Wenn der überprüfte Benutzer eine Gruppenvariable von <=2 hat, sollte dies der Person ermöglichen, die Seite zu sehen.
Das funktioniert jedoch nicht, und zwar aus einem sehr offensichtlichen Grund: Im php-Handbuch steht:
Beachten Sie, dass bei der Verwendung von Standard Argumente, alle Standardwerte auf der auf der rechten Seite der Nicht-Standard Argumenten stehen sollten; andernfalls werden die Dinge nicht wie erwartet funktionieren.
Der Code sollte also laut phpbuilder.com keine optionalen ( $variable = default_something
) mit einem Funktionsaufruf auszufüllen, und es sollte definitiv nicht als drittes von fünf Argumenten definiert werden.
Wie kann ich die Funktion auf diese Weise nutzen?
checkLogin(2)