session_start(); include_once("header.php"); include_once("functions.php");
创建输入表单
设置好后端表之后,就可以考虑处理数据插入和更新的 PHP。现在需要的是一些简单的函数,这些函数将:
- 允许用户登录和添加贴子。
- 将那些贴子转发给追随那个用户的人。
- 允许用户追随其他用户。
我通常在模型-视图-控制器(Model-View-Controller,MVC)应用程序框架(例如 CodeIgniter)的上下文中工作,因为它提供了一套工具用于创建这些类型的应用程序。例如,我一般先创建两个模型(一个用于用户,另一个用于贴子),这两个模型使我可以与 users、posts 和 following 表交互,然后从这两个模型开始继续前进。
由于您可能已经在使用不同的框架,所以我决定在此不使用上述方法。相反,我选择一种更简单的、独立于框架的方法。对于本文,我们走走捷径,直接将记录添加到 users 表中,以创建一系列测试用户,供应用程序使用。我创建 3 个用户,并将他们的用户名设为 <font face="NSimsun">jane</font> 、 <font face="NSimsun">tommy</font> 和 <font face="NSimsun">bill</font> 。
然后,创建一个简单的名为 functions.php 的 PHP 文件,该文件将包含主要的功能。在该文件中要创建少量的函数,以支持微博客应用程序上下文中的动作。
如清单 5 所示,第一个函数是一个简单的函数,用于将内容添加到 posts 表中。
清单 5. 用于将内容添加到 posts 表中的函数
<br/>function add_post($userid,$body){<br/> $sql = "insert into posts (user_id, body, stamp) <br/> values ($userid, "". mysql_real_escape_string($body). "",now())";<br/><br/> $result = mysql_query($sql);<br/>}<br/> Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
为了测试这个简单的函数,还需要添加另外两个 PHP 文件。一个是 index.php 文件,目前包含一个基本的小表单 — 后面将向页面添加更多内容。另一个 PHP 文件是 add.php,上述表单将被发布到该文件。清单 6 是 index.php 文件的摘录。请注意,在此使用一个 PHP 会话将一个用户 ID 值硬编码为 1,这是我的数据库中的用户 <font face="NSimsun">jane</font> 。现在这样做完全没有问题,但是在后面显然需要更改。
清单 6. index.php 文件摘录
___FCKpd___1 Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
此外还应注意,我在表单上为状态消息留下了空间,这将在 add.php 中动态地设置,如下面的清单所示。
清单 7. 用 add.php 文件将贴子添加到数据库中
___FCKpd___2 Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
上述代码应该没有什么特别令人奇怪的东西。它只是接受表单的 <font face="NSimsun">body</font> 字段和 PHP 会话中设置的 user ID,然后将它们传递给 functions.php 文件中的 <font face="NSimsun">add_post()</font> 函数。然后,设置另一个会话变量(更新消息),并将用户重定向回 index.php 页面。
如果要测试这个小函数,惟一的方法是检查数据库中的 posts 表。这不太符合用户友好性,不是吗?这里需要的是更新主页上的贴子。为此,需要再将一个函数添加到 functions.php 文件中,并在主页上使用它。
添加一系列的更新
现在可以打开 functions.php 文件并在其中添??另一个函数。这一次,将函数命名为 <font face="NSimsun">show_posts()</font> 。它将显示特定用户 ID 的所有贴子,如下面的清单所示。
清单 8. <font face="NSimsun">show_posts()</font> 函数
<br/>function show_posts($userid){<br/> $posts = array();<br/><br/> $sql = "select body, stamp from posts<br/> where user_id = "$userid" order by stamp desc";<br/> $result = mysql_query($sql);<br/><br/> while($data = mysql_fetch_object($result)){<br/> $posts[] = array( "stamp" => $data->stamp, <br/> "userid" => $userid, <br/> "body" => $data->body<br/> );<br/> }<br/> return $posts;<br/><br/>}<br/> Nach dem Login kopieren Nach dem Login kopieren
|
如果为这个函数传递一个用户 ID,它将在一个多维数组中按日期倒序的顺序返回那个用户发出的贴子。要使用该函数,只需在 index.php 上调用它,并检索那个用户的所有贴子。由于对于每个记录只需处理少量的数据,这种查询可以很好地进行扩展。
清单 9 是添加到 index.php 页面的代码,这些代码就放在前面添加的表单之后。通过使用 <font face="NSimsun">show_posts()</font> 函数和会话变量,可以获得登录的用户发出的所有贴子。如果没有贴子,则显示某种错误消息。如果有贴子,则在一个表中逐个显示它们 — 或者,如果想别致一点,可以使用自己的级联样式表(CSS)。
清单 9. 在 index.php 页面上显示贴子
___FCKpd___4 Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
图 1 显示到目前为止的基本界面 — 还不错,几分钟就有这样的成绩。
图 1. 基本界面
容易的部分就完成了。现在有了一个基本的应用程序,用户可以发布状态,并看到它在页面上显示。但是,还缺少一个重要的部分:除了发布状态的人以外,没有人看到状态更新。在下一节中,将创建一个简单的界面,其中列出系统中的所有用户,并且允许已登录的用户追随其他用户并看到他们的状态更新。
SESSION["userid"] = 1; ?> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Microblogging Application
vbody>
if (isset(创建输入表单
设置好后端表之后,就可以考虑处理数据插入和更新的 PHP。现在需要的是一些简单的函数,这些函数将:
- 允许用户登录和添加贴子。
- 将那些贴子转发给追随那个用户的人。
- 允许用户追随其他用户。
我通常在模型-视图-控制器(Model-View-Controller,MVC)应用程序框架(例如 CodeIgniter)的上下文中工作,因为它提供了一套工具用于创建这些类型的应用程序。例如,我一般先创建两个模型(一个用于用户,另一个用于贴子),这两个模型使我可以与 users、posts 和 following 表交互,然后从这两个模型开始继续前进。
由于您可能已经在使用不同的框架,所以我决定在此不使用上述方法。相反,我选择一种更简单的、独立于框架的方法。对于本文,我们走走捷径,直接将记录添加到 users 表中,以创建一系列测试用户,供应用程序使用。我创建 3 个用户,并将他们的用户名设为 <font face="NSimsun">jane</font> 、 <font face="NSimsun">tommy</font> 和 <font face="NSimsun">bill</font> 。
然后,创建一个简单的名为 functions.php 的 PHP 文件,该文件将包含主要的功能。在该文件中要创建少量的函数,以支持微博客应用程序上下文中的动作。
如清单 5 所示,第一个函数是一个简单的函数,用于将内容添加到 posts 表中。
清单 5. 用于将内容添加到 posts 表中的函数
<br/>function add_post($userid,$body){<br/> $sql = "insert into posts (user_id, body, stamp) <br/> values ($userid, "". mysql_real_escape_string($body). "",now())";<br/><br/> $result = mysql_query($sql);<br/>}<br/> Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
为了测试这个简单的函数,还需要添加另外两个 PHP 文件。一个是 index.php 文件,目前包含一个基本的小表单 — 后面将向页面添加更多内容。另一个 PHP 文件是 add.php,上述表单将被发布到该文件。清单 6 是 index.php 文件的摘录。请注意,在此使用一个 PHP 会话将一个用户 ID 值硬编码为 1,这是我的数据库中的用户 <font face="NSimsun">jane</font> 。现在这样做完全没有问题,但是在后面显然需要更改。
清单 6. index.php 文件摘录
___FCKpd___1 Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
此外还应注意,我在表单上为状态消息留下了空间,这将在 add.php 中动态地设置,如下面的清单所示。
清单 7. 用 add.php 文件将贴子添加到数据库中
___FCKpd___2 Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
上述代码应该没有什么特别令人奇怪的东西。它只是接受表单的 <font face="NSimsun">body</font> 字段和 PHP 会话中设置的 user ID,然后将它们传递给 functions.php 文件中的 <font face="NSimsun">add_post()</font> 函数。然后,设置另一个会话变量(更新消息),并将用户重定向回 index.php 页面。
如果要测试这个小函数,惟一的方法是检查数据库中的 posts 表。这不太符合用户友好性,不是吗?这里需要的是更新主页上的贴子。为此,需要再将一个函数添加到 functions.php 文件中,并在主页上使用它。
添加一系列的更新
现在可以打开 functions.php 文件并在其中添??另一个函数。这一次,将函数命名为 <font face="NSimsun">show_posts()</font> 。它将显示特定用户 ID 的所有贴子,如下面的清单所示。
清单 8. <font face="NSimsun">show_posts()</font> 函数
___FCKpd___3 Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
如果为这个函数传递一个用户 ID,它将在一个多维数组中按日期倒序的顺序返回那个用户发出的贴子。要使用该函数,只需在 index.php 上调用它,并检索那个用户的所有贴子。由于对于每个记录只需处理少量的数据,这种查询可以很好地进行扩展。
清单 9 是添加到 index.php 页面的代码,这些代码就放在前面添加的表单之后。通过使用 <font face="NSimsun">show_posts()</font> 函数和会话变量,可以获得登录的用户发出的所有贴子。如果没有贴子,则显示某种错误消息。如果有贴子,则在一个表中逐个显示它们 — 或者,如果想别致一点,可以使用自己的级联样式表(CSS)。
清单 9. 在 index.php 页面上显示贴子
___FCKpd___4 Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
图 1 显示到目前为止的基本界面 — 还不错,几分钟就有这样的成绩。
图 1. 基本界面
容易的部分就完成了。现在有了一个基本的应用程序,用户可以发布状态,并看到它在页面上显示。但是,还缺少一个重要的部分:除了发布状态的人以外,没有人看到状态更新。在下一节中,将创建一个简单的界面,其中列出系统中的所有用户,并且允许已登录的用户追随其他用户并看到他们的状态更新。
SESSION["message"])){ echo "". 创建输入表单
设置好后端表之后,就可以考虑处理数据插入和更新的 PHP。现在需要的是一些简单的函数,这些函数将:
- 允许用户登录和添加贴子。
- 将那些贴子转发给追随那个用户的人。
- 允许用户追随其他用户。
我通常在模型-视图-控制器(Model-View-Controller,MVC)应用程序框架(例如 CodeIgniter)的上下文中工作,因为它提供了一套工具用于创建这些类型的应用程序。例如,我一般先创建两个模型(一个用于用户,另一个用于贴子),这两个模型使我可以与 users、posts 和 following 表交互,然后从这两个模型开始继续前进。
由于您可能已经在使用不同的框架,所以我决定在此不使用上述方法。相反,我选择一种更简单的、独立于框架的方法。对于本文,我们走走捷径,直接将记录添加到 users 表中,以创建一系列测试用户,供应用程序使用。我创建 3 个用户,并将他们的用户名设为 <font face="NSimsun">jane</font> 、 <font face="NSimsun">tommy</font> 和 <font face="NSimsun">bill</font> 。
然后,创建一个简单的名为 functions.php 的 PHP 文件,该文件将包含主要的功能。在该文件中要创建少量的函数,以支持微博客应用程序上下文中的动作。
如清单 5 所示,第一个函数是一个简单的函数,用于将内容添加到 posts 表中。
清单 5. 用于将内容添加到 posts 表中的函数
<br/>function add_post($userid,$body){<br/> $sql = "insert into posts (user_id, body, stamp) <br/> values ($userid, "". mysql_real_escape_string($body). "",now())";<br/><br/> $result = mysql_query($sql);<br/>}<br/> Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
为了测试这个简单的函数,还需要添加另外两个 PHP 文件。一个是 index.php 文件,目前包含一个基本的小表单 — 后面将向页面添加更多内容。另一个 PHP 文件是 add.php,上述表单将被发布到该文件。清单 6 是 index.php 文件的摘录。请注意,在此使用一个 PHP 会话将一个用户 ID 值硬编码为 1,这是我的数据库中的用户 <font face="NSimsun">jane</font> 。现在这样做完全没有问题,但是在后面显然需要更改。
清单 6. index.php 文件摘录
___FCKpd___1 Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
此外还应注意,我在表单上为状态消息留下了空间,这将在 add.php 中动态地设置,如下面的清单所示。
清单 7. 用 add.php 文件将贴子添加到数据库中
___FCKpd___2 Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
上述代码应该没有什么特别令人奇怪的东西。它只是接受表单的 <font face="NSimsun">body</font> 字段和 PHP 会话中设置的 user ID,然后将它们传递给 functions.php 文件中的 <font face="NSimsun">add_post()</font> 函数。然后,设置另一个会话变量(更新消息),并将用户重定向回 index.php 页面。
如果要测试这个小函数,惟一的方法是检查数据库中的 posts 表。这不太符合用户友好性,不是吗?这里需要的是更新主页上的贴子。为此,需要再将一个函数添加到 functions.php 文件中,并在主页上使用它。
添加一系列的更新
现在可以打开 functions.php 文件并在其中添??另一个函数。这一次,将函数命名为 <font face="NSimsun">show_posts()</font> 。它将显示特定用户 ID 的所有贴子,如下面的清单所示。
清单 8. <font face="NSimsun">show_posts()</font> 函数
___FCKpd___3 Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
如果为这个函数传递一个用户 ID,它将在一个多维数组中按日期倒序的顺序返回那个用户发出的贴子。要使用该函数,只需在 index.php 上调用它,并检索那个用户的所有贴子。由于对于每个记录只需处理少量的数据,这种查询可以很好地进行扩展。
清单 9 是添加到 index.php 页面的代码,这些代码就放在前面添加的表单之后。通过使用 <font face="NSimsun">show_posts()</font> 函数和会话变量,可以获得登录的用户发出的所有贴子。如果没有贴子,则显示某种错误消息。如果有贴子,则在一个表中逐个显示它们 — 或者,如果想别致一点,可以使用自己的级联样式表(CSS)。
清单 9. 在 index.php 页面上显示贴子
___FCKpd___4 Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
图 1 显示到目前为止的基本界面 — 还不错,几分钟就有这样的成绩。
图 1. 基本界面
容易的部分就完成了。现在有了一个基本的应用程序,用户可以发布状态,并看到它在页面上显示。但是,还缺少一个重要的部分:除了发布状态的人以外,没有人看到状态更新。在下一节中,将创建一个简单的界面,其中列出系统中的所有用户,并且允许已登录的用户追随其他用户并看到他们的状态更新。
SESSION["message"].""; unset(创建输入表单
设置好后端表之后,就可以考虑处理数据插入和更新的 PHP。现在需要的是一些简单的函数,这些函数将:
- 允许用户登录和添加贴子。
- 将那些贴子转发给追随那个用户的人。
- 允许用户追随其他用户。
我通常在模型-视图-控制器(Model-View-Controller,MVC)应用程序框架(例如 CodeIgniter)的上下文中工作,因为它提供了一套工具用于创建这些类型的应用程序。例如,我一般先创建两个模型(一个用于用户,另一个用于贴子),这两个模型使我可以与 users、posts 和 following 表交互,然后从这两个模型开始继续前进。
由于您可能已经在使用不同的框架,所以我决定在此不使用上述方法。相反,我选择一种更简单的、独立于框架的方法。对于本文,我们走走捷径,直接将记录添加到 users 表中,以创建一系列测试用户,供应用程序使用。我创建 3 个用户,并将他们的用户名设为 <font face="NSimsun">jane</font> 、 <font face="NSimsun">tommy</font> 和 <font face="NSimsun">bill</font> 。
然后,创建一个简单的名为 functions.php 的 PHP 文件,该文件将包含主要的功能。在该文件中要创建少量的函数,以支持微博客应用程序上下文中的动作。
如清单 5 所示,第一个函数是一个简单的函数,用于将内容添加到 posts 表中。
清单 5. 用于将内容添加到 posts 表中的函数
<br/>function add_post($userid,$body){<br/> $sql = "insert into posts (user_id, body, stamp) <br/> values ($userid, "". mysql_real_escape_string($body). "",now())";<br/><br/> $result = mysql_query($sql);<br/>}<br/> Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
为了测试这个简单的函数,还需要添加另外两个 PHP 文件。一个是 index.php 文件,目前包含一个基本的小表单 — 后面将向页面添加更多内容。另一个 PHP 文件是 add.php,上述表单将被发布到该文件。清单 6 是 index.php 文件的摘录。请注意,在此使用一个 PHP 会话将一个用户 ID 值硬编码为 1,这是我的数据库中的用户 <font face="NSimsun">jane</font> 。现在这样做完全没有问题,但是在后面显然需要更改。
清单 6. index.php 文件摘录
___FCKpd___1 Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
此外还应注意,我在表单上为状态消息留下了空间,这将在 add.php 中动态地设置,如下面的清单所示。
清单 7. 用 add.php 文件将贴子添加到数据库中
___FCKpd___2 Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
上述代码应该没有什么特别令人奇怪的东西。它只是接受表单的 <font face="NSimsun">body</font> 字段和 PHP 会话中设置的 user ID,然后将它们传递给 functions.php 文件中的 <font face="NSimsun">add_post()</font> 函数。然后,设置另一个会话变量(更新消息),并将用户重定向回 index.php 页面。
如果要测试这个小函数,惟一的方法是检查数据库中的 posts 表。这不太符合用户友好性,不是吗?这里需要的是更新主页上的贴子。为此,需要再将一个函数添加到 functions.php 文件中,并在主页上使用它。
添加一系列的更新
现在可以打开 functions.php 文件并在其中添??另一个函数。这一次,将函数命名为 <font face="NSimsun">show_posts()</font> 。它将显示特定用户 ID 的所有贴子,如下面的清单所示。
清单 8. <font face="NSimsun">show_posts()</font> 函数
___FCKpd___3 Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
如果为这个函数传递一个用户 ID,它将在一个多维数组中按日期倒序的顺序返回那个用户发出的贴子。要使用该函数,只需在 index.php 上调用它,并检索那个用户的所有贴子。由于对于每个记录只需处理少量的数据,这种查询可以很好地进行扩展。
清单 9 是添加到 index.php 页面的代码,这些代码就放在前面添加的表单之后。通过使用 <font face="NSimsun">show_posts()</font> 函数和会话变量,可以获得登录的用户发出的所有贴子。如果没有贴子,则显示某种错误消息。如果有贴子,则在一个表中逐个显示它们 — 或者,如果想别致一点,可以使用自己的级联样式表(CSS)。
清单 9. 在 index.php 页面上显示贴子
___FCKpd___4 Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren Nach dem Login kopieren
|
图 1 显示到目前为止的基本界面 — 还不错,几分钟就有这样的成绩。
图 1. 基本界面
容易的部分就完成了。现在有了一个基本的应用程序,用户可以发布状态,并看到它在页面上显示。但是,还缺少一个重要的部分:除了发布状态的人以外,没有人看到状态更新。在下一节中,将创建一个简单的界面,其中列出系统中的所有用户,并且允许已登录的用户追随其他用户并看到他们的状态更新。
SESSION["message"]); } ?>
|