0

私は複数ページの Web サイトを持っています。プログラミングはまだ初心者ですが、HTML と CSS についてかなりのことを学びました。私の質問は:

フォーム送信ボタンでユーザーの入力データを取得し、オフライン中にコンピューターの .txt ファイルに送信するにはどうすればよいですか?

これは単純に、フォームをテストして、入力データを送信できることを確認するためです。このフォームはモデル アプリケーションであり、テキスト ボックス、ラジオ ボタン、選択リスト、パスワード、電子メールなどが含まれています。

現時点では、ソルトハッシュやセキュリティは必要ありません。オフラインでフォームをテストするだけです。ありがとう!

編集:送信ボタンが適切に設定されていますが、入力データはどこにも送信されません

4

1 に答える 1

2

オフラインの場合、コンピューターがデータを受信する方法はありません。

ただし、Web サイトがインターネット上の Web サーバー上にある場合は、後でアクセスできるように、データをサーバー上のテキスト ファイルに保存できます。

フォーム自体には、処理のためにデータを送信する場所をフォームに指示するアクション タグが必要です。その中にいくつかの重要なタグもあります。

<form method="post" action="http://www.yoursite.com/script-to-process-submission.php">
    One: <input type='text' name='inputbox1'/>
    Two: <input type='text' name='inputbox2'/>
</form>

すべての入力ボックスをフォーム タグ内に配置します。メソッドは、データが送信される方法である「get」または「post」にすることができます。get メソッドは、入力ボックスからのすべての応答が、次のようにアンパサンドで区切られた URL で送信されることを意味します。

http://www.yoursite.com/script-to-process-submission.php?inputbox1=what+the+user+entered&inputbox2=also+what+the+user+entered

ここでの問題は、長いフォームではすべてのデータが送信されない可能性があることです。多くの場合、サーバーはこの方法で送信できる入力の長さを制限しています。より長い形式は、"post" メソッドを使用する方が適しています。

フォームが送信され、データがサーバーに送信されたら、Perl や PHP などのサーバー側言語でスクリプトをセットアップする必要があります。PHP での例を次に示します。

<?php
$response = "";
foreach ($_POST as $key => $value){
    $response .= $key . " -> " . $value . "\n";
}
// now save to disk in a file called saved_response.txt
// the FILE_APPEND adds the form responses to the text file, and the LOCK_EX locks the file first
file_put_contents('saved_response.txt',$response,FILE_APPEND | LOCK_EX);
exit;

get メソッドを使用したい場合は、上記の $_POST を $_GET に変更してください。

重要な注意: 上記のコードにはクリーニングが含まれていないため、悪意のあるユーザーがサーバーに不正なデータを送信し、害を及ぼす可能性があります。次のような、提出されたテキストのある種のクリーニングを検討する必要があります。

$clean_value = preg_replace("/[^ 0-9a-zA-Z]/", "_", $value);

上記の $response.= 行の直前にこれを配置します。その役割は、数字と小文字/大文字のみを保持することです。

この php コードをプレーン テキスト ファイル 'script-to-process-submission.php' として保存し、フォームを試してください。

于 2013-10-09T15:30:32.333 に答える