• ベストアンサー

ログイン機能カレンダー

phpで質問です。 カレンダーを作ったのですが、 ログイン機能でユーザーを認識させた予定表です。 1. 予定を管理(書き込んだり変更したり)にはphpとデータベースですよね? 2. 例えば、 5月1日の予定を書き込むにはどのようなテーブル設計にすればいいですか? その月だけじゃなくて最長その年度の予定を書き込めるようにしたいです。 過ぎた月は数ヵ月保存しておいて、後に破棄できるようにしたいです。

  • PHP
  • 回答数3
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

>iCalendarというフォーマットに会わせるために、 そういうことです。 カラム名・並び順はコンバートするときに変えればいいので、完全に一致している必要はありません。 iCalendar形式を採用しておけば、Googleカレンダーからの移行、その逆に自分のアプリをやめて別のカレンダーに乗り換えたいとかといったことが容易にできる、ということです。

dhtfyjh
質問者

お礼

ありがとうございました。

その他の回答 (2)

回答No.2

t_ohtaさんの回答に捕捉します。 iCalendarは、RFCで標準化されたスケジュール管理用のフォーマット(ファイル)形式です。 RFCとは、 ----引用------- インターネット技術の標準的な仕様を記した文書のこと。インターネット技術を議論し標準化を進める任意団体「IETF(Internet Engineering Task Force)」が作成し、インターネット上で公開している。 --------------- https://www.otsuka-shokai.co.jp/words/rfc.html 一つのファイルで、個々の予定を記述するというもので、OutlookやGoogleカレンダーなどで利用することができるようです。 つまり、後々のことを考えて、このiCalendar形式に変換可能な形(変換するに足りる情報・フォーマット)でデータベースに保存すればよいのでは、というのがt_ohtaさんの回答です。 フォーマットについては、RFCを見るのが良いんですが、がちがちの仕様が書いてあるので、読むのが大変です。 https://tex2e.github.io/rfc-translater/html/rfc5545.html ↑日本語訳付きのRFC iCalendar形式について説明をされているQiita記事が参考になるかもしれません。 https://qiita.com/TomOse/items/31b5fb4782f06d19af79 または、お持ちのGoogleカレンダーで、予定を(なければいくつか予定いれて)「設定」→「エクスポート」でicsファイルでダウンロードできるのでどんなもんか見てみるとよいと思います。 というのが、前提で、大体以下の項目がテーブルに入っていればよいということのようです。 DTSTART: 予定開始日時 DTEND: 予定終了日時 DTSTAMP: 順序付けに使う日時らしい UID: 順序付けにつかうらしい CREATED: 作成日 DESCRIPTION: 予定の詳細な内容 LAST-MODIFIED: 修正日 LOCATION: 予定が発生する場所 SEQUENCE: UIDと組み合わせて使うらしい STATUS: 3.8.1.11. 状態(RFC参照) SUMMARY: 予定のタイトル TRANSP: 3.8.2.7. 時間の透明性(RFC参照) これに加えて、マイページ機能の中で使っている、ユーザIDとかアプリケーション独自に必要なものを追記する形でよろしいかと思います。 あとは各々の予定をどのように画面に出力するのかしたいのか、から逆算していく形ではないかなと、思います。

dhtfyjh
質問者

補足

ありがとうございます。 少し気になるところを質問させてください。 iCalendarというものを始めてみたので調べて見たのですが、データペースの型ではなく iCalendarというフォーマットに会わせるために、 以下のようなテーブル構成にするということでしょうか? DTSTART: 予定開始日時 DTEND: 予定終了日時 DTSTAMP: 順序付けに使う日時らしい UID: 順序付けにつかうらしい CREATED: 作成日 DESCRIPTION: 予定の詳細な内容 LAST-MODIFIED: 修正日 LOCATION: 予定が発生する場所 SEQUENCE: UIDと組み合わせて使うらしい STATUS: 3.8.1.11. 状態(RFC参照) SUMMARY: 予定のタイトル TRANSP: 3.8.2.7. 時間の透明性(RFC参照)

  • t_ohta
  • ベストアンサー率38% (5078/13272)
回答No.1

1. PHPとデータベースでいいと思います。 2. スケジュール管理のデータフォーマットに「iCalendar」という統一フォーマットがあります。 賢い人たちが議論して決めたフォーマットですから、これに準じた形でデータを保持するのが機能的で効率的だと思います。 iCalendar で検索すると資料が沢山ありますし、PHP用のライブラリもいくつか存在します。

関連するQ&A

  • iCloudのカレンダーについて

    iPhone5にて、カレンダーに予定を入れていますが、パソコンで、iCloudを開き、AppleIDでログインして、カレンダーを確認すると、いろいろな予定が、ランダムに1日ずれたり、時間がずれたりします。すべての予定がずれてるのではないので、信用ができない状態です。原因は、何でしょうか? もちろん、パソコンの日時に狂いはありません。 例>予定1 7月20日 14:30~17:00 iPhoneで記録したが、パソコンでログインしたカレンダーには、7月20日 23:30~21日2:00に変わっています。 正しく、パソコン表示を変更すると、今度は、iPhoneカレンダーがずれてしまいます。全部の予定を確認していませんが、日程がずれてるのが、ところどころ見受けられます。(時間まで確認していませんが・・・・)終日の予定は、そのまま表示されてます。 何が原因と思われますか? 不便で仕方ないので、困っています。ご存知の方よろしくお願いします。

  • Word2007でカレンダーを作りたい。

    Word2007でカレンダーを作りたい。 挿入タブ 表 → クイック表作成のカレンダーでは カレンダー1が12月で1日が日曜日から カレンダー2が5月で 1日が火曜日からとなっています。 この日付を自動的に今年の月に合わせて日付を変更する方法が あれば教えていただきたい。 また、テンプレートをダウンロードしたのですが2008年で これを今年のカレンダーに自動的に変更する方法があれば教えて下さい。

  • ユーザー認証でSQLのデータと一致するものだけをログインできるようにするには

    PHP初心者です。 タイトルが長くなり、申し訳ありません。 ユーザーのBASIC認証ダイアログを表示させ、データベースのテーブルに書かれたデータと一致するものだけをログインできるようにするにはどうしたら良いでしょうか。 まずデータベースにあるテーブルからIDとパスワードを抽出します。 でも、この場合変数は配列になりますよね。 その配列の変数の宣言の書き方とデータ照合を一致させる方法を知りたくて質問しました。 どうぞ宜しくお願い致します。

    • 締切済み
    • PHP
  • ログインしたら他からログインできないようにしたい

    PHP+MySQLで会員サイトを作っています。 1. 誰か一人がログインしていたら、そのログイン会員と同じIDとパスワードでログインしようとするとログインできないようにするか、元のログインしていた人が強制的にログアウトするようにしたい。 2. 一人のユーザーが複数アカウントを作って会員サイトを使いたい放題にするのを阻止したい。 そのため、「PC1台からは必ず1ユーザーのみしかログインできないようにしたい」です。 (複数PCを使われたら仕方ないかもしれません・・・) よく銀行サイトのようにログイン中に他のブラウザや端末からログインしようとすると「すでにログイン中です。ログインし直しますか?」のようになりますが、1.はこんな感じを考えています。 仕組みとしてはどのようにするのが良いのでしょうか? 1. ログイン時にセッションIDを作り、データベースにそのセッションIDとIPアドレスを記憶しておいて、Web上で何か操作するたびにブラウザ側のセッションIDとデータベース側のセッションIDを比べて同じなら操作を実行し、違うなら操作できないようにする。 2. ログイン中に別のブラウザからログインしようとすると、データベース側に保存されているセッションIDが違うのでログインできないようにする。 3. 同じIPアドレスですでにログイン中の場合、同じPCからは他のアカウントでログインできないようにする。 こんな感じでしょうか? 何か問題点やそもそもこの仕組は間違っていて常套手段があるなどありましたらお教えください。 なんとなく、IPアドレスのチェックはWiMAXなどは時間とともに変わったりするのであまり良くはないかもしれません。 どうぞよろしくお願い致します。

    • ベストアンサー
    • PHP
  • ログイン画面を通過済み(認証済みユーザ)の判定

    ログイン画面でユーザとパスワードを入力し、ログインできたユーザがいたとして、 その後の、画面Aでも、画面Bでも、 認証済みのユーザかどうかをチェックしたいです。 すべての画面で、データベースサーバのユーザ情報テーブルをチェックするのはなんか頂けないと思っているのですが、 何かよい方法はあるのでしょうか? .

  • Excel2003 カレンダー表 → 表・グラフで累計表示したい

      | 1月  2月  3月 ~ ------------------------ 1日 | 10 2日 |     30   20   3日 | 20 4日 |     30 といった カレンダー系の X軸 Y軸で 表をつくったのですが、ここから 1月1日 10 1月3日 20 2月2日 30   ~ という表を別ワークシートに自動作成するにはどうすればいいでしょうか? (逆に 表→ カレンダー) 関数で可能でしょうか。マクロや スクリプトを作成しないといけないでしょうか。  また、この「カレンダー」から直接 グラフ (累計)を作成することは可能でしょうか。  Excel2003を使用しております。どうかアドバイスいただければ幸いです。よろしくお願いいたします。

  • Googleカレンダーについて

    便利なGoogleカレンダーなんですが、 http://www.google.com/calendar/render ほかのユーザーに公開するときに、予定の表示が1日後との表示になってしまうのですが、月ごとの表示にすることはできませんか? 手動でなら、月表示にすることができるんですが… URLをクリックしたらそのまま月表示にされるようにしたいんです。

  • Office2003でカレンダーテンプレート

    予定表を作成したいのですが、 ダウンロードしようとすると Office2007以降のソフトでないとできないと表示されます。 因みにうちのは2003です。 月単位のカレンダーで上に曜日があり表になったタイプで 予定が二段位書き込めるもの、 できれば上両サイドに前の月、次の月の小さいカレンダーつきがいいです。 質問ですが、 (1)ソフトを購入しないとダウンロードできませんか? (2)2003でダウンロードできるテンプレートはありますか? 知ってるサイトがあれば教えてください。

  • カレンダーの作り方

    PHPで簡単なカレンダーを作成しようと思っています。やりたいことは下のようなカレンダーを作成したいです。forループで表自体は作れるのですが、最後の行に何もデータ(日付)が入っていない場合は最後の行は表示しないという処理にしたいです。この場合、31より後ろの4つのセルはあっても問題ありません。あくまで、最後の行が空の場合は最後の行は表示しない、もしくは表示させないという処理です。 これだとforループで表を作るには難しいような気がしますが、何かよいアイディアをご教授ください。 ┏━━━━━━━━━━━━━┓ ┃********2006年10月********┃ ┣━┳━┳━┳━┳━┳━┳━┫ ┃Su┃Mo┃Tu┃We┃Th┃Fr┃Sa┃ ┣━╋━╋━╋━╋━╋━╋━┫ ┃01┃02┃03┃04┃05┃06┃07┃ ┣━╋━╋━╋━╋━╋━╋━┫ ┃08┃09┃10┃11┃12┃13┃14┃ ┣━╋━╋━╋━╋━╋━╋━┫ ┃15┃16┃17┃18┃19┃20┃21┃ ┣━╋━╋━╋━╋━╋━╋━┫ ┃22┃23┃24┃25┃26┃27┃28┃ ┣━╋━╋━╋━╋━╋━╋━┫ ┃29┃30┃31┃--┃--┃--┃--┃ ┣━╋━╋━╋━╋━╋━╋━┫ ┃--┃--┃--┃--┃--┃--┃--┃ ┗━┻━┻━┻━┻━┻━┻━┛

    • ベストアンサー
    • PHP
  • PHPデータベース・テーブルの移行

    PHPとMySQLを使ってサイト構築しています。 MySQLのデータベース「group_color」にはテーブル「pink」とテーブル「blue」があります。 サイトでログインしている会員ユーザーの情報が「pink」に入っていてユーザーが ”ブルーグループに変更する”というボタンを押すと、テーブルpinkに入っている情報がテーブルblueに移行するようにしたいのですが、PHPの表記はどのようになりますか? 「ログインしている会員の情報」を移行させたいです。 テーブルのフィールドは ・id ・name ・birthday となっています。 よろしくお願いいたします。

    • 締切済み
    • PHP

専門家に質問してみよう