2012-01-14 7 views
1

テキストボックスを作成しましたが、このデータをテキストファイルに書き込もうとしています。 PHPコードがファイルを生成していますが、データが書き込まれていません。以下 は私のコードです:テキストボックスからテキストファイルにデータを書き込む

<html> 
<body> 
<form name="form" method="post"> 
<input type="text" name="text_box" size="50"/> 
<input type="submit" id="search-submit" value="submit" /> 
<? 
[email protected]$_POST["text_box"]; 
$myFile = "t.txt"; 
$fh = fopen($myFile, 'w') or die("can't open file"); 
fwrite($fh,$a); 
fclose($fh); 
?> 

答えて

1

フォームの送信アクションは「取得」ですが、PHPコードでは$ _POSTで変数を取得します。代わりに$ _GETを試してみてください。

+0

助けになりませんでしたか? – Pink

0

$aのデータがありますか? 「echo」を試してみてください。または$_POSTprint_rに送信してみてください。

編集:フォームの方法はgetですが、$_POSTを使用しようとしています。 $_GETまたは$_REQUESTを使用してください。

1

フォームはGET要求を送信していますが、$_POST["text_box"]にアクセスしようとしています。これを$_GET['text_box']に変更するか、代わりにフォームメソッドPOSTを使用してみてください。

+0

は、私はそれを変更し、両方の「取得」と「ポスト」が、それでも私は$ _REQUESTしようとしたファイル – Pink

1

あなただけであなたのPHPコードを置き換えることができます。

フォームが表示されていないときにも、フォームが実際に送信されたときにのみ、上書きされ、そのファイルを保証します
if ($_REQUEST) { 
    file_put_contents("t.txt", $_REQUEST["text_box"]); 
} 

+0

に書くことができるが、それはまだ、テキストファイル – Pink

+0

有効のerror_reportingに書き込めません。 。 – mario

+0

有効になっていてもエラーは発生しません – Pink

3

あなたのコードで見られる最大の問題は、あなたがphpタグを開いていないという事実です。あなたは

<? 

を行うが、それはあなたが$ _POSTを呼び出し、ファイルやものを書く方法は、あなたが最初にもブラウザにフォームをロードするときに実行されることを意味し、その後、

<?php 

でなければなりません。 PHPエンジンは最初の実行と連続した実行を区別しません。これは、ユーザーが何も提出しなくても、フォームが表示されたスクリプトの実行から作成された空のファイルが残ることを意味します。それは副作用です。あなたのコードをちょっと修正しました。ここでは、この上の私の感想です:

<html> 
    <body> 
     <form name="form" method="post"> 
      <input type="text" name="text_box" size="50"/> 
      <input type="submit" id="search-submit" value="submit" /> 
     </form> 
    </body> 
</html> 
<?php 
    if(isset($_POST['text_box'])) { //only do file operations when appropriate 
     $a = $_POST['text_box']; 
     $myFile = "t.txt"; 
     $fh = fopen($myFile, 'w') or die("can't open file"); 
     fwrite($fh, $a); 
     fclose($fh); 
    } 
?> 
+0

私は上記のコードを使用していますが、それでも何もしないし、さらにファイルt.txtも作成されません。 – Pink

+0

@Pink very strange。そのコードは私のWAMPの32ビットWindows XPで動作します。あなたのセットアップは何ですか?おそらくファイルのパーミッションエラーのように聞こえます。 – davogotland

+0

私はwampまたはxamppを使用せず、64ビットのWindows 7でこのスクリプトを実行しています。私はファイルパーミッションの手がかりがありません – Pink

関連する問題