请解释与构建论坛页面相关的PHP代码/语法

请解释与构建论坛页面相关的PHP代码/语法,php,Php,好的,所以我试图从头开始建立一个论坛,我意识到与主题相对应的页面必须以某种方式动态生成。我正在看一个我经常访问的论坛,我想有人解释一下我看到的流的PHP语法/代码,因为我以前从未见过“something.PHP?x=something”类型的结构 好的,所以用户首先访问站点,页面上说 http://forumname.com/index.php?sid=someLongSetOfChars (我猜这是一个会话id?…什么是?“我在哪里可以了解它) 单击“登录”可进入 forumname.com

好的,所以我试图从头开始建立一个论坛,我意识到与主题相对应的页面必须以某种方式动态生成。我正在看一个我经常访问的论坛,我想有人解释一下我看到的流的PHP语法/代码,因为我以前从未见过“something.PHP?x=something”类型的结构

好的,所以用户首先访问站点,页面上说

http://forumname.com/index.php?sid=someLongSetOfChars
(我猜这是一个会话id?…什么是?“我在哪里可以了解它)

单击“登录”可进入

forumname.com/ucp.php?mode=login (what is mode? how do i know to do this?)
成功登录后,您将获得

forumname.com/index.php?sid=otherLongSetofChars
此页面包含不同类别的各种论坛

单击其中一个类别可提供:

http://forumname.com/viewforum.php?f=1
单击其中一个主题可提供:

http://forumname.com/viewtopic.php?f=1&t=192053
所有这些东西对我来说(语义上)都是有意义的,但我想知道它们实际上是如何工作的,以及如何实现它们。我必须定义哪些变量,这些页面在哪里创建并存储在我的服务器上

谢谢

它被称为“查询字符串”,表示HTTP GET参数

,在。

中,它被称为“查询字符串”,表示HTTP GET参数


,和。

您对会话id的了解是正确的。您可以阅读有关会话id传递的更多信息。这个标记查询字符串的开始,与会话ID无关。查询字符串由服务器通过URL可用的所有变量组成。在PHP中,可以通过$\u GET super-global访问这些文件(这意味着它是预定义的)

通过执行以下操作,可以查看所有已定义的查询字符串变量:

print_r($_GET);
模式只是论坛创建者定义的一个变量。我假设ucp代表用户控制面板,在他们的ucp.php文件中,他们将有一些代码如下所示:

$mode = $_GET['mode'];
if ($mode == "login")
{
    //login
}
elseif ($mode == "logout")
{
    //logout
}

关于会话id,您是正确的。您可以阅读有关会话id传递的更多信息。这个标记查询字符串的开始,与会话ID无关。查询字符串由服务器通过URL可用的所有变量组成。在PHP中,可以通过$\u GET super-global访问这些文件(这意味着它是预定义的)

通过执行以下操作,可以查看所有已定义的查询字符串变量:

print_r($_GET);
模式只是论坛创建者定义的一个变量。我假设ucp代表用户控制面板,在他们的ucp.php文件中,他们将有一些代码如下所示:

$mode = $_GET['mode'];
if ($mode == "login")
{
    //login
}
elseif ($mode == "logout")
{
    //logout
}
你说得对。
之后的所有内容都称为GET参数。它们由参数名和值组成。这里的名称是
sid
,其值是会话ID。可以在PHP文件
index.PHP
中访问该值

forumname.com/ucp.php?mode=login
模式是另一个GET参数。其值为
login
。我猜
ucp.php
文件会查找
mode
参数,并看到您想要登录。脚本将显示登录页面

forumname.com/index.php?sid=otherLongSetofChars
index.php
脚本通过会话ID知道您已成功登录。因此,你可以看到所有的论坛

http://forumname.com/viewforum.php?f=1
http://forumname.com/viewtopic.php?f=1&t=192053
将有名为
viewforum.PHP
viewtopic.PHP
的PHP脚本,它们采用参数
f
(对于论坛)和
t
(对于主题)。基于论坛和主题的ID,PHP脚本将向您显示正确的主题/论坛

总之,这一切归结为解析通过GET发送的参数(您可以在URL中看到的参数)。还有另一种类型称为POST参数。例如,当您登录时,这些信息会被发送,但“在后台”不会通过URL发送。它们的存在是因为您不希望在URL中使用明文形式的密码

你说得对。
之后的所有内容都称为GET参数。它们由参数名和值组成。这里的名称是
sid
,其值是会话ID。可以在PHP文件
index.PHP
中访问该值

forumname.com/ucp.php?mode=login
模式是另一个GET参数。其值为
login
。我猜
ucp.php
文件会查找
mode
参数,并看到您想要登录。脚本将显示登录页面

forumname.com/index.php?sid=otherLongSetofChars
index.php
脚本通过会话ID知道您已成功登录。因此,你可以看到所有的论坛

http://forumname.com/viewforum.php?f=1
http://forumname.com/viewtopic.php?f=1&t=192053
将有名为
viewforum.PHP
viewtopic.PHP
的PHP脚本,它们采用参数
f
(对于论坛)和
t
(对于主题)。基于论坛和主题的ID,PHP脚本将向您显示正确的主题/论坛


总之,这一切归结为解析通过GET发送的参数(您可以在URL中看到的参数)。还有另一种类型称为POST参数。例如,当您登录时,这些信息会被发送,但“在后台”不会通过URL发送。它们之所以存在,是因为您不希望在URL中使用明文形式的密码。

密码后面的键/值对?在url中,对应于PHP中超全局关联数组$\u GET中的键/值对。您可以在其中输入以下内容:

$_GET[key]="value"
您可以使用以下工具从中检索值:

$_GET[key]
查看更多信息


Andy

后的键/值对?在url中,对应于PHP中超全局关联数组$\u GET中的键/值对。您可以在其中输入以下内容:

$_GET[key]="value"
您可以使用以下工具从中检索值:

$_GET[key]
查看更多信息

Andy这可能会有帮助:

URL中的“?”表示URL的其余部分是GET变量。Get变量的形式为{{key}}={{value}},并用&s分隔

我不会假装我知道你的论坛的数据库结构或PHP结构,但下面是一个如何在你的上一个URL中使用get变量的示例:

<?php

$f = $_GET['f'];
$t = $_GET['t'];

//Now use $f and $t to find corresponding IDs in forum's database

....

?>
这可能有助于:

URL中的“?”表示URL的其余部分是GET变量。Get变量的形式为{{key}}={{value}}和seper