1

私はhtmlフォームを持っており、そのフォームがある同じページでそのフォームを送信し、POST変数を追加してから、すべての変数が次のページに渡される必要があります。私はこれを試しました:

     <form method="POST" action="">
        <input type="TEXT" name="names" />
        <input type="TEXT" name="email" />
        <input type="submit" name="send" />
     </form>

そして、このPHPコード:

if($_POST['send']){

    $_POST['digest'] = "someText here";
    header("HTTP/1.0 307 Temporary redirect");
    header("Location:https://nextpage.com/form");

}

しかし、別のページにリダイレクトされると、「$_POST['digest']」を除くすべての POST データが送信されます..どうすればよいですか?

下手な英語で申し訳ありません。

4

3 に答える 3

2

PHPのヘッダー機能を使用している場合、変数をPOST経由で再送信することはできません。

ここには2つの選択肢があります:

  1. $_POST を $_GET に変換します (例: http_build_query)
  2. このデータを POST として送信する必要がある場合は、input type="hidden" のフォームを含む空白のページを作成し、javascript で送信するだけです。少し醜いですが、動作するはずです。
于 2013-04-08T18:50:08.400 に答える
2

リダイレクト先の URL のクエリ文字列で変数を渡す必要があります。

http://www.php.net/manual/en/function.http-build-query.phpを参照してください。

于 2013-04-08T18:48:59.107 に答える
2

これには cURL を使用する必要があります。

    $fields_string = "name=".$_POST['name']."&email=.$_POST['email'];
    $url = "the website you want to post to";
    $cx = curl_init();
        curl_setopt($cx, CURLOPT_URL,$url);
        curl_setopt($cx, CURLOPT_POST, true);
        curl_setopt($cx, CURLOPT_POSTFIELDS,$fields_string);
        curl_setopt($cx, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($cx, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($cx, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($cx, CURLOPT_FOLLOWLOCATION, FALSE);
    $init_response = curl_exec($cx);
    curl_close($cx);

http://php.net/manual/en/book.curl.php

于 2013-04-08T18:51:29.040 に答える