質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

661閲覧

テーブルのIDをURLにするには?

creative_09

総合スコア80

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/02/05 03:33

編集2018/02/05 04:18

データベースのテーブルにユーザーIDがあり、
そのユーザーIDでアクセスできるよう、URLに組み込むにはどうすれば良いのでしょうか?

ユーザーID 「yourname」
サイトURL 「abcd.com/yourname」

といったブログなどにありがちな形です。
こういった形のサイトはディレクトリが存在するのでしょうか?
ディレクトリなしでもこういった形で出来るのであれば教えてください

補足
実現したいこと
アメブロのような形で登録者のユーザーIDでページが見られるようにする。
その際に、ディレクトリなどは作成せずにアクセスできるのが良いです
こういった形はただ、拡張子が消えているだけなのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

そういった名前のディレクトリはありません。
フレームワークであるような形で「全てのアクセスをルート直下のindex.phpに集約し、/区切りで入っている文字列を引数として、処理内容や表示する方法を決めている」状態です。

全てのアクセスをルート直下のindex.phpに集約し

/区切りで入っている文字列を引数として、処理内容や表示する方法を決めている

例えばhttp://hogehoge.com/aaaa/bbbb/cccのようなURLとなっている(正確にはURIですが)場合にphpの[$_SERVERのREQUEST_URI](http://php.net/manual/ja/reserved.variables.server.php)で
aaaa/bbbb/cccが取得できるので、/explode()すると0番目がaaaa,1番目がbbbbとなりますよね?
(もちろん?key=valueのようなクエリストリングが来た場合はそれ以降を無視するといった対応も必要です)
で、
例で言えば「abcd.com/yourname」のyournameが0番目として決まるので、yournameをDBに問い合わせしていく・・・といった形になります。
ただ、URLルート直下だとコントローラ部分が決まらないこともあるので、ブログなどはabcd.com/profile/yourname のようになってることが多いですね。
0番目が利用するコントローラ名とルールを決めれば、profileのコントローラを利用するように分岐をかけて、あとは受けとったyournameをDBに探すだけ、となります。

※URLの解析部分はあくまで簡易に実現できる理論なので全てのフレームワークが同じような解析をしているとは限りません

投稿2018/02/05 04:43

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

creative_09

2018/02/05 10:32

ありがとうございます ですが、まったく意味がわからない・・・ おおよその仕組みはそういうことなんですね。 コントローラーというものがあるんですか? yournameを問い合わせれば・・・・ どういうふうになるのかもわからない・・・・ 具体的にそういう仕様で設置するとなればどんな形で設置するんでしょうか?
m.ts10806

2018/02/05 10:41

諸々を含めるとフレームワークを実際に使ってみると良いですね。 CakePHPやLaravelなどPHPフレームワークは多種多様です。 ここで説明するには残念ながら枠が足りませんし、表現したいことが全て表現しきれません。 例えば、下記のサイトの記事を読み進めていくと理解は進むと思います。 http://www.objective-php.net/mvc/framework ※私がフレームワークを自作する際に大変お世話になりました 私の回答ではメニューの「リクエストの振り分け」「URLパラメーター」「コントローラー」あたりを簡易に説明した形となります。
creative_09

2018/02/05 11:37

ありがとうございます。 ページの方も拝見しました。 まだまだむずかしそうですが・・・ ようはMVCによって実現出来ることであり、今回実現したい内容はそれ以外では不可という認識で間違いないでしょうか?
m.ts10806

2018/02/05 12:03

いえ、MVCはあくまで役割を明確にした、スポーツで言えばポジションのようなもので、そこまで明確にしないのであれば回答の最初に書いた内容で実現可能です。 いずれにせよ、.htaccessによるindex.phpに集約する処理とREQUEST_URIによるURL解析は必須です。
creative_09

2018/02/05 12:09

そのあたりで詳しく調べて見ます。 詳しくありがとうございます
guest

0

サーバーに対する実行ユーザーをベースにすると
ホームディレクトリが~usernameになるため、以前はその形式がおおかったようですが
ユーザー名とサブディレクトリ名は必ずしも一緒である必要はありません。
管理のしやすさから考えると適当な数値などで把握するほうが楽だと思います。
RDBで管理してもいいですが、別途ユーザー管理できる仕組み(たとえばLDAP)を利用してもよいでしょう。

投稿2018/02/05 03:48

yambejp

総合スコア114775

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

creative_09

2018/02/05 04:15

回答ありがとうございます。 初心者すぎて見当違いのコメントをしてしまうのかもしれませんが、 abcd.com/yourname のような形はデータベースに登録されているユーザーIDもしくは適当な数値で実現出来るということでしょうか? 説明不足で申し訳ございません 質問に補足を追加します
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問