PHP实例教程(1):构建基于PHP的微博客服务_PHP技巧_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

PHP实例教程(1):构建基于PHP的微博客服务

作者:黑客防线网安PHP教程基地 来源:黑客防线网安PHP教程基地 浏览次数:0

本篇关键词:博客服务基于构建
黑客防线网安网讯:  WebjxCom提示:在本文中,您学习了如何构建一个简单的基于PHP的微博客服务,该服务类似于Twitter和Facebook状态更新工具。如果一切顺利的话,您就可以得到现在这样的成果,并将它添加到...
  WebjxCom提示:在本文中您学习了如何构建一个简单的基于PHP的微博客服务该服务类似于Twitter和Facebook状态更新工具如果一切顺利的话,您就可以得到现在这样的成果,并将它添加到您的应用程序中,并根据需要加以定制
  
  如果您曾经留意过,就会知道Twitter是Web2.0世界最大的轰动事件之一。简单来说,Twitter(Twitter.com上提供的一个服务)是一个简单的微博客服务,用户可以发最多140个字符的贴子(称作tweet),回答“你现在在做什么?”之类的问题。用户可以追随他们感兴趣的人,也有自己的追随者。通过这种方式,可以将信息发布给追随者或是广泛地转发。
  
  随意浏览一下某个Twitter账户可以发现,用户常常发布关于很多不同话题的tweet,从日常生活(例如“我在吃三明治”)到更不平凡的话题。其中常常嵌入了图像、媒体文件和日志的链接。这些URL常常被TinyURL之类的服务缩短,主要是为了使贴子的总字符数不超过140个字符。
  
  很多人喜欢上了Twitter,使超短格式成了一种艺术形式,甚至将之用于与其他用户交谈(例如将他们的评论定向到@user)。从这个简单的起点开始,涌现了大量支持Twitter的移动应用程序和其他工具。现在甚至还有专门为最有趣、最卓越和最详实的tweet而设置的奖项,另外还有跟踪不同Twitter应用程序的状态的在线应用程序。
  
  很多其他站点和服务,例如LinkedIn和Facebook现在允许用户用仿照Twitter的方式更新他们的当前状态。换句话说,在Facebook更新状态需要使用短消息,当然,状态通常是回答“你现在在干什么”之类的问题。
  
  为您自己的站点添加微博客或状态更新工具不需要做很多工作,但是却可以为用户带来乐趣和简单的交流方式。本文的目标是展示如何实现这个目的。但是,首先需要对您作一些假设。
  
  首先,假设您对PHP和MySQL有所了解。同时假设您可以访问某个运行PHP和MySQL的本地ApacheWeb服务器。对于本文,我在使用Macintosh、Apache、MySQL和PHP(MAMP)的MacBookProducts上进行开发,这个免费程序将整个开发环境打包到一个包中。但是,您应该能够毫无困难地在Microsoft®Windows®或Linux®上进行开发。最后,假设您已经有一个可以立即运行的应用程序,该应用程序现在有一些用户,您打算以某种方式将微博客或tweeting添加到该应用程序中。为此,我简化应用程序中侧重用户的一些方面(例如登录、管理个人文件等),而侧重于贴子。
  
  设计应用程序的后端
  
  简言之,Twitter服务以两个名词为中心:用户和消息。如果您已经构建了一个应用程序,并且希望将类似Twitter的服务添加到应用程序中,那么很可能已经有了用户管理功能。如果还没有,那么需要采用某种方式使用一个数据库表(一个主键,通常是一个整数)、一个用户名(也是惟一的)、一个电子邮件地址和密码等标识每个用户。
  
  tweet(即贴子)存储在一个posts表中,每个贴子有一个主键(某种连续整数)、一个指向发出该贴的用户的外键关系、贴子本身(限制为一定数量的字符)和日期/时间戳。
  
  最容易令人感到迷惑的是显示用户追随关系的数据库表。这里需要某种方式记录用户ID和追随者ID,使应用程序能够快速建立追随者列表,并轻松地将信息转发给那些已注册为要追随某用户的其他用户。
  
  理解这些内容后,现在就可以着手建立这3个数据库表。使用清单1中的SQL代码创建第一个表,即users表(如果已经有一个users表,则可以跳过这一步)。
  
  清单1.users表
  
      CREATETABLE`users`(`id`INTNOTNULLAUTO_INCREMENTPRIMARYKEY,`username`VARCHAR(255)NOTNULL,`email`VARCHAR(255)NOTNULL,`password`VARCHAR(8)NOTNULL,`status`ENUM('active','inactive')NOTNULL)ENGINE=MYISAM;
  
  下面是第二个表,即posts表。
  
  清单2.posts表
  
      CREATETABLE`posts`(`id`INTNOTNULLAUTO_INCREMENTPRIMARYKEY,`user_id`INTNOTNULL,`body`VARCHAR(140)NOTNULL,`stamp`DATETIMENOTNULL)ENGINE=MYISAM;
  
  清单3显示了最后一个表,即following表。注意这个表有两个主键。
  
  清单3.following表
  
      CREATETABLE`following`(`user_id`INTNOTNULL,`follower_id`INTNOTNULL,PRIMARYKEY(`user_id`,`follower_id`))ENGINE=MYISAM;
  
  然后,先创建一个名为header.php的文件,将所有用于MySQL的连接字符串放到该文件中。如果已经有一个这样的文件,可以跳过这一步。请务必在各处都包括这个文件,因为将来需要用到它。清单4展示了这个文件的内容。
  
  清单4.样例header.php文件
  
      $SERVER='localhost';$USER='username';$PASS='password';$DATABASE='microblogger';if(!($mylink=mysql_connect($SERVER,$USER,$PASS))){ echo"<h3>Sorry,couldnotconnecttodatabase.</h3><br/> Pleasecontactyoursystem'sadminformorehelp "; exit;}mysql_select_db($DATABASE);
  
  请记住,还可以随意将任何其他类型的安全检查添加到这个header.php文件中。例如,可以检查一个会话变量中是否设置了一个用户ID(表明该用户已经登录)。如果用户没有登录,那么可以将用户重定向到登录页面。本文不会深入讨论这一点,不过需要时可以很容易地添加安全检查。
  
  
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-17576-1.html
网站维护教程更新时间:2012-09-21 05:21:31  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer