Javascript web服务器如何知道在提交表单时使用哪些参数

Javascript web服务器如何知道在提交表单时使用哪些参数,javascript,forms,submit,Javascript,Forms,Submit,当浏览器客户端调用forms.submit()时,它会向服务器发送http post请求 现在,表单中可能有多个key=>value对,所以我的问题是:服务器如何从请求字符串中知道要使用哪个对 谢谢 post请求不是以一般方式发送到服务器,而是专门发送到服务器上的一个.php(或.asp或etc)文件。此文件应包含以下代码: 验证是否已收到所需的密钥 对每个键->值对执行基本验证 将任何用户提交的数据提交到各种安全功能,以防止SQL注入攻击等 继续并使用提交的键->值对。例如,它可能从一个名为u

当浏览器客户端调用forms.submit()时,它会向服务器发送http post请求

现在,表单中可能有多个key=>value对,所以我的问题是:服务器如何从请求字符串中知道要使用哪个对


谢谢

post请求不是以一般方式发送到服务器,而是专门发送到服务器上的一个.php(或.asp或etc)文件。此文件应包含以下代码:

  • 验证是否已收到所需的密钥

  • 对每个键->值对执行基本验证

  • 将任何用户提交的数据提交到各种安全功能,以防止SQL注入攻击等

  • 继续并使用提交的键->值对。例如,它可能从一个名为
    username
    的键中获取值,并从另一个名为
    password
    的键中获取值,然后使用它们查询数据库,以查看是否应向该用户显示下一页

  • 为了回答您的最后一个问题,服务器从请求字符串中知道要使用哪些对,因为程序员编写了系统的两面。因此,程序员必须小心地匹配用户名输入字段(在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';
    }
    
    $uname=$\u POST['dauser name'];
    $pword=$_POST['yerpass'];
    $uname=安全检查($uname);
    $pword=安全检查($pword);
    $q=“从`username`='$uname'”中选择*;
    $result=mysql\u query($q)或die(mysql\u error());
    $r=mysql\u结果($result,0);
    如果(!空($r)){
    //现在,检查密码是否匹配
    如果($pword==$r['password']){
    //用户已通过安全检查(即已“登录”),现在可以查看机密内容
    echo“欢迎使用我们的专用服务器
    ”; echo‘我们门的密码是4321’; } }否则{ echo“对不起,您必须先登录”; }
    它发送每个具有
    名称
    属性(不包括按钮)的输入,并发送相应的
    或值。它只发送已单击的按钮,前提是单击了按钮+读取表单元素本身的操作属性。此外,它还跳过
    已禁用的
    属性为
    true
    的表单元素。还有,为什么您认为服务器只对一个键/值对感兴趣?表单字段放在表单中是因为服务器需要所有这些字段。您如何知道OP正在运行PHP?也许它是一个Rails服务器,或者是其他1000种可能性中的任何一种。没错,但我相信OP会理解,这是一个php特定的示例,回答了他一般的、非代码特定的问题。