人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPとMysqlで質問です。*初心者です。
現在書籍、何冊かで掲示板を作成しております。
【状況】
例えばhttp???/view.phpにDBから情報を取得して
id1 2 3...
の各フィールド情報を一覧に表示していくことはできるようになりました。
そして、その中から一つのIDを取り出して表示ということもできます。
【不明点】
それぞれのID情報を別の個別ページ(view.phpと別)で表示する方法がわかりません。
*ある書籍をみた限り、view.php?id=6などの中にそれぞれ個別に表示されていました!
HTMLを勉強した限りではあたらしいページをつくるには
view.php
view1.php
view2.php
とウェブサーバーにアップロードしなければあたらしいページをつくれないはずという認識なのですが、その書籍の手順ではあらたにアップロードしたということもありません。
どのようにしてその書籍では個別ページができるのでしょうか?隅々までみたのですがわかりませんでした涙

●質問者: ak
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● duck75
●50ポイント

質問の意味を取り違えてるかもしれませんが、view.php?id=6の意味がわからないということでしょうか??

これは、view.phpの中に$_GET("id")というのがあったらその中身が6になるということです。getとかpostについてはその書籍に書かれてなかったですか?

なのでたぶん、view.php?id=6とすることによってview.php内にidが6のDBの情報を引っ張ってきてるんだろうなと思うのです。

そのときのSQLはたぶん、select * from テーブル名 where id = $_GET("id")とかになるんじゃないかと思います。セキュリティ的にこういうのは多分ダメなのでしょうが意味としてはそうです。


duck75さんのコメント
http://php.net/manual/ja/reserved.variables.get.php

akさんのコメント
ありがとうございます。 >getとかpostについてはその書籍に書かれてなかったですか? かかれていたのですが意味を取り違えていたのかもしれません。 duck75さんのご指摘で少し見えてきた気がします。確認してみます。 セキュリティ的にこういうのは多分ダメ →ここが気になりました。 http://pd.appbank.net/ml1 これはパズドラの公式攻略サイトなのですが、モンスターをクリックすると、http://pd.appbank.net/m011 や http://pd.appbank.net/m012 とページがわかります。 上のview.php?id=6とはことなる意味あいということでしょうか? ここは?の技術なおでここで学びなよ(サイトや本)!みたいな感じで結構でございます。 ご教授いただけると幸いです。

akさんのコメント
いま調べていたのですが、 http://www.objective-php.net/mvc/dispatcher で記載されている 【みたいにして、index.phpでは$_GET['p']を参照し、それに応じた処理クラスを呼び出すという感じです。 とりあえずはこれでもMVCは実現できます。 しかしこれだとURLとして見栄えがあまり綺麗じゃありません。全部のページがindex.phpっていうのもなんか変な感じがします。 そこでapacheのリライト機能というのを利用する手があります。】 という考え方にもとづいていけばよろしいでしょうか。

akさんのコメント
追記 mod_write を使って解決するということでしょうか? http://tech.bayashi.net/svr/doc/apache/mod_rewrite.html

2 ● lang_and_engine
●50ポイント ベストアンサー

URLのアクセスの仕方に応じて,ページの表示内容も変化させたい。
という要望ですね。

前の回答にあるように,GETリクエストの内容をみれば,URLの「?」からあとの部分の文字列が分かります。
?id=1のようになっていたら,DBからはid = 1の情報を持ってきて表示する,といった具合です。

パズドラのサイトでは,URLに「?」が使われていません。
その場合でも,URLの文字列をみて,ページの表示内容を変えることができます。

PHPで現在アクセスされているページのURLを取得する - hoge256ブログ
http://www.hoge256.net/2010/06/519.html


>セキュリティ的にこういうのは多分ダメなのでしょうが

と仰っているのは,GETリクエストの内容をそのままSQLに埋め込んではいけない,と言っているのです。

例えば,GETの部分に(URLに)「DBを消去する」という意味のSQLを埋め込んでアクセスした場合,GETの内容を鵜呑みにしてしまうような作りだと,大変なことになってしまいます。
したがって,この場合は「SQLインジェクション」の対策をし,SQL文の構築時にエスケープをします。
そうすれば,GET内容をもとにSQL文を構築するとしても,セキュリティ的に問題は何らありません。


akさんのコメント
大変くわしくありがとうございました。お二人のお力で見えてきました。 明日構築してみます!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ