2

你到处都能看到它们。就像出现在博客和网站上的 twitter 和 facebook 按钮,这些按钮显示了许多“tweets”或“likes”。我需要做的就是根据两个变量(用户名和 ID)从我的 MySQL 数据库中显示一个数字。以某种方式加密变量可能很有用,这样用户就不能只更改徽章的代码并显示另一个用户的号码。但更重要的是,我只需要知道如何使用您在社交网络徽章中找到的 HTML 代码,并让它与我服务器上的 PHP 脚本对话,该脚本将根据徽章中保存的变量从数据库中计算数字。

任何线索从哪里开始?

编辑:我不是在谈论您在 stackoverflow 上找到的那种徽章,我的意思是其他网站让您粘贴到您的博客/网站上的那种。像 Digg 可以让您显示您的网站已被挖掘 7000 次等。

4

2 回答 2

5

您可能希望查找 PHP 和相关教程的 GD 库。基本上,所有这些徽章都包含作为模板的静态图像,顶部插入了一些动态文本,通常由用户名和数字(喜欢、推文等)组成。

对于 HTML 代码,您可以执行以下操作:

<img src="http://www.yourserver.com/yourscript.php?username=miki&id=1337" />

这将向您的脚本发送一个 HTTP GET 请求,使其执行。然后,您的脚本可以与数据库通信,获取用户信息,使用 GD 将该文本插入到模板中,然后以正确的 mime 类型和内容将其返回给浏览器。

于 2010-10-18T23:25:08.633 回答
2

您实质上是在谈论调用远程脚本。

我假设您的意思是这样的-您正在查看您的个人资料。例如,您有一个小部件承诺显示您拥有的总点数。您提供了一个“代码”按钮,例如 youtube embed 或 facebook “like” 用户单击此按钮,获取一段代码,并希望能够将其粘贴到互联网上的任何适用位置,代码将生成一个图标或其他内容大概是用户名和他们的积分。

首先,您可以通过多种方式做到这一点。在我看来,最具成本效益的是在更新时在您的服务器上生成用户按钮 - 比如说您的积分意味着“收到的文章的赞许数”,因此它将是一个整数值。每次您竖起大拇指时,您都会重新缓存按钮并将其写入平面文本文件。如果你很好,你会把它写成图像并将其展平为 jpg 或 gif。如果您不知道该怎么做,您可以将其写入 html 并将文件保存为特定于用户的“slug”,例如 md5(username).'.html' - 这样每次调用服务器时,您都不需要不需要通过冗余查询和帐户查找来增加带宽。您只提供优化的图像或 html 文件。

其次 - 您可以为用户提供一个包含 html 的 iframe。对于不使用 fbml 方法的人,这通常是 facebook“喜欢”的方式。问题是,许多网站将 iframe 视为潜在的 xss 攻击,并将其剔除。因此,为了使用 iframe,您需要控制域,如果意图共享您的个人资料,这可能会破坏您请求的目的。

第三,您可以在您的服务器上调用一个 js 文件,该文件对您的数据库进行 ajax 调用并提供结果。这也很可能被视为 xss 攻击,您甚至不应该多加考虑。

我提到了 iframe 和 js 方法,以防您希望为运行自己网站的其他人提供选项。网站所有者使用“喜欢”的方式来显示他们的域被“喜欢”了多少次等等。这些人控制域,因此 iframe 和 js 方法是合乎逻辑的。

所以 - 这个答案对你来说可能没有太多的原始代码,但它应该可以帮助你开始。我会使用图像方法,因为它更安全。您将在 src 属性中为用户提供一个带有 slug 的图像标签。他们可以将其粘贴到任何地方,并且无法在图像中重新写入数字。大多数可以发布到其他人网站的论坛和地方都允许使用图片。只需在 google 上搜索使用 php 绘制图像,以及使用 imagemagick 库来合并文本和图像。

于 2010-10-18T23:32:48.530 回答