好的,所以我试图从头开始构建一个论坛,我意识到必须以某种方式动态生成与主题相对应的页面.我正在查看我经常访问的论坛,我希望有人解释我看到的流程的PHP语法/代码,因为我以前从未见过"something.php?x = something"类型的结构.
好的,所以用户首先访问网站,页面说
http://forumname.com/index.php?sid=someLongSetOfChars
Run Code Online (Sandbox Code Playgroud)
(我猜这是一个会话ID?...什么是"?"我在哪里可以了解它)
点击登录即可转到
forumname.com/ucp.php?mode=login (what is mode? how do i know to do this?)
Run Code Online (Sandbox Code Playgroud)
登录成功后,你得到
forumname.com/index.php?sid=otherLongSetofChars
Run Code Online (Sandbox Code Playgroud)
此页面包含不同类别的各种论坛.
点击其中一个类别即可:
http://forumname.com/viewforum.php?f=1
Run Code Online (Sandbox Code Playgroud)
单击其中一个主题可以:
http://forumname.com/viewtopic.php?f=1&t=192053
Run Code Online (Sandbox Code Playgroud)
所有这些对我来说都是有意义的(语义上),但我想知道它们是如何实际工作以及如何实现它们的.我必须定义哪些变量以及在我的服务器上创建和存储这些页面的位置和位置?
谢谢
http://forumname.com/index.php?sid=someLongSetOfChars
Run Code Online (Sandbox Code Playgroud)
你是对的.之后的所有东西?都是所谓的GET参数.它们由参数名称和值组成.这里的名称是sid,它的值是会话ID.可以在PHP文件中访问该值index.php.
forumname.com/ucp.php?mode=login
Run Code Online (Sandbox Code Playgroud)
模式是另一个GET参数.它的价值在于login.我猜测该ucp.php文件查找mode参数,并看到您要登录.该脚本将显示登录页面.
forumname.com/index.php?sid=otherLongSetofChars
Run Code Online (Sandbox Code Playgroud)
该index.php脚本通过您成功登录您的会话ID知道.因此,您可以看到所有论坛.
http://forumname.com/viewforum.php?f=1
http://forumname.com/viewtopic.php?f=1&t=192053
Run Code Online (Sandbox Code Playgroud)
将调用PHP脚本viewforum.php并viewtopic.php使用参数f(对于论坛)和t(对于主题).根据论坛和主题的ID,PHP脚本将显示正确的主题/论坛.
总而言之,这一切都归结为解析通过GET发送的参数(您可以在URL中看到).还有另一种称为POST参数的类型.例如,当您登录时会发送这些内容,但是"在后台"而不是通过URL.存在它们是因为您不希望在URL中以明文形式显示密码.