YOURLS插件用于过滤特定MySQL列的API调用

时间:2016-05-24 04:19:11

标签: php mysql yourls

我的网站有一项功能,允许用户创建缩短的网址。为了处理URL缩短,我使用YOURLS(一个开源URL缩短器),我在我的另一台服务器上运行,并通过API调用连接这两个站点。

我创建了一个带有自定义YOURLS pluginAPI actions,因此当用户创建一个短网址时,它会将他们的用户ID从我的网站附加到yourls_url表格,如下所示:

enter image description here

当用户访问“我的链接”页面时,我需要进行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但不幸的是我收到的是:

enter image description here

我对PHP / MYSQL不太熟悉,所以我已经坚持了很长一段时间了,如果有人对我出错的地方有任何想法或者可以提供一个例子,我将不胜感激!

1 个答案:

答案 0 :(得分:1)

以下是为我解决的问题:

... = undefined