$this->_execute_query ($query);
}
- public function setpwd ($user_name, $pwd) {
+ public function user_exists ($user_name) {
$usrname_escaped = mysql_real_escape_string ($user_name);
$query = sprintf ("SELECT COUNT(*) FROM %susers WHERE name LIKE '%s';",
$this->dbprefix, $usrname_escaped);
$res = mysql_fetch_array ($this->_execute_query ($query), MYSQL_NUM);
- if ($res [0] == 1) {
+ return ($res [0] == 1);
+ }
+
+ public function setpwd ($user_name, $pwd) {
+ if (strlen ($pwd) == 0) {
+ throw new Exception (anydbConnection::err_query);
+ }
+ $usrname_escaped = mysql_real_escape_string ($user_name);
+ if ($this->user_exists ($user_name)) {
$query = sprintf ("UPDATE %susers SET pwd='%s' WHERE name like '%s';",
- $this->dbprefix, md5 ($pwd), $usrname_escaped);
+ $this->dbprefix, md5 ($pwd), $usrname_escaped);
} else {
$query = sprintf ("INSERT INTO %susers VALUES ('%s', '%s');",
$this->dbprefix, $usrname_escaped, md5 ($pwd));
$query = sprintf ("INSERT INTO %sitems
(imgpath, title, description, location, date, user)
VALUES ('%s', '%s', '%s',
- GeomFromText('POINT(%s %s)'), NOW(), 'admin')",
+ GeomFromText('POINT(%s %s)'), NOW(), '%s')",
$this->dbprefix,
mysql_real_escape_string ($feature->imgpath),
mysql_real_escape_string ($feature->title),
mysql_real_escape_string ($feature->description),
$feature->lon,
- $feature->lat
+ $feature->lat,
+ mysql_real_escape_string ($feature->user)
);
$this->_execute_query ($query);
$id = mysql_insert_id ();
return new feature ($id, $feature->lon, $feature->lat,
$feature->imgpath, $feature->title,
- $feature->description, $feature->date);
+ $feature->description, $feature->date,
+ $feature->user);
}
}
public function getfeature ($id) {
$query = sprintf ("SELECT id, imgpath, title, description, AsText(location)
- AS location, UNIX_TIMESTAMP(date) AS date FROM %sitems
- WHERE id = '%s';",
+ AS location, UNIX_TIMESTAMP(date) AS date, user
+ FROM %sitems WHERE id = '%s';",
$this->dbprefix, mysql_real_escape_string ($id));
$row = mysql_fetch_assoc ($this->_execute_query ($query));
if ($row === false) {
return $this->_feature_frow_row ($row);
}
- public function listfeatures () {
+ public function listfeatures ($user) {
+ if ($user && ($user != "admin")) {
+ $from_user_query = sprintf (" WHERE user = '%s' ",
+ mysql_real_escape_string ($user));
+ } else {
+ $from_user_query = "";
+ }
+
$query = sprintf ("SELECT id, imgpath, title, description, AsText(location)
- AS location, UNIX_TIMESTAMP(date) AS date FROM %sitems;",
- $this->dbprefix);
+ AS location, UNIX_TIMESTAMP(date) AS date, user
+ FROM %sitems %s;",
+ $this->dbprefix, $from_user_query);
$features = array ();
$res = $this->_execute_query ($query);
public function mostrecentfeatures ($num_features) {
$query = sprintf ("SELECT id, imgpath, title, description,
AsText(location) AS location, UNIX_TIMESTAMP(date)
- AS date FROM %sitems ORDER BY date DESC",
+ AS date, user FROM %sitems ORDER BY date DESC",
$this->dbprefix);
if ($num_features) {
$query .= sprintf (" LIMIT %d", $num_features);
return ($res [0] >= 1) ? true : false;
}
- public function mbr () {
- $maxlon = -180;
- $minlon = 180;
- $maxlat = -88;
- $minlat = 88;
-
- if (!$this->link) {
- return array ($minlon, $minlat, $maxlon, $maxlat);
- }
- try {
- $features = $this->listfeatures ();
- } catch (Exception $e) {
- return array ($minlon, $minlat, $maxlon, $maxlat);
- }
-
- if (count ($features) == 0) {
- return array ($minlon, $minlat, $maxlon, $maxlat);
- } else if (count ($features) == 1) {
- // in case there's only one feature, we show an area of at least
- // 4 x 4 degrees
- $feature = $features [0];
-
- $minlon = max ($feature->lon - 2, -180);
- $maxlon = min ($feature->lon + 2, 180);
- $minlat = max ($feature->lat - 2, -90);
- $maxlat = min ($feature->lat + 2, 90);
-
- return array ($minlon, $minlat, $maxlon, $maxlat);
- } else {
- foreach ($features as $feature) {
- $minlon = min ($feature->lon, $minlon);
- $minlat = min ($feature->lat, $minlat);
- $maxlon = max ($feature->lon, $maxlon);
- $maxlat = max ($feature->lat, $maxlat);
- }
-
- return array ($minlon, $minlat, $maxlon, $maxlat);
- }
- }
-
public function getdbname () {
return "Mysql";
}
try {
$feature = new feature ($row ["id"], $lon, $lat, $row ["imgpath"],
$row ["title"], $row ["description"],
- $row ["date"]);
+ $row ["date"], $row ["user"]);
} catch (Exception $e) {
return null;
}