带有HTTP1.1的SQL插入

时间:2015-04-21 18:02:46

标签: php mysql

很抱歉有一个业余问题,但我不知道为什么这不起作用。 我有一个" add.php"连接到SQL服务器

<?php
    include("connect.php");

    $link=Connection();

    $ID1=$_POST["ID1"];
    $ID2=$_POST["ID2"];
    $ID3=$_POST["ID3"];
    $ID4=$_POST["ID4"];
    $ID5=$_POST["ID5"];

    $query = "INSERT INTO Battery (ID01, ID02, ID03, ID04, ID05) 
        VALUES ('".$ID1."','".$ID2.",'".$ID3.",'".$ID4."','".$ID5."')"; 

    mysql_query($query,$link);
    mysql_close($link);

    header("Location: index.php");
?>

我使用简单的HTTP 1.1协议

GET /add.php?ID1=1int&ID2=2char&ID3=3char&ID4=4int&ID5=2015-04-13 01:00:00 HTTP/1.1\r\myhost\r\nContent-Type: application/x-www-form-urlencoded\r\nConnection:close\r\n\r\n\r\n

主人告诉我这个错误:

+IPD,168:<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>hosting</center>
</body>
</html>

如果有人对我的尝试有任何想法,我将不胜感激!我真的很无能......

1 个答案:

答案 0 :(得分:-1)

这里PHP代码在您进行GET调用时处理POST请求。尝试将$ _POST更改为$ _GET,如下所示:

<?php
    include("connect.php");

    $link=Connection();

    $ID1=$_GET["ID1"];
    $ID2=$_GET["ID2"];
    $ID3=$_GET["ID3"];
    $ID4=$_GET["ID4"];
    $ID5=$_GET["ID5"];

    $query = "INSERT INTO Battery (ID01, ID02, ID03, ID04, ID05) 
            VALUES ('".$ID1."','".$ID2.",'".$ID3.",'".$ID4."','".$ID5."')"; 

    mysql_query($query,$link);
    mysql_close($link);

    header("Location: index.php");
?>

如果您不想更改PHP代码,请对该文件发出POST请求。

修改:

抱歉,我刚看到您正在使用POST请求。 Content-Type: application/x-www-form-urlencodedPOST /cgi-bin/process.cgi HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) Host: www.domain.com/add.php Content-Type: text/xml; charset=utf-8 Content-Length: <!-- The Content Length --> Accept-Language: en-us Accept-Encoding: gzip, deflate <!-- optional --> Connection: Keep-Alive <?xml version="1.0" encoding="utf-8"?> <DATA> <ID>ID01</ID> <ID>ID02</ID> <ID>ID03</ID> <ID>ID04</ID> <ID>ID05</ID> </DATA> 。我仍然会保留上述内容。

请参阅 this answer

尝试通过XML通过HTTP请求传递数据,它将更加结构化和易于管理。

POST方法

当您想要向服务器发送一些数据时使用POST方法,例如,文件更新,表单数据等。以下示例使用POST方法将表单数据发送到服务器,这将是由process.cgi处理,最后将返回响应:

{{1}}

您可能需要根据数据的需要或格式更改XML。

如需了解更多信息,请参阅LinkALinkBLinkC

希望这有助于......