checkprivileges($userid);
     saveuser($_GET["edituserid"], $_GET["username"], $_GET["email"], $_GET["phone"], $_GET["privileges"], $_GET["limit"]);
     break;
 case "addcredit":
     logrequest($userid, $action);
     checksession();
     checkprivileges($userid);
     addcredit($_GET["edituserid"], $_GET["creditmultiplier"]);
     break;
 case "trips":
     logrequest($userid, $action);
     checksession();
     checkprivileges($userid);
     if ($_GET["bikeno"]) {
         $bikenum = trim($_GET["bikeno"]);
         checkbikeno($bikenum);
         trips($userid, $bikenum);
     } else {
         trips($userid);
     }
     break;
 case "userbikes":
     userbikes($userid);
     break;
 case "couponlist":
     logrequest($userid, $action);
     checksession();
     getcouponlist();
     break;
 case "generatecoupons":
     logrequest($userid, $action);
}
if (isset($_COOKIE["logsession"])) {
    $session = $_COOKIE["logsession"];
}
$request = substr($_SERVER["REQUEST_URI"], strpos($_SERVER["REQUEST_URI"], ".php") + 5);
$request = explode("/", $request);
$action = $request[0];
if (isset($request[1])) {
    $parameter = $request[1];
} else {
    $action = "";
}
// mangled QR code, clear action
switch ($action) {
    case "rent":
        logrequest($userid, $action);
        checksession();
        $bikeno = $parameter;
        checkbikeno($bikeno);
        rent($userid, $bikeno);
        break;
    case "return":
        logrequest($userid, $action);
        checksession();
        $stand = $parameter;
        checkstandname($stand);
        returnbike($userid, $stand);
        break;
    default:
        unrecognizedqrcode($userid);
}