很抱歉有一个业余问题,但我不知道为什么这不起作用。 我有一个" 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>
如果有人对我的尝试有任何想法,我将不胜感激!我真的很无能......
答案 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-urlencoded
。POST /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。
希望这有助于......