3

SOの最初の質問!

Apache 2.2.22 で PHP 5.3.10 を実行しています。私はこれをやっているだけです:

<html>
<body>
<?php
file_put_contents('php://stderr', print_r($_SERVER, TRUE));
?>
</body>
</html>

Apache の error.log の出力は次のようになります。

Array
(
[HTTP_HOST] => dns1
[PATH] => /usr/local/bin:/usr/bin:/bin
[SERVER_SIGNATURE] => <address>Apache/2.2.22 (Ubuntu) Server at dns1 Port 80</address>

[SERVER_SOFTWARE] => Apache/2.2.22 (Ubuntu)
[SERVER_NAME] => dns1
[SERVER_ADDR] => 192.168.2.6
[SERVER_PORT] => 80
[REMOTE_ADDR] => 98.210.76.128
[DOCUMENT_ROOT] => /var/www
[SERVER_ADMIN] => webmaster@localhost
[SCRIPT_FILENAME] => /var/www/rcv.php
[REMOTE_PORT] => 51164
[GATEWAY_INTERFACE] => CGI/1.1
R5 HTTP/1.0_PROTOCOL] => R5000
[REQUEST_METHOD] => GET
[QUERY_STRING] => UID=3333&DATA=R5000
[REQUEST_URI] => /rcv.php/?UID=3333&DATA=R5000
[SCRIPT_NAME] => /rcv.php
[PATH_INFO] => /
[PATH_TRANSLATED] => /var/www/index.html
[PHP_SELF] => /rcv.php/
[REQUEST_TIME] => 1369084575
)

着信 http 要求の形式は次のとおりです: (apache の access.log からのスニペット)

98.210.76.128 - - [20/May/2013:13:21:10 -0700] "GET /rcv.php/?UID=3333&DATA=R5000\rR5000\rR5000\rR5000\rR5000\rR5000\rR5000\rR5000\rR5000\ rR5000\rR5000\rR5000\rR5000\rR5000\rR5000\rR5000\rR5000\rR5000\rR5000\rR5000

(これは一連のセンサー読み取り値です。この場合、それらはすべて「R5000」です。)

[QUERY_STRING][REQUEST_URI]が最初のキャリッジ リターン (\r) で切り捨てられたように見えるため、残りのセンサーの読み取り値が失われます。これは、$_GET 値を見ると確認できます。DATA フィールドにはセンサーの読み取り値が 1 つしかありません。

これを回避したり、この動作を変更するにはどうすればよいですか?

4

2 に答える 2