web服务器如何知道在提交表单时使用哪些参数?
how does web server know which parameters to use on submitting a form
当浏览器客户端调用forms.submit()时,它向服务器发送一个http post请求。
现在,表单中可能有多个键=>值对,所以我的问题是:服务器如何知道从请求字符串中使用哪对?
谢谢!
post请求不是以一般方式发送到服务器,而是专门发送到服务器上的一个.php(或.asp,或其他)文件。该文件应该包含以下代码:
-
验证所需密钥是否已收到
-
对每个键->值对执行基本验证
-
将任何用户提交的数据提交给各种安全功能,以防止SQL注入攻击等
-
继续使用已提交的键->值对。例如,它可能从一个名为
username
的键中获取值,从另一个名为password
的键中获取值,并使用它们来查询数据库,以查看是否应该向该用户显示下一页。
回答你的最后一个问题,服务器知道从请求字符串中使用哪对,因为程序员编写了系统的两边。因此,程序员必须小心匹配Username输入字段(在HTML中)的NAME元素,并在查找提交的用户名时从特定的键名中获取值。
也许举个例子会有帮助。
即兴的,未经测试的例子:
主页:index.php
<form id="myForm" action="dologin.php" method="POST">
Username: <br>
<input type="text" name="dausername"><br>
<br>
Password:<br>
<input type="text" name="yerpass">
<br>
<input type="submit" name="do_submit">
</form>
dologin.php页面:
$uname = $_POST['dausername'];
$pword = $_POST['yerpass'];
$uname = security_check($uname);
$pword = security_check($pword);
$q = "SELECT * FROM `users` WHERE `username` = '$uname'";
$result = mysql_query($q) or die(mysql_error());
$r = mysql_result($result, 0);
if (!empty($r)) {
//Now, check that the password matches
if ($pword == $r['password']) {
//The user has passed the security check (i.e. has "logged in") and can now see the secret stuff
echo 'Welcome to our Private Server<br />';
echo 'The pass code for our door is 4321';
}
}else{
echo 'Sorry, you must login first';
}
相关文章:
- 使用html表单中的参数调用JavaScript函数
- HTML页面如何提取通过表单传递的参数
- 如何在submit to sightly时将表单输入值作为参数传递给WCMUsePojo
- 在带有参数列表的表单submit上调用一个方法
- 如何使用angularjs服务将表单参数传递给Rest
- 如何使用JQueryUI滑块控制web音频API振荡器参数,而无需经过HTML表单参数
- 使用提交按钮参数自动提交表单
- 表单's自定义“;“多参数”;验证器并不总是启动
- 提交前筛选表单参数
- Rails3Ajax表单不发送参数
- 当表单控件选项具有多个参数时,如何在组合框中填充所选项目
- 将java脚本变量传递给相同的表单操作php文件参数
- 如何重用 ajax 表单加载函数打开多个选项卡,每个选项卡具有不同的参数
- jQuery:$.ajax() 重定向到其 URL 表单操作参数,而不是对表单操作执行 AJAX 请求
- 我的表单没有将参数存储在模型中
- 在表单提交时使用 URL 发送路由参数
- 在输入 HTML 表单上从 Java 脚本传递参数
- 使用 Ajax 发送的表单包含多参数和 A href
- 在 Sails.js 中重新排序文件上传的表单参数
- jQuery:从参数字符串设置表单状态