こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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つの文字列として一緒にわたしたいのですが、なにかよい方法はないでしょうか?

以上、よろしくお願いいたします。

投稿日時 - 2006-07-19 17:27:53

QNo.2285934

暇なときに回答ください

質問者が選んだベストアンサー

urlencodeして渡しましょう
$url="a.php?id=001&mod=view";
echo 'input.php?prm=015&return_url=' . urlencode($url);

投稿日時 - 2006-07-20 09:42:44

お礼

ご回答ありがとうございます。

解決しました!!

投稿日時 - 2006-07-21 02:33:50

ANo.3

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(3)

私もベーススクリプトにモジュールを読み込ませるようにして設計する事がたびたびあります。設計が楽ですよね。

でも、注意したい事として、ユーザーにどんなプログラムを組んでいるか分かりやすい事です。直たたきでセキュリティホールになりやすい、と言う事も念頭に入れておく必要があります。
例えばユーザ名が連番だったり、モジュールも番号だったりすると、実際にはアクセスさせたくない場所にアクセスできたりとか。。。

と、前置きはこの辺までにしておきまして(笑。
セッションを使うと言うも一つの解です。
仮に$_SESSION[tmp]に諸々の変数を登録するとして、例えば、return_urlとする代わりに

session_start();//セッション関数に登録しましょう$_SESSION[tmp][nowurl] = $_SERVER[PHP_SELF];//とりあえずPHP_SELFを入れたり
$_SESSION[tmp][get] = $_GET;//とりあえずGETで送られた変数を登録してしまえ

とかすれば、内部的に何をしているかをマスク出来ると思います。

投稿日時 - 2006-07-19 23:49:56

お礼

ご回答ありがとうございます。

今回は、No3の方の方法で解決できました。

機会があれば、セッションを使いたいと思います。

投稿日時 - 2006-07-21 02:33:14

ANo.1

変数名にかぶりがないのであれば
$_SERVER['QUERY_STRING']
でGET部を取得するのはいかがでしょうか。

"?id=001&mod=view&{$_SERVER['QUERY_STRING']}&"

のような形です。
ただし、$_SERVER['QUERY_STRING']をそのまま返すと
セキュリティホールになりえるので対策は必要です。

投稿日時 - 2006-07-19 18:39:19

お礼

ご回答ありがとうございます。

すみません、質問の意図が明確でなかったようです。

$_GETの値の取得の仕方ではなく、

"?","&","="等を含んだ文字列を
$_GETの1つの要素として引き渡すか
がわからなかったのです。

投稿日時 - 2006-07-21 02:31:08

あなたにオススメの質問