PROGRAMMINGPHPでプライベートメッセージ機能を作る方法です。Systemという英語チュートリアルをみつつ、若干バグがあったので修正しつつまとめました。コード(Githubからダウンロードできます)いわゆるFacebookメッセンジャーの簡易版です。コードを応用すれば、サイト内メッセージ機能のあるWebサービスが作れます。SQLがちょい複雑なので頑張りましょう。チュートリアルを理解するコツとしては、実際に手を動かすこと。コードを書いてみてください。コピペでもいいのですが、実際に書いたほうが理解しやすいはずです。コードを見ても分からな部分は、[var_dump]でひたすらデバッグしましょう。実際の動作をみつつ、コードを見比べると理解しやすいです。前置きはこれくらいで、さっそく見ていきましょう。くじ1.PHPプライベートメッセージ機能のフォルダ設計をする2.テンプレートシステムを作成する3.会員登録機能を作成する4.PHPプライベートメッセージ機能に利用するDB設計をする5.新規メッセージの送信フォームとバリデーションを作成する6.新規メッセージ送信機能を作成する7.受信したメッセージをリスト形式で一覧表示する機能を作成する8.受信したメッセージの削除機能を作成する9.受信したメッセージ詳細を表示する機能を作成する10.メッセージの返信機能を作成する1.PHPプライベートメッセージ機能のフォルダ設計をする下記のとおりです。index.php/coreinit.php/functionmessage.phpuser.php/pagesinbox.phplogin.phplogout.phpnew_conversation.phpview_conversation.php各種ファイルがどういった役割を果たすのかは、順を追って説明していきます。2.テンプレートシステムを作成するまずはテンプレートシステムを作っていきます。index.phpを読み込むと、条件に応じで最適な画面が出力される仕組みです。※SEOに疑問をお持ちの方へメッセージ機能においてはSEO対策は不要ですので、本記事はSEOには触れていません。ここでテンプレートファイルを読み込む。$include_fileは後ほど作成します。"{$core_path}/pages/{$_GET['page']}.php";以上で、超簡易的なテンプレートシステムが完了しました。index.php?page=inbox.phpcore/pages/inbox.phpが読み込まれますindex.php?page=new_conversation.phpcore/pages/new_conversation.phpが読み込まれますindex.php?page=spam.phpcore/pages/inbox.phpが読み込まれます3.会員登録機能を作成する会員登録機能を作っていきましょう。このあたりはアッサリと解説しています。3−1.ユーザーテーブルを作成するDB名はpm_simpleとしました。AUTO_INCREMENT;3−2.ユーザーデータを入れるパスワードはpassとしています。index.php?page=login');die();}3−4.ログインフォームを作成する(編集ファイル:core/pages/login.php)上記がイメージ図です。ダサいですが、コードをシンプルにするためですので我慢してください。"ユーザー名とパスワードが一致しません。";}}3−6.validate_credentialsを作成する(編集ファイル:core/function/user.php)下記のとおり。このあたりがよく分からない方は、【PHP7対応】ログイン・会員登録機能を作る方法【2016年版】をご覧ください。メンドイかもですが、急がば回れです。false;}}以上で、会員登録機能が完成しました。パスワード:passでログインできます。4.PHPプライベートメッセージ機能に利用するDB設計をするここからが本番です。PHPのプライベートメッセージ機能には3つのテーブルを利用します。4−1.conversationテーブルを作成するカンバセーションIDとカンバセーションタイトルを保存するためのDBです。AUTO_INCREMENT;4−2.conversations_membersテーブルを作成するカンバセーションIDとユーザーIDを紐付けるためのDBです。未読判定に利用し、conversation_deletedはメッセージ削除機能に利用します。※phpmyadminから、indexの部分を選択します。上記のように設定します。4−4.conversations_messagesテーブルを作成するカンバセーションIDとユーザーIDを紐付けるつつ、メッセージ本文を保存するDBです。AUTO_INCREMENT;以上で、PHPプライベートメッセージ機能に利用するDB設計が完了しました。「日本語でOK」って感じで離脱しそうな方はご安心を。現在は抽象的な部分ですが、実際に手を動かして、データを見つつ進めれば混乱がなくなるかと思います。5.新規メッセージの送信フォームとバリデーションを作成するそれではメッセージ機能を動かしていきましょう。"宛先を追加してください。"宛名が間違っています。"件名を入力してください。"本文を入力してください。"エラーはありません。あとでメッセージ送信機能を作ります。value="送信する"></form>以上で、新規メッセージ送信フォームをバリデーションが完成しました。6.新規メッセージ送信機能を作成するつづいて新規メッセージ送信機能をつくっていきますよ。"エラーはありません。あとでメッセージ送信機能を作ります。$mysqli->query($sql);}6−3.新規メッセージ送信をinitファイルで読み込む(編集ファイル:core/init.php)<?phpinclude("{$core_path}/function/message.php");以上で、メール送信機能が完成しました。7.受信したメッセージをリスト形式で一覧表示する機能を作成するいわゆる受信ボックスページですね。左右両方のテーブルで対応するデータが存在するものしか表示しません。?>7−3.未読メッセージを太字にするファンクションを追加する(編集ファイル:core/function/message.php)さきほど書いたクエリ文をすこし変更します。$error;}}以上で、受信したメッセージをリスト形式で一覧表示する機能が完成しました。8.受信したメッセージの削除機能を作成するメール削除機能です。別になしでもいいかなという部分ですが、解説していきます。"削除IDエラーが発生しました。{$_SESSION['user_id']}";$mysqli->query($sql);}}以上で、受信したメール削除機能が完成しました。9.受信したメッセージ詳細を表示する機能を作成するメッセージ表示画面をつくっていきましょう〜。$mysqli);?>以上で、受信したメッセージ詳細を表示する機能が完成しました。"メッセージを入力してください。$mysqli);}以上で、メッセージの返信機能が完成し、チュートリアルの完了です。:16記事で解説】SEO【完全初心者向け】プログラミング学習の始め方【3ヶ月で達成できる】PROGRAMMING【独学でWeb制作マスター】勉強方法のまとめ【初心者向け】PROGRAMMINGマナブブログ・アフィリエイト・プログラミングを愛しています。ブログを書きまくる→ブログ収益7桁達成。普段はバンコクを中心に南国にひきこもりつつ、生活費は5万円くらいで生きています。me!ブログ・アフィリエイト・プログラミングを愛しています。ブログを書きまくる→ブログ収益7桁達成。普段はバンコクを中心に南国にひきこもりつつ、生活費は5万円くらいで生きています。