你如何制作社交网络徽章?

时间:2010-10-18 22:24:01

标签: php mysql html social-networking badge

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

任何线索从哪里开始?

编辑:我不是在谈论你在stackoverflow上找到的那种徽章,我的意思是其他网站让你粘贴在你的博客/网站上。像Digg一样,你可以证明你的网站被挖了7000次等等。

2 个答案:

答案 0 :(得分:5)

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

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

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

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

答案 1 :(得分:2)

你说的是基本上是在调用远程脚本。

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

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

第二 - 您可以为用户提供一个包含html的iframe。这通常是facebook“喜欢”为不使用fbml方法的人做的事情。问题是,许多网站将iframe视为潜在的xss攻击并将其剥离。因此,为了使用iframe,您需要控制域名,如果打算分享您的个人资料,可能会破坏您的请求目的。

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

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

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