PHP+SQLiteでTwitterのようなアプリをつくる(3)の続きです。今回はプロフィールの編集機能を追加します。

プロフィールを表示する

まずプロフィールを表示できるようにします。

ShowContents関数を変更します。

functions.php

ShowProfile関数はページ上部にそのユーザーのプロフィールを表示します。/?user=XXXにアクセスするとユーザーIDがXXXの投稿一覧が表示されるようにしているので、isset( $_GET[“user”])であればプロフィールを表示します。ただ/?user=XXXにアクセスしてもXXXというユーザーが存在しない場合もあるので、その場合は「該当するユーザーはいません」と表示させます。

ユーザーが存在する場合はそのユーザーが設定しているプロフィールが表示されます。またトップページへのリンクも表示されます。そしてログインしているユーザー自身のプロフィールが表示されている場合はプロフィール編集ページへのリンクも表示させます。

ExistUser関数はユーザーが存在するかどうかを返します。

GetProfileText関数はプロフィールに設定されているテキストを返します。

GetProfileImagePath関数はプロフィールに設定されている画像のパスを返します。

プロフィールを編集する

プロフィールを編集する機能を追加します。

edit-profile.phpにアクセスしたらプロフィール編集用のフォームを表示します。編集ページにアクセスしたらユーザーネームとプロフィールに設定されているテキストと画像ファイルのパスをフォーム内に表示します。

[プロフィールを変更する][プロフィール画像をクリアする]ボタンがクリックされたら自分自身にPOSTします。[プロフィールを変更する]がクリックされた場合は、ファイルが選択されている場合はアップロードしてそれが画像ファイルかどうかを調べます。画像ファイルではない場合は削除し、画像ファイルの場合はそのパスをデータベースに保存します。同時に設定されたユーザーネームとプロフィールのテキストをデータベースに保存します。

[プロフィール画像をクリアする]ボタンがクリックされたらデータベースに保存されている画像ファイルのパスを空文字列に置き換えます。

edit-profile.php

functions.php