尽管有Http 200消息

时间:2017-09-09 18:59:13

标签: php json post request

这个问题现在困扰我一整天,我不知道如何解决它。 我想简单地使用JSON将数据传递到服务器端运行php脚本。 Firebug告诉我请求通过,甚至正确地显示"参数中的有效负载"部分,但我的PHP脚本不会收到任何数据。

我在$ _POST和$ _REQUEST上尝试了var_dump,两者都导致"数组(0){}" - 显示。试图读出整个原始数据流(file_get_contents(' php:// input'))生成的' string(0)"" '结果是。

我已经检查了我的php.ini文件,最多上传大小为128M,变量顺序为" GPCS",请求顺序设置为" GP"。 allow_url_fopen和allow_url_include也都设置为ON。

这是JSON的符号 - 我尝试通过的对象数组:

  

[{"而purchaseDate":" 2017年9月9日"" itemCategory":"自动"" ITEMPRICE& #34;:" 229.00"" ITEMNAME":"轮胎"},{"而purchaseDate":" 2017-09 -09"" itemCategory":" Lebensstil"" ITEMPRICE":" 30.45"" ITEMNAME&#34 ;:"食物"}]

它基本上是一个JavaScript - 包含JSON的对象 - 对象。

这是我的HTML表单代码:



<form name = "add_new_item" method = "post">

    <?php $purchasedate = date("Y-m-d"); ?>

	<input type = "hidden" id = "item_purchase_date" value = "<?php echo $purchasedate; ?>" />

	<table>
		<tr>
			<td><?php echo date("d.m.Y");?></td>
		</tr>

		<tr>
			<td>Art der Ausgabe</td>

		</tr>

		<tr>

			<td><input type = "radio" name = "item_category" value = "Lebensmittel" checked = "checked"/>Lebensmittel</td>
			<td><input type = "radio" name = "item_category" value = "Lebensstil"/>Lebensstil</td>
			<td><input type = "radio" name = "item_category" value = "Auto"/>Auto</td>
			<td><input type = "radio" name = "item_category" value = "Haushalt"/>Haushalt</td>
			<td><input type = "radio" name = "item_category" value = "Musik"/>Musik</td>
			<td><input type = "radio" name = "item_category" value = "Büro"/>Büro</td>
			<td><input type = "radio" name = "item_category" value = "Behoerde"/>Behörde</td>

		</tr>

		<tr>

			<td>Rechnungsbetrag: </td>
			<td><input id = "item_price"/></td>

		</tr>

		<tr>

			<td>Artikelbezeichnung: </td>
			<td><input id = "item_name" /></td>

		</tr>

		<tr>

			<td><p id = "new_item">Weitere Posten</td>
			<td><p id = "close_form">Posten speichern und Ende</td>

		</tr>
	</table>
</form>
&#13;
&#13;
&#13;

这是用于创建对象数组的JS / Jquery代码:

&#13;
&#13;
var myObjectArray = []; 
	 	
	$("#new_item").click (function () {

		var ipd = $("#item_purchase_date").val(); 
		var ict = $("input[name='item_category']:checked").val(); 
		var ipr = $("#item_price").val(); 
		var ina = $("#item_name").val(); 
		
		var $basketItem = $("<div></div>").text(ipd + " | " + ict + " | " + ipr + " € | " + ina); 
		
		$("#basket").append($basketItem); 

	// Objekte erzeugen und in Array schieben 
	
		var newDataObject = { "purchaseDate" : ipd, "itemCategory" : ict, "itemPrice" : ipr, "itemName" : ina }; 

	// console.log(newDataObject); 
		myObjectArray.push(newDataObject); 
		console.log(myObjectArray); 

	$("#add_new_item")[0].reset(); 
	}); 
&#13;
&#13;
&#13;

这是JSON代码段;你可以看到我使用&#34; application / x-www-form-urlencoded&#34;作为内容类型:

&#13;
&#13;
$("#close_form").click (function () {

			 $("add_new_item").submit(); 

		 	var exchangeArray = JSON.stringify(myObjectArray); 
			var xmlhttp = new XMLHttpRequest(); 
			xmlhttp.onreadystatechange = function () {
				
				if (this.readystate == 4 && this.status == 200) 
				{
					console.log(this.responseText); 
				}
			}

		 	xmlhttp.open("POST", "aserver.php", true);
			xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlhttp.send("objects=" + exchangeArray );	
		}); 
&#13;
&#13;
&#13;

这将是服务器端PHP脚本:

&#13;
&#13;
<?php
session_start(); 

echo json_last_error(); 

echo "<br>"; 

var_dump ($_POST["objects"]); 

echo "<br>"; 

print_r($_REQUEST);

echo "<br>"; 
print_r($_POST);

echo "<br>"; 

print_r($_FIL
		ES);
echo "<br>"; 

var_dump($_REQUEST); 

echo "<br>"; 

var_dump($_POST); 

echo "<br>"; 

$data = file_get_contents('php://input');

echo "<br>"; 


var_dump($data); 


?>
&#13;
&#13;
&#13;

请求标头数据:

  

主机
  本地主机   用户代理
  Mozilla / 5.0(X11; Ubuntu; Linu ......)Gecko / 20100101 Firefox / 55.0   接受
   /   接受语言   DE,的en-US; Q = 0.7,连接; Q = 0.3   接受编码   gzip,deflate   引荐   http://localhost/ausgaben/eintragneu.php   内容类型
  应用程序/ x-WWW窗体-urlencoded   内容长度
  197   饼干
  WP-设置时间-1 = 1498579548; ... 17792b1639a49e238c33ca199902a   连接
  保活

响应标头数据:

  

主机
  本地主机   用户代理
  Mozilla / 5.0(X11; Ubuntu; Linu ......)Gecko / 20100101 Firefox / 55.0   接受
   /   接受语言   DE,的en-US; Q = 0.7,连接; Q = 0.3   接受编码   gzip,deflate   引荐   http://localhost/ausgaben/eintragneu.php   内容类型
  应用程序/ x-WWW窗体-urlencoded   内容长度
  197   饼干
  WP-设置时间-1 = 1498579548; ... 17792b1639a49e238c33ca199902a   连接
  保活

...最后是PHP脚本显示的结果:

  

Blockquote 4注意:未定义索引:第10行/opt/lampp/htdocs/ausgaben/aserver.php中的对象NULL Array()Array()Array()array(0){} array(0){} string (0)&#34;&#34;

我还没有想到如何进一步尝试解决这个问题。任何帮助表示赞赏!谢谢你们和女孩们!

1 个答案:

答案 0 :(得分:0)

将此代码留在此处以供OP测试和比较,将删除。

=IF(AND((N2-M2)<20,(N2-M2)>0),"ASAP",IF(M2>L2,"On Track",IF(M2>N2,"Behind","Semi-behind")))