レンタルサーバーのヘテムルで、DBを使ったWebアプリを作成しました。
ポイント
- トーマスを使って認証
- DBを使ったデータ登録・訂正・削除・一覧
- 指定データでツイッター検索
- PC環境のフォルダ構成はレンタルサーバーと同じにする
Webアプリのデモ
こちらから動作確認できます。
最初の画面です。
ログインすると以下の画面が表示されます。
左のメニューから「ツイアカ(ツイッターアカウント)登録」をクリックします。
データを入力します。
登録後の画面です。
※30件まで登録できます
同様に、「bbb」「utalab」を登録します。
左のメニューから「ツイアカ一覧」をクリックします。
※一覧画面の上に「3/30」とありますが、30件登録可能状態で、3件登録ということです。
※ツイアカの並び順はアルファベット順です。
「aaa」の訂正リンクをクリックします。
「aaa」を「aaazzz」にします。
訂正後の画面です。
左のメニューから「ツイアカ一覧」をクリックします。
※さきほど訂正したツイアカが表示されています。
「aaazzz」の削除リンクをクリックします。
※訂正画面と同じに見えますが、入力項目は修正できない状態です。
削除後の画面です。
左のメニューから「ツイアカ一覧」をクリックします。
「aaazzz」が削除されているのを確認できました。
左のメニューから「ツイッター検索(おは戦)」をクリックします。
※ログイン後の初期画面と同じです。
※日付は実行時の日付です。上の日付を変更して「send」ボタンを押すと日付が変更できます。
※一覧のすぐ上に表示されている日付で検索します。
「utalab」の右の検索ボタンをクリックすると検索画面が表示されます。
※2020年5月22日の分です。
※「utalab」以外は適当なので、たぶん該当なしです。
ポイント解説など
トーマスを使って認証
認証方法は、以下で解説しました。
今回は認証時にデータベースを利用しています。
「誰のデータか」を決めるために、ライセンスコードを利用します。
認証時のID(メールアドレス)にしようかと、最初は考えましたが、できる限り個人を特定できないほうがいいだろうということで、ライセンスコードにしました。
さて、ライセンスコードを元にデータを作るとなると、最低でもライセンスコード分のデータ量が必要となります。
今回の例でいえば、ツイアカ登録部分です。
ツイアカ用テーブル構成
- ID(INT)
- ライセンスコード(VARCHAR(30))
- ツイアカ(VARCHAR(15))
もし、上記の場合、一覧表示をするとなると、ライセンスコードで検索して表示となります。
上記でも問題ではないですが、生データを見た場合、わかりやすいことと、データ量を小さくしたいということです。
もし、ライセンスコードをライセンスID(INT)に変換できると、どうでしょう?
MySQLでは、INTは4バイトです。
以下を参照してください
となると、30バイトから4バイトを引いて、26バイト削減したことになります。
微々たるものですが、積み重なると、それだけデータ量が余計になります。
ということで、ログイン直後にm_licenseテーブルを使って、IDに変換しています。
そのIDは、セッション変数にセットし、テーブルに登録するたびに、そのIDをセットすることとなります。
DBを使ったデータ登録・訂正・削除・一覧・検索
DBの基本といえば、「登録・訂正・削除・一覧・検索」ですね。
今回は、登録画面表示、登録結果表示というように、入力画面と結果画面を忠実に作りました。
作る方としては、作りやすいです。
ただ、使い勝手がよいかというと、そうではありません。
使い勝手をよくするためには、ユーザーインターフェースとか操作性で、時間がかかります。
自作であれば、最低限でよいと思います。
でも、使用頻度が高くなると、やはり使い勝手をよくしないと、作業効率は上がりません。
使い勝手をよくするのは今後の課題ですが、少なくともデータベースに登録することで、いろんな利用方法がでてくると思います。
指定データでツイッター検索
今回のメインです。
単純に、毎日でもチェックしたい人を登録しておくと便利だろうなぁ、ということで作ってみました。
ツイッター上の検索から検索することも当然できますが、「入力して検索」は、面倒ですよね。
あらかじめ、検索するべき文をエディタで作っておいて、それをコピペするのもいいかもしれません。でも、コピペすら面倒になってきます。
そんなときはデータベースを利用するアプリがあると便利ですね。
さらに、今回のハッシュタグは、毎日変更されるので、自動生成されるのも便利です。
今回はクリックしてブラウザを開くということになりますが、どうせならまとめて全部検索してブラウザで開いてほしいです。これは、JavaScriptも使わないとできないので、いづれやりたいと思います。
PC環境のフォルダ構成はレンタルサーバーと同じにする
現在は、ヘテムルというレンタルサーバーを利用しています。
サーバーの構成として、外部から参照できるフォルダと、外部から参照できないフォルダがあると思います。
IDやパスワードは、外部から参照できると、まずいですよね。
そこで、IDやパスワードは外部から参照できないフォルダにdb_init.phpとして保管します。
プログラムからそのファイルをincludeし、そこに書いてあるIDやパスワードを参照します。ちなみに、ここで言うIDやパスワードは、データベースに対してとなります。
まとめ
データベースの設定やデータベースからのデータの取得など、PHPでは初めてなので、ちょっと時間がかかりました。
DBからの基本操作ができるようになったので、いろいろやってみたいと思います。
PHPやMySQLは無料で使用できるし、レンタルサーバーでも標準でついているところがほとんどなので、まずは利用範囲の広いPHPとMySQLから勉強するといいですね。
今までの「Webアプリ関連」はこちらから読めます。
レンタルサーバは以下を使用しています。
以下のレンタルサーバーも人気のようです。