Klares definieren von Variablen
Geschrieben von Silvermoon am 28. Dezember 2008 14:46
Warum eine Variable definieren?
Damit eine Variable in einem Skript auch nur das macht, was sie machen soll, ist es wichtig diese klar zu definieren.
Beispiel für eine falsche Variablenverarbeitung anhand einer Loginaufgabe:
if ($pw = "12345") {
$login=true;
}
if ($login) {
echo "Hier steht Text für angemeldete Mitglieder";
}
Bei diesem Codebeispiel ist klar zu erkennen, dass die Variable $login zuvor nicht definiert wurde.
Wenn in der php.ini "register_globals" auf "on" steht, kann ein Benutzer auch mit einem Query in der Browser-Adresszeile Zugang auf den doch so geschützten Bereich bekommen. Er müßte hier nur in der Browseradresszeile "http://domainurl.tld?login=1" eintragen und der Benutzer hätte den Zugriff erlangt.
Ist "register_globals" auf "off" würde das Skript nicht wissen, wo es die Variable $pw hernehmen soll, um diese zu prüfen.
Beispiel für die richtige Definierung der Variablen
$pw = isset($_POST['pw']) ? htmlspecialchars($_POST['pw']) : "";
$login=false;
if ($pw = "12345") {
$login=true;
}
if ($login) {
echo "Hier steht Text für angemeldete Mitglieder";
}
Die Variable "$pw" wird jetzt durch den Befehl $_POST['pw'] ermittelt und mit der htmlspecialchars()-Funktion verarbeitet. Wenn kein $_POST['pw'] übersandt wird, dann ist die Variable leer.
Die Variable "$login" wird vor den if-Anweisungen definiert mit "false" und wird erst zu "true", wenn die ermittelte Varibale "$pw" der if-Anweisung if ($pw=="12345") enspricht.
Mit diesem Beispiel möchten wir Euch zeigen, wie wichtig es ist, einzelne Variable richtig zu definieren, bevor man eine Verarbeitung der Variable vornimmt.
Wie prüfe ich, ob eine Variable eine Zahl ist.