- ベストアンサー
GETでの変数の受け渡しについて
PHP+MYSQLでサイトを作っているのですが、 よい方法が思い浮かばないので、助けてください。 トップページ以外は、 a.php?id=001&mod=view ・・・・・(1) のようにして表示させています。 (1)のページを見ていて、入力画面に入り、入力後に(1)のページにもどるような設定にしたいと思っています。 入力画面でも input.php?prm=015&return_url=a.php"・・・・・(2) のように$_GETを使ってフローを制御するようにしています。 このとき、(2)のように戻り先をa.phpまでは指定できるのですが、(1)の?id=001&mod=viewの部分を1つの文字列として一緒にわたしたいのですが、なにかよい方法はないでしょうか? 以上、よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
urlencodeして渡しましょう $url="a.php?id=001&mod=view"; echo 'input.php?prm=015&return_url=' . urlencode($url);
その他の回答 (2)
- taketan_mydns_jp
- ベストアンサー率58% (450/773)
私もベーススクリプトにモジュールを読み込ませるようにして設計する事がたびたびあります。設計が楽ですよね。 でも、注意したい事として、ユーザーにどんなプログラムを組んでいるか分かりやすい事です。直たたきでセキュリティホールになりやすい、と言う事も念頭に入れておく必要があります。 例えばユーザ名が連番だったり、モジュールも番号だったりすると、実際にはアクセスさせたくない場所にアクセスできたりとか。。。 と、前置きはこの辺までにしておきまして(笑。 セッションを使うと言うも一つの解です。 仮に$_SESSION[tmp]に諸々の変数を登録するとして、例えば、return_urlとする代わりに session_start();//セッション関数に登録しましょう$_SESSION[tmp][nowurl] = $_SERVER[PHP_SELF];//とりあえずPHP_SELFを入れたり $_SESSION[tmp][get] = $_GET;//とりあえずGETで送られた変数を登録してしまえ とかすれば、内部的に何をしているかをマスク出来ると思います。
お礼
ご回答ありがとうございます。 今回は、No3の方の方法で解決できました。 機会があれば、セッションを使いたいと思います。
- papillon68
- ベストアンサー率61% (42/68)
変数名にかぶりがないのであれば $_SERVER['QUERY_STRING'] でGET部を取得するのはいかがでしょうか。 "?id=001&mod=view&{$_SERVER['QUERY_STRING']}&" のような形です。 ただし、$_SERVER['QUERY_STRING']をそのまま返すと セキュリティホールになりえるので対策は必要です。
お礼
ご回答ありがとうございます。 すみません、質問の意図が明確でなかったようです。 $_GETの値の取得の仕方ではなく、 "?","&","="等を含んだ文字列を $_GETの1つの要素として引き渡すか がわからなかったのです。
お礼
ご回答ありがとうございます。 解決しました!!