У меня есть веб-сайт, который позволяет пользователям создавать сокращенные URL-адреса. Для обработки сокращения URL я использую YOURLS (сокращение URL с открытым исходным кодом), который я запускаю на другом моем сервере и соединяю два сайта через вызовы API.
Я создал YOURLS плагин с некоторыми обычаями Действия API поэтому, когда пользователь создает короткий URL-адрес, он присоединяет свой идентификатор пользователя с моего веб-сайта к таблице yourls_url, как показано ниже:
Когда пользователь заходит на свою страницу «Мои ссылки», мне нужно вызвать API, чтобы вернуть все короткие URL, созданные этим пользователем. Для этого нужно просто создать фильтр для «api_result_stats».
Это созданный мной фильтр, который должен возвращать только те URL-адреса, которые были созданы указанным пользователем:
yourls_add_filter( 'api_result_stats', 'separate_users_api_stats' );
function separate_users_api_stats() {
global $ydb;
$user = ( isset( $_REQUEST['user'] ) ? $_REQUEST['user'] : '' );
$table = YOURLS_DB_TABLE_URL;
$result = $ydb->query("SELECT * FROM `$table` WHERE `user` = '" . $user . "'");
return $result > 0;
}
Чтобы проверить это, я могу попробовать http://example.com/yourls-api.php?action=stats&user=test123&limit=10&filter=last&signature=xxxxxxxxxx
но, к сожалению, все, что я получаю, это:
Я не слишком знаком с PHP / MYSQL, поэтому я застрял в этом довольно долгое время, если у кого-нибудь есть какие-либо идеи относительно того, что я делаю не так, или может привести пример, это будет с благодарностью!
Вот что решило это для меня:
yourls_add_filter( 'api_result_stats', 'separate_users_api_stats' );
function separate_users_api_stats() {
global $ydb;
$user = ( isset( $_REQUEST['user'] ) ? $_REQUEST['user'] : '' );
$table = YOURLS_DB_TABLE_URL;
$query = "SELECT * FROM `$table` WHERE `user` = '" . $user . "'";
$result = $ydb -> get_results($query);
return $result;
}
Других решений пока нет …