html表单数据传递_使⽤HTML表单将数据传递给PHP
html表单数据传递
介绍
在某些时候,所有Web开发⼈员都需要从⽤户那⾥收集数据。 在动态⽹页中,⼀切都围绕⽤户的输⼊,因此了解如何请求和收集此数据对于任何开发⼈员都是⾄关重要的。
本⽂是有关如何使⽤HTML表单(最常⽤的数据收集⽅法)的基础教程。
假设条件
-基本HTML知识。
-基本PHP知识。
HTML表格
收集数据的常见且简单的⽅法是通过HTML表单。 表单是⽤户输⼊的容器,可以包含许多不同的输⼊类型。
HTML表单元素需要⼀些参数才能正常⼯作:
⾏动 :这应该指向⽤于处理收集的数据的页⾯。 提交表单后,浏览器将与所有数据⼀起重定向到此位置。
⽅法 :这是运输⽅法。 这⾥有两个选择:“ GET”和“ POST”。 我将在下⼀章中介绍它们。
⼀个典型的表单元素可能看起来像这样:
<form id="Form1" action="submit.php" method="post">
<!-- Input elements will be put here -->
</form>
数据传递⽅法GET和POST。
正如您可能从两种协议的名称中猜到的那样,GET和POST请求被设计⽤于不同的⽬的。
GET协议的⽬的是获取数据并将其显⽰给⽤户。 可以通过查询字符串传递简单的键值对,但是理想情况下,应使⽤它们指定页⾯上应显⽰的内容,⽽不是将⽤户数据推送到服务器上。
这就是POST协议的⽬的。 它旨在允许客户端以⼏乎任何格式将⼏乎任何数量的数据发送到服务器。 这是⼤多数表单应使⽤的格式,并且对于⽂件上传和上传⼤量⽂本⽽⾔,这是必需的。
本质上,GET应该⽤于导航和类似性质的事情,但是POST应该⽤于发送实际数据。 现在,让我们分别更详细地检查它们。
GET协议
使⽤GET时,来⾃表单的数据被编码到请求的URL中。 例如,如果您要提交以下表格:
<form action="action.php" method="get">
<input type="text" name="Username" value="John"><br>
<input type="password" name="Password" value="thePassword"><br>
<input type="submit">
</form>
当您点击“提交”按钮时,浏览器会将您重定向到以下URL:
html中提交表单用什么属性
--
action.php?Username = John&Passsword = thePassword
GET协议的⼀个⾮常有⽤的⽅⾯是,我们不必使⽤表单来提交GET数据。 该URL也可以⼿动构造,服务器不会看到任何区别。 这意味着也可以使⽤以下HTML链接提交上述数据:
<a href="action.php?Username=John&Passsword=thePassword">Submit</a>
在显⽰动态创建的内容的⽹站(例如论坛或博客)中,这可能是⾮常有⽤的燃料,您经常需要在其中创建动态导航链接。 实际上,此⽅法
POST协议
已在⼤多数动态Web 2.0应⽤程序中使⽤。 POST协议
通过POST协议提交的数据在URL中不可见。 数据本⾝被放⼊请求的主体中,该主体允许POST请求⽐GET请求上传更多的数据和更复杂的数据。
例如,要发送⽤户名和图像,可以使⽤如下形式:
<form action="action.php" method="post" enctype="multipart/form-data">
<input type="text" name="Username"><br>
<input type="file" name="UserImage">
<input type="submit">
</form>
您将在此处注意到已将其他属性添加到表单。 发送⽂件时需要“ enctype”属性。 如果丢失,将不会发送⽂件。 -此属性仅告诉客户端如何格式化请求的正⽂。 默认情况下,它是⼀种相当简单的格式,但是要发送⼆进制对象,则需要更复杂的格式。 <input>元素
与所有表单⼀样,HTML表单也需要⽤户填写字段。 这就是
<input>元素⽤于。
输⼊元素位于内部
<form>元素,可以⽤作许多不同类型的字段。 通过将字段的“类型”属性更改为以下值之⼀来设置类型 :
text :这是⼀个简单的⽂本框。 允许⽤户输⼊任何⽂本。
password :这类似于“⽂本”输⼊,只是⽤于密码。 ⽂本被混淆,因此您键⼊的实际⽂本不可见。 (通常通过⽤星号替换每个字符。)
button :这将创建⼀个按钮。 它没有特殊⽬的。 它主要⽤于执⾏JavaScript代码。
提交 :这将形成⼀个按钮,单击该按钮即可提交表单。 如果指定名称和值,它们将包含在数据中。 否则不⾏。
reset :这形成⼀个按钮,⽤于重置表单中的所有字段。 请谨慎使⽤!
复选框 :这将创建⼀个复选框。 仅选中的框将与数据⼀起发送。 未选中的框将被忽略。
radio :这将创建⼀个单选按钮。 如果使⽤相同的名称创建多个这些名称,则在任何给定时间只能选择其中⼀个,并且数据中将仅包含所选的⼀个。 所选框的“值”属性将被发送。
隐藏 :不显⽰此字段。 它是隐藏的,但其值将被发送。 当您需要从PHP或JavaScript代码中包含⼀个值,但⼜不想让⽤户看到它时,这些功能⾮常有⽤。
file :此类型允许选择⽂件并将其上传到服务器。
⼀个使⽤输⼊元素填充的表单的简单⽰例:
<form id="Form1" action="submit.php" method="post">
Username: <input type="text" name="Username"><br>
Password: <input type="password" name="Password"><br>
Remember me: <input type="checkbox" name="Remember" checked="checked">
<input type="hidden" name="SubmitCheck" value="sent">
<input type="Submit" name="Form1_Submit" value="Login">
</form>
读取表格数据
要使⽤PHP读取表单提交的数据,我们使⽤三个特殊数组之⼀。 那些是:
$ _GET , $ _POST或$ _REQUEST 。 前两个包含通过各⾃协议提交的数据。 第三个$ _REQUEST包含两个数据。
数组的index(key)是输⼊元素的name属性。 因此,如果要发送先前创建的表单,则可以打印您传递的⽤户名,如下所⽰:
echo $_POST['Username'];
如果您很懒,可以直接调⽤“ $ _REQUEST ['Username']”,但这是有代价的。 根据您PHP配置,$ _GET或$ _POST数组将替代另⼀个,从⽽覆盖重复的值。 这意味着,如果POST和GET协议都发送具有相同名称的值,则其中⼀个将不可⽤,并且您可能会在代码中使⽤错误的值。 -更糟的是,Cookie和Enviromental变量也被混合使⽤,从⽽进⼀步增加了风险。
这个故事的寓意是:使⽤
$ _GET和$ _POST数组,⽽不是$ _REQUEST数组。 这样最安全。 使⽤收集的数据
使⽤收集的数据
在结束之前,让我们使⽤之前的登录表单来做⼀个简单的⽰例。
此表单测试⽤户名“ John”和密码“ Doe”,并相应地进⾏响应。 -请注意,我已经更改了表单的'action'属性,使其指向⾃⾝,这将导致页⾯与数据⼀起重新加载。
<?php
/**
* WARNING!
* This EXAMPLE code contains severe SECURITY ISSUES
* which should be addressed before real-life usage!!
*
* These issues have been ignored intentionally to
* simplify the code so we can focus on the topic
* in discussion.
*/
// Lets test if the form has been submitted
if(isset($_POST['SubmitCheck'])) {
// The form has been submited
// Check the values!
if($_POST['Username'] == "John" and $_POST['Password'] == "Doe") {
// User validated!
echo "Thats right! You have been logged in!";
// Check if the checkbox was checked
if(isset($_POST['Remember'])) {
echo "<br>You will be remembered!";
}
else {
echo "<br>John who?!";
}
}
else {
// User info invalid!
echo "Sorry mate, try again!";
}
}
else {
// The form has not been posted
/
/ Show the form
>
<form id="Form1" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Username: <input type="text" name="Username"><br>
Password: <input type="password" name="Password"><br>
Remember me: <input type="checkbox" name="Remember" checked="chekced">
<input type="hidden" name="SubmitCheck" value="sent">
<input type="Submit" name="Form1_Submit" value="Login">
</form>
<?php
}
>
终点线
因此,这就是我有关HTML表单的基本⽂章。
最后警告!
谨慎使⽤通过HTML表单发布的数据。
始终假设您收到的数据以某种⽅式破坏了您的⽹络并进⾏了相应的验证!
请记住,您的⽹络仅与显⽰的信息⼀样好,因此请确保数据正确⽆误。祝⼀切顺利,
-AtliÞór
html表单数据传递

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。