header関数で移動する際にGETメソッドでデータも追加してジャンプする方法

headerではジャンプする方法は前回紹介しましたが、ページをジャンプさせる時にURLの後に「?」以降に「連想配列キー名=データ」を書く事で
GETメソッドでデータを送る事が出来ます。

2つ目以降のデータを送信するには「&」で繋げば可能です。

このデータが半角のアルファベットと数字だけなら、このままでも可能ですが、それ以外があると文字化けしてしまいます。



GETメソッドで文字化けしないようにする方法

今回は文字を文字化けしないように加工するphp関数を紹介します。

■urlencode(元の文字列);


文字化けしないように加工された変数が返り値になります。

例1:test_1.php

<?php
     $txt="あいうえお";
     $data1=urlencode($txt);

     $data2=urlencode("ABCD");

     $data3=123456;

     header("location: test_2.php?A=".$data1."&B=".$data2."&C=".$data3."&D=".urlencode("かきくけこ"));
?>


例2:test_2.php

<?php
print $_GET["A"];
print "<br>";
print $_GET["B"];
print "<br>";
print $_GET["C"];
print "<br>";
print $_GET["D"];
?>


このサンプルはurlencode()への値の入れ方の例です。
文字列を入れた変数を入れても良いし、直接文字列を入れてもかまいませんし、返り値を直接header()のパラメータに入れる事もできます。

test_1.phpを実行するとtest_2.phpへ即ジャンプし

あいうえお
ABCD
123456
かきくけこ

と表示されます。

この仕組みを使えば、どんなエラーが起こったか等のメッセージを、フォームのページで表示させフォームの項目の修正を促す事ができます。

しかしheader()関数を実行したら即ジャンプする訳ではありません。
次回は即ジャンプできるようにする方法を紹介します。

スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする

関連記事



スポンサーリンク