(複数人の)ユーザーが記事を投稿し、各ユーザーの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)となります。
よろしくお願い致します。
No.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あたりを動かして「各々のテーブルの設計がどうなっているのか」「どういう動きになっているのか」を学ぶといいと思います。
ご回答いただきありがとうございます。
WORDPRESSの仕組みについて、大変参考になりました。
一度動きについて学んでみようと思います。
この度は本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- オープンソース AWSドメイン名でApacheテスト・ページを表示させる方法を教えて下さい。 1 2023/04/26 15:59
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript Json のキーと値の出力の違いについて 2 2022/06/14 20:22
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- UNIX・Linux コマンドプロンプトでのユーザーのサインイン時間設定について 1 2022/08/09 09:09
- Windows 10 コマンドプロンプトでのユーザーのサインイン時間設定について 1 2022/08/09 20:43
- その他(Microsoft Office) outlookで宛先が異なるメールを一括送信する方法 outlookで200人それぞれをtoに指定し 2 2023/08/03 21:24
- PHP php ログイン 1 2022/11/01 00:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpでPEAR::DBを使っているので...
-
index.phpって何ですか? 具体...
-
phpでcookieがうまく保存されない
-
PHPSpreadsheetを使って関数を...
-
PHPのセッション有効期限について
-
index.phpに入るには、どうすれ...
-
重複を防ぐ記述について教えて...
-
フォームで戻った際に入力済み...
-
アンドロイドスマホでのphp ech...
-
入力フォームの空白や改行を制...
-
PHP8を使うと、大量のWarningが...
-
PostgreSQLからCSV形式でエクス...
-
PHPで画像の渡しが上手く行きま...
-
reuterの記事をbeautiful.soup....
-
PHP一覧表示した項目にリンクを...
-
値の取り出し方について教えて...
-
PHPSpreadsheetによる書き出し...
-
連投防止
-
ここでの ②if($su_d<>"")の比較...
-
オススメのプログラミングスク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WordPressのLighting(テーマ)に...
-
アップロードファイルの数に応...
-
PHPのソース変更が反映されない
-
Wordpressで記事がない場合にメ...
-
phpの表示領域をしていしたい!
-
変数で日付を指定し、新しい順...
-
DreamweaverとWordPressの連携
-
外部ファイルの読み込み
-
wordpress投稿内でcgiを動かしたい
-
ワードプレスでカテゴリー毎に...
-
WP/ 記事タイトルをクリックさ...
-
Smarty コンバートエラー??
-
wordpress カスタム投稿タイプ...
-
CentOSでhtaccessを使用してmod...
-
PHPのクッキーによるリダイレクト
-
wordpressのリンクでの質問です。
-
Webデザイナー向けLinuxユーザ...
-
URL短縮ツール「楽々URL」をさ...
-
PHP初心者です。
-
ランキングを表示する際の画像...
おすすめ情報