файл api.php:
<?php
require_once 'classes/Auth.class.php';
$mysite = new Auth\User;
function Error($p1, $p2) {
exit('{"error":'.$p1.', "text":"'.$p2.'"}');
}
if ($_SERVER['REQUEST_URI'] == '/') {
$Page = 'index';
$Module = 'index';
} else {
$URL_Path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$URL_Parts = explode('/', trim($URL_Path, ' /'));
$Page = array_shift($URL_Parts);
$Module = array_shift($URL_Parts);
if (!empty($Module)) {
$Param = array();
for ($i = 0; $i < count($URL_Parts); $i++) {
$Param[$URL_Parts[$i]] = $URL_Parts[++$i];
}
}
}
if ($Module == 'users') {
if (!$Param['username']) Error(1, 'Не указан логин пользователя');
if (!$Param['param']) Error(2, 'Не указан параметр метода');
$Array = array('name', 'regdate', 'id');
$Exp = explode('.', $Param['param']);
foreach($Exp as $key) if ($Param['param'] != 'all' and !in_array($key, $Array)) Error(3, 'Параметр указан неверно');
if ($Param['param'] == 'all') $Select = $Array;
else $Select = $Exp;
foreach ($Select as $key) $SQL .= "`$key`,";
$SQL = substr($SQL, 0, -1);
$Row = $mysite->getApiInfo($SQL, $Param[username]);
if(!$Row) Error(4, 'Пользователь указан не верно');
echo json_encode($Row , JSON_UNESCAPED_UNICODE);
}
else Error(0, 'Метод не указан');
?>
и запрос в БД
public function getApiInfo($SQL, $par)
{
$sql = "SELECT " .$SQL. " FROM users WHERE username = ? ";
$result = $this->db->prepare($sql);
$result->bindParam(1, $par);
$result->execute();
$myrow = $result->fetch();
return $myrow;
}
вроде работает но в ответ отправляет еще лишнее что совсем не нужно вроде как
например если вбить в url что бы узнать id:
https://site.ru/api.php/users/username/maax/param/id
то по идее должно вернуть просто {"id":"1"} а в ответ {"id":"1","0":"1"}
или так же вбиваю name
https://site.ru/api.php/users/username/maax/param/name
должно вернуть {"name":"Максим"} и опять получаю {"name":"Максим","0":"Максим"}
в чем может быть проблема?