0

見つけた情報が役に立たなかったか、読んでいるものを理解できませんでした。

POST 要求が特定の場所 (URL) に対して行われ、応答は、ドメインに存在する、指定する必要がある URL に返されます。(例www.mysite.org/answers/answer.php)

その場所に送信されているすべての情報を抽出するには、どうすればよいですか?

現在、フォーム (POST 経由で送信された) がユーザーによって送信された後、フォームページからリダイレクトしてanswer.phpいますif isset($_POST["submit"])が、それは私に何も与えていません。

さらに、多くのユーザーがリクエストを行っている場合、各ユーザーが自分の回答ページにリダイレクトされるようにするには、どの URL を使用すればよいでしょうか?

4

4 に答える 4

0

ある種のストレージ メカニズム (セッション、データベースなど) とトークン (セッション ID、プライマリ キーなど) が必要です。

  1. ユーザーがデータを送信したときに Web サイトでトークンを生成します (たとえば、セッション ID を使用します)。
  2. 送信されたデータとともに、このトークンを他の Web サイトに送信します。
  3. ユーザーを待機中のページに送ります (以下を参照)。
  4. 他の Web サイトは、(うまくいけば) 応答データと共にトークンを応答スクリプトにエコー バックします。
  5. 応答スクリプトで、トークンを使用して応答をストレージに保存します (たとえば、session_id(token) 関数を使用してユーザー セッションを読み込み、セッション変数を設定します)。
  6. 待機ページで、ストレージを継続的にポーリングして、応答が到着したかどうかを確認します。10 秒ごとにページを更新するメタ更新タグを使用できます。
于 2012-12-27T15:24:49.880 に答える
0

「送信」はおそらく送信ボタンの名前ですか?この値は、フォームが実際にボタンを介して送信された場合にのみ、リクエストに存在します。クリックされたボタンの名前のみが投稿データに存在する場合は、複数のボタンを使用できます。

さらに、ユーザーが最後の入力フィールドが選択されているときに Enter キーを押して送信すると、フォームも送信されますが、ボタンは押されていません。この場合、送信ボタンの名前は $_POST (または $_REQUEST) ではまったく使用できません。

簡単に言えば、ボタンの名前をチェックしないでください。利用可能なフィールド データを確認するだけです。必要に応じて、投稿データをループできます。

foreach ($_POST as $postkey => $postdata)
{
  // $postkey contains the key
  // $postdata contains the value
  // any code here is repeated for every posted value.
}

または、テストしている限り:

var_dump($_POST);
于 2012-12-27T14:29:50.167 に答える
-1

Postは$_REQUESTを使用する代わりに、PostとGetの両方で機能します

于 2012-12-27T14:20:16.227 に答える
-1

HTML フォームに次のようなものを追加します。

 <form action="answer.php" method="post">
 <input type="hidden" name="submitted" value="true" />

次にanswer.phpで

 <?php
 if (isset($_POST['submitted'])) {
   print_r($_POST);
 }
 ?>
于 2012-12-27T14:33:15.970 に答える