PHP页面如何检索表单数据?
我是PHP新手,正在学习关于W3学校的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
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请求都会放置其数据