Fix session autostart code - session_name() return value does not indicate session...
[squirrelmail.git] / functions / abook_database.php
index 8294cf3eaa141c18fe1f0adeff578be6c586c5d2..1e69af3a0c3ddcd2bd47289826b6c420073c9a7b 100644 (file)
@@ -295,6 +295,10 @@ class abook_database extends addressbook_backend {
      *                       of the SM_ABOOK_FIELD_* constants
      *                       defined in include/constants.php
      *                       (OPTIONAL; defaults to nickname field)
+     *                       NOTE: uniqueness is only guaranteed
+     *                       when the nickname field is used here;
+     *                       otherwise, the first matching address
+     *                       is returned.
      *
      * @return array Array with lookup results when the value
      *               was found, an empty array if the value was
@@ -312,8 +316,13 @@ class abook_database extends addressbook_backend {
             return false;
         }
 
+        $db_field = $this->get_field_name($field);
+        if ($db_field == 'ERROR') {
+            return $this->set_error(sprintf(_("Unknown field name: %s"), $field));
+        }
+
         $query = sprintf("SELECT * FROM %s WHERE owner = '%s' AND LOWER(%s) = '%s'",
-                         $this->table, $this->owner, $this->get_field_name($field)
+                         $this->table, $this->owner, $db_field
                          $this->dbh->quoteString($value));
 
         $res = $this->dbh->query($query);