PHP für Anfänger – Variablen

2005-07-17 23:37

Ich, auf der Suche nach Sicherheitslücken in WordPress!

Wer schreibt so einen Müll? Wenn eine Variable beim Funktionsaufruf nicht übergeben wird, gibt es einen Parse-Error, wenn sie leer ist, kann sollte man dies nicht mit „!“ – also „not isset“ – ermitteln. Denn sie ist ja gesetzt.

function wp_login($username, $password, $already_md5 = false) {
global $wpdb, $error;
if ( !$username )
return false;
if ( !$password ) {
$error = __(‚Error: The password field is empty.‘);
return false;
}
[….]

3 Kommentare to “PHP für Anfänger – Variablen”

  1. Jochen Says:

    Tatsächlich ist ! aber keine Abkürzung von isset, sondern negiert einfach den Ausdruck. Und da ein leerer String als false interpretiert wird (es leben typenlose Sprachen :/ ), ist !$password eben true, wenn $password leer ist.
    empty($password) oder $password === “ wäre trotzdem schöner gewesen.

  2. Jochen Says:

    Das lässt sich übrigens schön aus http://de.php.net/manual/en/language.operators.logical.php und http://de.php.net/manual/en/function.empty.php herauslesen…

  3. HagK Says:

    Jochen hat latürnich recht. Es ist entsetzlich. Wenn jetzt schon korrekt definierte, leere Variablen als FALSE gewertet werden. Wenn man so mit „NULL“ und „0“ bei Datenbanken verfahren würde ….

    Danke Jochen, für diesen Hinweis. Jetzt weiß ich endlich, wie ich schnell mal leere Variablen abfragen kann – Nein, ich werde diese Syntax nicht benutzen ;)

Leave a Reply