13027
PHPでPOSTデータの送信の方法を探しています  
以下のようなコードであるページの中から、他のページを呼び出し遷移したく、  
その時にPOSTデータを送るためにfile_get_contents関数を呼んでいるのですが  
この関数だと、現在のページ内にjyusin.phpを読み込んでしまいます($htmlのあと、echo
$htmlとすれば一応狙った物は表示されるんですが・・・・)  
そうではなく、jyusin.phpへそのまま遷移してしまいたいです  
既存のアプリの改造のために、通常のようなformからsubmitするという方法が採れません

```

      <?php
      $postdata = array(
     "POST_USR" =>  "ABCDE",
     "POST_USRTYPE" => "EFGHI"
        );
        $postdata = http_build_query($postdata,"","&");
        // header
         $header = array(
             "Content-Type: application/x-www-form-urlencoded",
             "Content-Length: ".strlen($postdata));
       $context = array(
             "http" => array(
              "method"  => "POST",
              "header"  => implode("\r\n", $header),
              "content" => $postdata));
      $html = file_get_contents("../jyusin.php", false, stream_context_create($context)); 
     ?>
    
```

ちなみに以前はPOSTデータのやりとりは無く、

```

    <?php
    //セッションにいろいろ詰める・・・
    header('HTTP/1.1 301 Moved Permanently');
    header("location:../jyusin.php");
    ?>
    
```

というように、単純に遷移させていただけなのですが、これをなんとか、送信側のphpからjyusin.phpに対して遷移しつつPOSTデータを送りつけたいです
CC BY-SA 3.0
2015-08-04T10:04:01.910
13026
2015-08-04T10:48:20.327
10098
question
php
PHPでのPOSTデータの送信
そのPHPにPOSTされたものをそのまま別のURLにPOSTさせたいなら、307が使えるかもしれません。ChromeではPOSTの内容ごとリダイレクトしてくれました。

```

    <?php
    header('HTTP/1.1 307 Temporary Redirect');
    header('Location: ../jyusin.php');
    
```

[HTTPステータスコード – 302 Foundと303 See Otherと307 Temporary Redirectの違いについて |
cyano](http://www.onflow.jp/cyano/archives/161)

しかし、「任意のデータをPOSTしながらリダイレクトさせたい」のであれば、リクエストを変更している点でリダイレクトの範疇を超えていますし、自動で送信されるフォームを出力するぐらいしかないと思います。

```

    <form method="post" action="../jyusin.php">
        <input type="hidden" name="POST_USR" value="ABCDE" />
        <input type="hidden" name="POST_USRTYPE" value="EFGHI" />
    </form>
    <script>
    document.forms[0].submit();
    </script>
    
```
CC BY-SA 3.0
2015-08-04T10:48:20.327
13027
2015-08-04T10:48:20.327
8000
13026
answer