cvs: php-master-web /fetch user.php
| From: | Hannes Magnusson | Date: | Fri, 01 May 2009 20:28:07 +0000 |
| Subject: | cvs: php-master-web /fetch user.php | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-4599@lists.php.net to get a copy of this message | ||
bjori Fri May 1 20:28:07 2009 UTC
Added files:
/php-master-web/fetch user.php
Log:
Add an API to retrieve details about individual users
http://cvs.php.net/viewvc.cgi/php-master-web/fetch/user.php?view=markup&rev=1.1
Index: php-master-web/fetch/user.php
+++ php-master-web/fetch/user.php
<?php // vim: et ts=4 sw=4
function error($text, $status) {
switch((int)$status) {
default:
case 500:
header("HTTP/1.0 500 Internal server error");
break;
case 404:
header("HTTP/1.0 404 Not Found");
break;
case 401:
header("HTTP/1.0 401 Unauthorized");
break;
}
echo json_encode(array("error" => $text));
exit;
}
(!isset($token) || md5($token) != "19a3ec370affe2d899755f005e5cd90e") &&
error("token not correct.", 401);
$USERNAME = filter_input(INPUT_GET, "username", FILTER_SANITIZE_STRING,
FILTER_FLAG_STRIP_HIGH);
$pdo = new PDO("mysql:host=localhost;dbname=phpmasterdb", "nobody",
"");
$stmt = $pdo->prepare("SELECT userid, name, email, username, spamprotect, use_sa, greylist,
enable FROM users WHERE username = ? AND cvsaccess LIMIT 1");
if (!$stmt->execute(array($USERNAME))) {
error("This error should never happen", 500);
exit;
}
$results = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$results) {
echo error(array("error" => "No such user"), 404);
}
$stmt = $pdo->prepare("SELECT note, entered FROM users_note WHERE userid = ?");
if (!$stmt->execute(array($results["userid"]))) {
error("This error should never happen", 500);
}
unset($results["userid"]); // Our internal ID has no meaning for anyone
$results["notes"] = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($results);