PHPでは、リダイレクトする際にPOSTでデータ送信はできない。
他の言語でできるのかは知らない。
OpenIDConnectを使った認証で最後に外部サイトへリダイレクトする仕様があり、その際にいくつかのデータ送信が必要なため調べたが、できないって。

なので単純にJavascriptでForm Submitするしかないっぽい。

CodeIgniterを使ってるんで、とりあえずビューを作成。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="robots" content="noindex,nofollow">
</head>
<body>
    <form id="form1" name="form1" method="post" action="[外部サイトのURL]" >
        <input type="hidden" name="input1" value="value01">
        <input type="hidden" name="input2" value="value02">
    </form>
    <script src="<?php echo base_url();?>js/jquery.js"></script>
    <script src="<?php echo base_url();?>js/submit.js"></script>
</body>
</html>

input要素は、全てhiddenにし、ビューが出力される際に何も表示されないようにしている。

$(function(){
    $(document).ready(function(){
        $('#form1').submit();
    });
});

Javascriptもインラインは禁止なんで外部ファイル化が必要なんでjqueryにしたが
ただ、これ、一瞬真っ白ページが表示されるんだよなぁ。
いいのか、これで・・・
他になんかあればなぁ

カテゴリー: PHP