Dreamweaver

DreamweaverでPHP/詳細ページの表示

更新日:

久しぶりのDreamweaverでPHPのコーナーです。

Kazu様よりのご質問で、検索結果のページから詳細ページへの移動方法を尋ねられましたので、今回は、その方法をご紹介したいと思います。

一覧ページから詳細ページへの移動方法は既にご紹介済みと思っていましたが、ご紹介していたのは、マスター詳細ページセットによる作成方法でした。マスター詳細ページセットを利用すれば、マスターページ(一覧ページ)と詳細ページを同時に作成できますが、今回のように自分の好きなページから詳細ページへの移動方法は、ご紹介していなかったかもしれません。

それでは、『DreamweaverでPHP 検索ページ作成3』の続きとして、作成します。まず、新規作成でページを作成し、『DVD_detail.php』ファイル名でいったん保存します。空白だとわかりづらいので、『DVD詳細ページ』と文字を入力していて下さい。

一番簡単なデータの受け渡しはGETで値を渡すことです。但し、GETでデータを渡すとセキュリティがかなり甘くなりますので、注意して下さい。GETでの値の渡し方と何故、GETでは、セキュリティが甘くなるのかを見てみたいと思います。それでは、『DVD_search_and_result.php』ファイルを開き、検索窓に『愛』と入力して、『検索』ボタンをクリックしてみました。

さて、何か気づきましたでしょうか。そうです、ブラウザのアドレスバーがヒントです。『DVD_search_and_result.php』のあとに、『?Title=愛&button=検索』となっているのにお気づきになったでしょうか。この検索ページもGETで作成しています。GETでの値は、アドレスに続く、『?』移行にデータを渡しているのです。試しにアドレスバーに直接入力してみます。愛の代わりに『悪魔』と入力してみます。すると、悪魔という文字を含んだデータの一覧が表示されました。

つまり、GETで値を渡してページを表示する場合、非常に危険が伴うということを理解した上で利用して下さい。とりわけID番号などは、数字ですので、アドレスバーから入力したランダムな数字が、たまたまマッチする可能性は十分にあります。ですので、会員サイト等は、必ず、全ページでユーザー認証を行うようにして下さい。

前置きが長くなりましたが、GETでのデータの渡し方の説明に移ります。

まず、『DVD_search_and_result.php』ファイルを開き、IDのデータをクリックし、プロパティのリンクの横のアイコンをドラッグして、『DVD_detail.php』ファイルを選択します。

これで、『DVD_search_and_result.php』ファイルから、『DVD_detail.php』ファイルへのリンクは作成されました。このままデザイン画面で設定できればいいのですが、これから先は、コード画面で設定しますので、コード画面を開いて下さい。

まず、『<a href="DVD_detail.php">』の『php』の後ろに『?ID=』と入力します。次に、バインディングのレコードセットから、IDを『?ID=』の後ろにドラッグします。

下図のようになります。

他の値も渡したい場合は、『&』に続けてGETに指定する名前(任意)『=』で同じようにドラッグして下さい。たとえば、『&Title=』と入力後、バインディングのレコードセットから『Title』をドラッグします。

これで、『DVD_detail.php』のファイルにGETデータを渡すことができました。それでは、その渡されたデータを取得する方法を説明します。

『DVD_detail.php』ファイルを開き、『バインディング』→『+』→『レコードセット(クエリー)』をクリックします。

フィルターを『ID』『=』『URLパラメータ』『ID』と指定します。これは、GETで送られてきたIDの値をデータベースのIDと一致するデータを抽出するということです。『URLパラメータ』以外に『フォーム変数(POSTで送られてきたデータ)』『COOKIE』『セッション変数』『サーバー変数』『入力値』と選択することができます。これらの使い方はいずれ説明する機会があると思います。

『OK』ボタンをクリックするとレコードセットが自動生成されます。

デザイン画面に戻って、一般タブのテーブルで4行2列のテーブルを作成します。『ID』『タイトル』『日付』『内容』と入力したら、バインディングのレコードセットからそれぞれの箇所へドラッグします。

これで、完成です。ブラウザで確認してみます。検索ページからIDの数字をクリックしてみます。

詳細ページが表示されました。尚、お分かりだとは思いますが、何も律儀にIDの箇所にリンクを張る必要はありません。クリックしやすいTitleにリンクを張って、GETで送るのは、IDを指定すればいいだけですから。

ただ、何度も言いますが、ブラウザには、GETで送った値が表示されていますので、人に知られてはまずいような値などは絶対にGETでは送信しないようにして下さい。機会があれば、これ以外のデータの受け渡し方法(POSTやCOOKIE、セッション変数等)もご紹介します。

Kazu様、これでおわかりいただけましたでしょうか。

本日は以上です。

-Dreamweaver
-

Copyright© WinRoad徒然草 , 2018 All Rights Reserved Powered by AFFINGER5.