html表单-为什么我经常看到<;输入名称=";“下一步”/>;?澄清';名称';属性确实存在
我总是对html表单中的“name”属性的作用感到困惑。从我读过的教科书(html和css,John Duckett设计和构建网页),这是关于“name”属性的说法html表单-为什么我经常看到<;输入名称=";“下一步”/>;?澄清';名称';属性确实存在,html,django,forms,Html,Django,Forms,我总是对html表单中的“name”属性的作用感到困惑。从我读过的教科书(html和css,John Duckett设计和构建网页),这是关于“name”属性的说法 When users enter information into a form, the server needs to know which form control each piece of data was entered into. (For example, in a login form, the serv
When users enter information
into a form, the server needs to
know which form control each
piece of data was entered into.
(For example, in a login form, the
server needs to know what has
been entered as the username
and what has been given as the
password.) Therefore, each form
control requires a name attribute.
The value of this attribute
identifies the form control and is
sent along with the information
they enter to the server.
通过阅读本文,我一直认为,比如在数据库中有一个名为“theUsersPasswordField”的字段和一个名为“theUsersUsernameField”的字段。我想,假设有一张登记表,那么表格会是这样的:
<form action="aURL" method="post">
<p>Please enter what you want your Username to be:</p>
<input type="submit" name="theUsersUsernameField" />
<p>Please enter what you want your Password to be:</p>
<input type="password" name="theUsersPasswordField" />
</form>
现在,“下一步”是一个怎样的url?当我运行代码时,表单实际上成功地重定向到主页面,但是它如何知道重定向到主页面呢?为什么name='next'
服务器如何知道哪些信息作为用户名,哪些信息作为密码?我想这就是“name”属性的用途
这样,当信息被发送到数据库时,它就会知道哪些信息应该放在“theUsersPasswordField”中,哪些信息应该放在“TheUsersUsersNameField”中。我错了吗
您必须编写一个脚本(例如php),将表单中的正确值(它们位于$\u POST数组中)放入数据库
在您的示例中,$\u POST['theUsersUsernameField']将保存用户名
<form method="post" action=".">
<p><label for="id_username">Username:</label></p>
<p><label for="id_password">Password:</label></p>
<input type="hidden" name="next" value="/" />
<input type="submit" value="login" />
</form>
用户名:
密码:
“下一步”是一个怎样的url
下一步不是url。action=“”是表单重定向的url。 /是脚本将计算的值,以查看它必须执行的操作。(通常,您必须将其更改为类似“检查密码”的其他内容) 在$\u POST[]数组中,将有一个键$\u POST['next'],该值将为/ 我不熟悉Django,但我希望这能有所帮助 这样,当信息被发送到数据库时,它就会知道哪些信息应该放在“theUsersPasswordField”中,哪些信息应该放在“TheUsersUsersNameField”中。我错了吗 您必须编写一个脚本(例如php),将表单中的正确值(它们位于$\u POST数组中)放入数据库 在您的示例中,$\u POST['theUsersUsernameField']将保存用户名
<form method="post" action=".">
<p><label for="id_username">Username:</label></p>
<p><label for="id_password">Password:</label></p>
<input type="hidden" name="next" value="/" />
<input type="submit" value="login" />
</form>
用户名:
密码:
“下一步”是一个怎样的url
下一步不是url。action=“”是表单重定向的url。 /是脚本将计算的值,以查看它必须执行的操作。(通常,您必须将其更改为“检查密码”之类的其他内容) 在$\u POST[]数组中,将有一个键$\u POST['next'],该值将为/
我不熟悉Django,但我希望这有助于控件元素(如
input
中的name
属性)为控件指定名称。它有两个基本效果:1)控件需要一个名称才能“成功”,这意味着在提交表单时,它的名称=值对将被包括到表单数据中;以及2)该属性指定将作为名称=值对的第一部分包含的内容
这完全取决于服务器端表单处理程序如何处理表单数据中的name=value对(如果有的话)。他们可能在一些数据库中有一个简单的通信,但这只是一种可能性。而且表单处理根本不需要基于数据库
name
属性值在HTML中没有预定义的含义。它们只是选择用于此上下文的字符串,它们可能是描述性的或助记的,也可能不是
但是,选择name
属性值可能会产生副作用。浏览器可能会为用户提供一个先前输入数据的菜单,这样,如果您填写了一些表格(可能在不同的网站上),其中有一个名为email
的控件,则您可以只输入一次您的电子邮件地址,然后接受浏览器建议的任何输入。这可能被视为一种便利或对数据安全的威胁。在HTML5 CR中,有许多用途的建议
为完整起见,需要补充的是,在浏览器实践中,根据HTML5 CR,有两个名称具有特殊含义:\u charset\u
和isindex
名称
next
并不特别,但在这种情况下,它似乎指定了要移动到的下一页。它是为隐藏字段定义的,因此它独立于用户输入而生效。控件元素(如input
中的name
属性为控件指定名称。它有两个基本效果:1)控件需要一个名称才能“成功”,这意味着在提交表单时,它的名称=值对将被包括到表单数据中;以及2)该属性指定将作为名称=值对的第一部分包含的内容
这完全取决于服务器端表单处理程序如何处理表单数据中的name=value对(如果有的话)。他们可能在一些数据库中有一个简单的通信,但这只是一种可能性。而且表单处理根本不需要基于数据库
name
属性值在HTML中没有预定义的含义。它们只是选择用于此上下文的字符串,它们可能是描述性的或助记的,也可能不是
但是,选择name
属性值可能会产生副作用。浏览器可能会为用户提供一个先前输入数据的菜单,这样,如果您填写了一些表格(可能在不同的网站上),其中有一个名为email
的控件,则您可以只输入一次您的电子邮件地址,然后接受浏览器建议的任何输入。这可能被视为一种便利或对数据安全的威胁。在HTML5 CR中,有许多用途的建议
为了完整性,需要在浏览器实践中根据HTML5 CR添加
<form method="post" action=".">
<p><label for="id_username">Username:</label></p>
<p><label for="id_password">Password:</label></p>
<input type="hidden" name="next" value="/" />
<input type="submit" value="login" />
</form>