html - 命名 POST/GET 变量的规则?

标签 html http post get

在表单中命名 POST 变量或在查询字符串中命名 GET 变量时,是否需要遵循任何规则?

谢谢-

最佳答案

从字面上回答这个问题,我真的没有意识到在 php 中命名 $_POST$_GET 数组键的“规则”。它是一个像任何其他数组一样的数组。看看 this working example on Codepad :

<?php
$_POST['♠♣♥♦'] = 'value1';
$_POST['\'\'\'\''] = 'value2';
$_POST['<?php echo "Hello World"; ?>'] = 'value3';
$_POST['     '] = 'value4';
$_POST[''] = 'value5';
$_POST['@#$%^&*()'] = 'value6';

print_r($_POST);

在表单输入名称的情况下,它们必须是合法的 HTML“名称”属性(见下文)。然而,在实践中,许多不寻常的字符实际上会起作用。请记住,这并不意味着这是个好主意。不同的服务器(可能还有不同的浏览器)对某些字符(例如空格)的行为会有所不同。

正如 Tadeck 所指出的,读取时重复的键将被最后一个键覆盖,但使用 brackets[] 将在客户端通过将变量转换为数组来解决此问题。

就命名约定和最佳实践而言,没有太多空间。建议您坚持使用 A-Z a-z 0-9、破折号和下划线。尽管 Ajay 已建议为方便起见使用数据库列名作为表单输入名称,但许多人会告诉您,将有关数据库的信息公开给公众是不好的做法。我认为 invertedlambda 可能是最接近问题的答案,而 Tadeck 是最接近最佳实践的答案。

关于 HTML“名称”属性:http://www.w3.org/TR/html4/types.html#h-6.2

ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").

也许有人可以启发我上面的文件是规则还是建议,我绝不是这方面的专家。在实践中,我似乎没有违反其中一些规则的问题。我也没有问题将此示例文档验证为 XHTML strict:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
</head>
<body>
<div><form action="" method="post">
<div>
<input name="♠♣♥♦" />
<input name="''''" />
<input name=")(&amp;#$)%#$%" />
</div>
</form>
</div>
</body>
</html>

将其粘贴到 the validator 中,它会通过。


要添加的另一个最佳实践:让您的表单输入名称或获取/发布键有意义,当然与所有其他命名约定一样。不要使用 input1$_GET['param']。使用描述含义的名称,例如 last_name$_GET['sort_order']

关于html - 命名 POST/GET 变量的规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5943957/

相关文章:

html - 什么时候为 css 使用 div#idname 或 #idname

function - innerHTML 调用以接收 url

javascript - 用替代内容(HTML + CSS + JS)替换整个网页

objective-c - 使用 Json 在 Objective C 中发布数据

java - 在 Netty 中发送 HTTP Post 请求

javascript - 将值从一个字段传递到另一个字段

php - 检测 Ajax 调用 URL

javascript - 如何使用 CSS 动画淡出 div 幻灯片?

安卓8 : Cleartext HTTP traffic not permitted

Symfony HTTP Cache-Control header 覆盖