スレッド表示 | フラット表示〕 全トピック 920 件中 437 番目 次≫ ≪前

GETデータのマスク方法

created: 2005-05-19 12:59 | modified: 2005-05-26 20:36 | reply: 5

[2269] GETデータのマスク方法

user: やす | created: 2005-05-19 12:59
初めて投稿させていただきます。
いつも眺めながら参考にさせていただいています。
今回の質問は以下の通りです。
PHPファイルへGETでデータを送信する場合○○.php?name1=value1&name2=value2&・・・と送信されるのを
○○○.phpで送信するよい方法があれば教えていただきたいと思います。

1つの方法としてcookieへデータを書き込んでからphpファイルを開いて読み込むという方法を考えてみました。

他に何かいいアイデアもしくは上記の方法での問題点があれば教えてください。

ちなみにformを使わずに<a href = ○○.php?name=value>リンク</a>でリンクを張っています。

よろしくお願いします。
reply: 2270 返信 編集 削除

[2270] Re. GETデータのマスク方法

user: ゆうじ | created: 2005-05-20 10:01
こんにちは。

GETメソッドで送信する以上
クッキーでもセッションでも書き込むために、必ず一度は
ファイル名の後にパラメータを付けて送信しなければなりませんよね。

ファイル名の後のURLパラメータを
いつまでもブラウザのアドレス欄に表示させておきたくないということなら
一旦パラメータ付きで送信後、値をセッションに保存してから
希望のURLにリダイレクトするのがスマートだと思います。

しかし、
<a href = ○○.php?name=value>リンク</a>
このリンク部がブラウザに送信されてる時点で
URLパラメータを隠す意味がない気もします。

URLパラメータを隠す目的をお知らせいただいたほうが
別な観点から考えられるかもしれませんね。
Parent: 2269  reply: 2271 返信 編集 削除

[2271] ありがとうございます。

user: やす | created: 2005-05-22 22:50
ありがとうございます。
確かにURLをブラウザのアドレス欄から隠してもリンク元で表示されてしまってますね。ご指摘の通り、URLパラメータ自体を隠す方法があれば知りたいと思っています。質問の仕方が悪くてすみません。
以下の要件を満たすようにURLパラメータを隠す方法があれば教えてください。?
DB(mysql)の構造(例)
-------------------
name   ID  ○○
-------------------
A    001  △△
B    002  □□

2.上記のDBの一覧を作成する。
A <a href = ○○.php?ID=001>詳細</a>
B <a href = ○○.php?ID=002>詳細</a>

3.○○.phpでDBからIDと一致するものを検索し、詳細データを作成。

※ただし、IDだけではなく、複数のパラメータを一緒に送信しています。

上記が概要です。説明が下手ですみません。
よろしくお願いします。
Parent: 2270  reply: 2272 返信 編集 削除

[2272] javascriptでsubmit

user: | created: 2005-05-23 10:04
こんにちは。

「なぜURLパラメータを隠したいのか」という意図はよく分からないのですが、
とりあえず、『フォームの送信はリンクテキストのクリックで行いたいが、
GETでパラメータを渡したくない』という風に解釈してみます。

私の場合、そういう時はjavascriptで隠しフォームをsubmitするようにしています。

<script type="text/javascript">
function formSubmit(val1,val2,val3){
document.form1.key1.value=val1;
document.form1.key2.value=val2;
document.form1.key3.value=val3;

document.form1.submit();
}
</script>

<form action="test.php" method="POST" name="form1">
<input type="hidden" name="key1">
<input type="hidden" name="key2">
<input type="hidden" name="key3">
</form>

データベースのページは<a href="#" onclick="javascript:formSubmit('値その1','値その2','値その3');">こちらをクリックして下さい。</a>

といった感じです。
ただ、お察しの通り、この方法はjavascriptを無効にしているユーザだと
機能しません。


やすさんの意図に見合っているかどうか分かりませんが、参考になれば。
Parent: 2271  reply: 2273 返信 編集 削除

[2273] PATH_INFOを使用した例

user: シロウ | created: 2005-05-26 00:23
割り込みですみません。

test.php
<?php
function param_decode(){
$path_info = empty($_SERVER['PATH_INFO'])?'':$_SERVER['PATH_INFO'];

$args = pathinfo($path_info);
$param = empty($args['basename']) ? '':$args['basename'];
$param = base64_decode($param);
$params = explode('-',$param);

return $params;
}

function param_encode($params){
$param = implode('-',$params);
$param = base64_encode($param);
$param = urlencode($param);

return $param;
}

$params = param_decode();
print_r($params);

$params = array(
'id'=>1,
'name'=>'fox'
);
$param = param_encode($params);
?>
<a href="http://localhost/test.php/<?php echo $param; ?>">リンク</a>

最近、頻繁に'PATH_INFO'を使っています。
これを使う場合は絶対パスで管理するのが使いやすいです。

Apachを設定しないと機能しないかもしれません。

最近、ワンクリック詐欺とかで引数にメールアドレスを
独自のエンコードで隠してあるのがありますね。
(実際引っかかりましたorz)

http://jp2.php.net/manual/ja/function.base64-encode.php
http://jp2.php.net/manual/ja/function.pathinfo.php
Parent: 2272  reply: 2276 返信 編集 削除

[2276] ありがとうございました。

user: やす | created: 2005-05-26 20:36
シロウさんのレスとても参考になりました。
まさに求めていたものです。
PATH_INFOを使えばよかったのですね。
ありがとうございました。
Parent: 2273  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 437 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑