PHP页面如何检索表单数据?

PHP页面如何检索表单数据?,php,html,forms,Php,Html,Forms,我是PHP新手,正在学习关于W3学校的PHP课程。在本课程的表单处理部分,我了解到有两种处理表单数据的方法:POST和GET。我知道,根据使用的方法,会创建一个超全局变量,该变量将数据存储为键值对。在目标页面,从该变量检索数据(使用$\u POST[“key”]或$\u GET[“key”]) <pre><?php print_r($_GET);?></pre> <pre><?php print_r($_POST);?></pre

我是PHP新手,正在学习关于W3学校的PHP课程。在本课程的表单处理部分,我了解到有两种处理表单数据的方法:
POST
GET
。我知道,根据使用的方法,会创建一个超全局变量,该变量将数据存储为键值对。在目标页面,从该变量检索数据(使用
$\u POST[“key”]
$\u GET[“key”]

<pre><?php print_r($_GET);?></pre>
<pre><?php print_r($_POST);?></pre>
但我的问题是:超全局变量(
$\u POST
$\u GET
)存储在哪里?如果它位于表单所在的同一页面上,那么在
表单
标记的
操作
属性中指定的另一个目标页面如何访问它

是否服务器上的所有页面都可以访问同一组超全局变量(与我目前认为的每个页面都有自己的超全局变量集相反)

下面的代码应该让我的问题更清楚:

index.php:

<html>
<body>

<form action="welcome.php" method="post">
    Name: <input type="text" name="name"><br>
    E-mail: <input type="text" name="email"><br>
    <input type="submit">
</form>

</body>
</html>

名称:
电子邮件:
welcome.php:

<html>
<body>

    Welcome <?php echo $_POST["name"]; ?><br>
    Your email address is: <?php echo $_POST["email"]; ?>

</body>
</html>

欢迎
您的电子邮件地址是:
学校解释如下:

当用户填写上面的表单并单击submit按钮时,表单数据被发送到一个名为“welcome.PHP”的PHP文件进行处理。表单数据通过HTTP POST方法发送。 要显示提交的数据,只需回显所有变量即可

变量
$\u POST[“name”]
$\u POST[“email”]
如何到达welcome.php。

不是指变量的生存期,而是指可以访问变量的范围

可以被其他页面访问

另外,关于您的评论“如果是这样,second.php如何显示在first.php中输入的表单数据?”

php应该将数据保存到数据库中。php应该从数据库中读取数据。如果您是新手,我建议您将MySQL作为数据库。它与PHP配合得很好。

不是指变量的生存期,而是指可以访问变量的范围

可以被其他页面访问

另外,关于您的评论“如果是这样,second.php如何显示在first.php中输入的表单数据?”

php应该将数据保存到数据库中。php应该从数据库中读取数据。如果您是新手,我建议您将MySQL作为数据库。它与PHP配合得很好。

关于您的编辑:

<form action="welcome.php" method="post">
关于您的编辑:

<form action="welcome.php" method="post">

当您向web服务器(即apache、nginx)发送请求时,请求将被解析为可理解的片段。然后,在PHP的例子中,请求的文件与来自请求的数据一起发送到PHP解释器

在您的示例中,您需要一个表单向页面
welcome.php
发送POST请求。(如果您不熟悉请求方法GET/POST/etc,那么w3schools对此有一个简单的解释:)您的表单将方法设置为
POST
,这可以是
GET
,但通常不会。如果用户按下
标记中的提交按钮,则表单使用
方法中设置的方法将请求发送到
操作中设置的页面。您的表单将发送一个带有数据名=“…”和电子邮件=“…”的
POST
请求

当这个请求到达PHP时,发送给它的所有数据都将存储在方法全局变量中。所有post请求将其数据放入$\u post,所有get请求将其数据放入$\u get

因此,当您提交表单
POST
请求时,浏览器(Firefox/Chrome)将使用
POST
方法请求页面
welcome.php
,并在该请求中发送数据
name
email
。在您的服务器上,PHP将打开文件
welcome.PHP
,并将数据放入$\u POST数组中。然后,由于$\u POST是全局的,因此
welcome.php
中的任何地方都可以访问此变量

如果手动转到页面
welcome.php
,您将执行
GET
请求。通常,发送post请求的唯一方法是通过表单。因此,手动转到该页面将把$\u POST设置为空数组

当我学习PHP时,我几乎总是在页面顶部有这些行,所以我知道发生了什么:


这将以漂亮的格式打印出数组,
标记将确保它们在浏览器中的格式正确(因为print\r使用换行符,浏览器会忽略这些字符,除非在pre标记中)

您还可以使用
var\u dump
交换
print\u r
,以获取有关变量的更多信息


这是一个简单的答案,web技术还有很多方法。一旦你们对PHP有了足够的了解,我会转向CakePHP或CodeIgniter之类的框架,这会占用很多小部分。但是,首先理解基础知识很重要。

当您向web服务器(即apache、nginx)发送请求时,请求会被解析为要理解的片段。然后,在PHP的例子中,请求的文件与来自请求的数据一起发送到PHP解释器

在您的示例中,您需要一个表单向页面
welcome.php
发送POST请求。(如果您不熟悉请求方法GET/POST/etc,那么w3schools对此有一个简单的解释:)您的表单将方法设置为
POST
,这可以是
GET
,但通常不会。如果用户按下
标记中的提交按钮,则表单使用
方法中设置的方法将请求发送到
操作中设置的页面。您的表单将发送一个带有数据名=“…”和电子邮件=“…”的
POST
请求

当这个请求到达PHP时,发送给它的所有数据都将存储在方法全局变量中。所有post请求都会放置其数据