アプリ版:「スタンプのみでお礼する」機能のリリースについて

(複数人の)ユーザーが記事を投稿し、各ユーザーのURLでそのユーザーの記事が閲覧できるブログシステムを考えております。
しかし、各ユーザのURLにアクセスしたとき、そのユーザーのデータをどのような方法で取得すれば良いのかわからず質問させていただきました。

以下、詳細となります。

※MYSQLデータベーステーブル
・user_table
id 名前
10 山田
11 鈴木
12 伊藤

・,article_table
id user_id url     text
1 10    yamada  山田です。
2 11    suzuki   鈴木です。
3 12    itou     伊藤です。


※流れ
1,各ユーザーは管理画面にログイン

2,記事投稿ページで本文を入力し、投稿ボタンを押すとarticle_tableにデータが格納される。

3,domain.com/○○○(〇に入るのはyamadaなど、各ユーザーのurl)
にアクセスすると、そのユーザーが投稿したarticle_tableのtextが表示される。)

※質問内容

domain.com/〇〇〇に、そのユーザーが投稿したtextを表示されるには、
<?php
$st=$db->prepare("select * from article_table where user_id=:user_id");
$st->execute(array(":user_id"=>$user_id));
$data=$st->fetch();
echo $data["text"];
、、、、
?>

といったように、$user_idによってそのユーザーのデータを引っ張ってくるかと思いますが、このとき$user_idの値はどのように得る方法が一般的なのでしょうか?

・方法(1)
URLをdomain.com/〇〇〇?user_id=△△△として$_GETで取得すれば可能ですが、
一般的なアメブロなどのブログシステムでは、そのような変数はURLについていないかと思います。

・方法(2)
あらかじめユーザーごとのフォルダにuser_id.txtのようなファイルを用意し、そこに書かれているidを読み込んでいるのでしょうか?

・方法(3)
管理画面からユーザーが記事を投稿した時に、$user_idをファイルに埋め込んだ動的なphpファイルを生成して保存しているのでしょうか?

<?php
$user_id=10;
$st=$db->prepare("select * from article_table where user_id=:user_id");
$st->execute(array(":user_id"=>$user_id));
$data=$st->fetch();
echo $data["text"];
、、、、
?>

このソースごと含めてユーザーファイルを生成してしまう。
ただ、やり方が今のところわかっておりません。

・方法(4)
別のなんらかの方法


ご存知の方いらっしゃれば、ご回答いただければ幸いです。
尚、各ユーザーURLのページは、静的なページ(html)ではなく、動的なページ(php)となります。

よろしくお願い致します。

A 回答 (1件)

>一般的なアメブロなどのブログシステムでは、そのような変数は


>URLについていないかと思います。

Wordpressあたりでは

RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]

とやって、全部index.phpに渡して、あとはwordpress/index.phpが適宜処理します。example.com/aaa でアクセスすると、wordpress/index.php で$_SERVER['REQUEST_URI'] で "/aaa" が受け取れます。

それ以外にもrewriteするときにQueryStringに変換する(example.com/aaa を example.com/index.php?user=aaa にする)ケースもあります。なのでアクセスしているURLと内部的な値の受け渡しは必ずしも一致しません。


>あらかじめユーザーごとのフォルダにuser_id.txtのようなファイルを用意し、
>そこに書かれているidを読み込んでいるのでしょうか?

えっと・・・。質問者さんがすでに書かれているように「データベースを使う」方が一般的です。わざわざテキストファイルを使う意味はありません。データベースで一元管理します。

>管理画面からユーザーが記事を投稿した時に、$user_idをファイルに
>埋め込んだ動的なphpファイルを生成して保存しているのでしょうか?

記事テーブルにデータを追加するだけです。


まずはWordpressあたりを動かして「各々のテーブルの設計がどうなっているのか」「どういう動きになっているのか」を学ぶといいと思います。
    • good
    • 0
この回答へのお礼

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

WORDPRESSの仕組みについて、大変参考になりました。
一度動きについて学んでみようと思います。

この度は本当にありがとうございました。

お礼日時:2014/09/16 14:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!