[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Api сайта
maax
Нагуглил пример своего api для сайта с таким кодом

файл 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":"Максим"}

в чем может быть проблема?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.