読者です 読者をやめる 読者になる 読者になる

リスを倒す 『初めてのPHP,MySQL,JavaScript&CSS』

『初めてのPHP,MySQL,JavaScript&CSS』勉強奮闘記

21-1. 総まとめ①ソーシャルネットワーキングの設計

総まとめ入ります。

最後のまとめとして、ソーシャルネットワーキングを設計します。
どうなることやら。というか、やっときた21章。。。7月からはじめて、6カ月。。。
つっても、まだまだ。。。実になってんのかというと正直。。。

1-1. ソーシャルネットワーキングの設計


コードを書く前に、ひとまずサイトに必要なものって何があるんだっけ?というのを考えてみましょ。

・メンバー登録のできるサインアップ処理
・メンバーがログインするログインフォーム
・メンバーがログアウトするログアウト機能
・セッション管理
・メンバーがアップロードしたサムネイルつきのユーザープロファイルの表示
・メンバー一覧を表示する機能
・メンバーを友達に追加する機能
・メンバー間での、メッセージのやりとり
・プロジェクトのスタイリング
とりあえず、こんなところ。


1-2. functions.phpの作成


f:id:taro-blog2323:20161228151641p:plain

結果はこちら。
f:id:taro-blog2323:20161228151732p:plain

このワーニングってのは、時間のある時に直せばいいけど動作に問題がある場合もあるよというやつらしい。
んで、この警告文を見ると、パラメータの定義が2つ必要だけど1個になってるよ、というやつです。
あと、mysql_connectだとundefinedになってしまって、mysqli_connectに書き換えたら大丈夫になった。これはmysqlが古い?っぽいらしい。

色々探しまくったけど、よくわからず。とりあえず先に進みます。
ただ、これは私の残念な部分がでてて、とりあえず先に進みたくてなあなあにしてた罰があたったんだと思う。やってるつもりになって全然理解してなかった。指だけ動かし脳みそ使わずだった。
DBの基本的な仕組みとか、定義を確認できる場所がわからないという。くそ。
今週は時間があるので、先に進みつつ、復習をします。

1-3. プロジェクトで使用する主要関数


さて、functions.phpで使用した5つの主要関数を見ていきます。

①createTable


function createTable($name, $query)
{
queryMysql("CREATE TABLE IF NOT EXISTS $name($query)");
echo "Table '$name' created or already exists.
";
}

テーブルがすでに存在しているかを調べて、存在してない場合に作成します

②queryMysql


function queryMysql($query)
{
$result = mysqli_query($query) or die(mysqli_error());
return $result;
}

クエリをMySQLに発行し、失敗した場合にはエラーメッセージを出力します

③destroySession


function destroySession()
{
$_SESSION=array();

if (session_id() != "" || isset($_COOKIE[session_name()]))
setcookie(session_name(), '', time()-2592000, '/');

session_destroy();
}


PHPセッションを破棄し、セッションデータを消去してエラーメッセージを出力します

④sanitizeString


function sanitizeString($var)
{
$var = strip_tags($var);
$var = htmlentities($var);
$var = stripslashes($var);
return mysql_real_escape_string($var);
}

悪意のあるコードやタグをユーザー入力から取り除きます。

⑤showProfile


function showProfile($user)
{
if (file_exists("$user.jpg"))
echo "";

$result = queryMysql("SELECT * FROM profiles WHERE user='$user'");

if (mysql_num_rows($result))
{
$row = mysql_fetch_row($result);
echo stripslashes($row[1]) . "

";
}


ユーザーの画像と"about me"メッセージが投稿されている場合、それを表示します。

いじょう。
すごいなープログラマーって。ほんとにすごい。