PHPでブログ作成

とは言っても写経なのですがw

David・carrさんというWEB開発者の方のブログを参考にさせてもらいました。

リンクはこちらです。

内容は英語で書かれて読むのが大変ですが、ポイントとなる箇所で解説があり、

ページの後ろの方にはソースコードが記載されているので、

私のような初学者でも、

ひたすら写していけば(内容は分からずとも)いずれ完成します(爆)

ちなみに環境はMAMPです。環境構築は下記参照

MAMPのインストール

MAMPでバーチャルホスト

Apache Sever(Webサーバー)と、MySQL Sever(SQLデーターベース)に接続しない場合(Windowsでよく発生するらしい)

出来上がったもの

仕上がりはとてもシンプルなものです。

下記に出来上がったもののスクショを載せます。

(ページ内容が英語なのはサンプル丸写しのせいです。あとで変えます。)

・ブログ記事の表示

ブログ記事の表示画面

上記のページはブログ記事の一覧画面です。「Read More」を押すと全文が見れます。

・ログイン機能

ログイン画面

・ログイン後の画面

ログイン後画面

ここから色々な画面に飛べます

・ユーザー管理

ユーザー一覧

この画面から、ユーザの追加・変更・削除する画面にいけます。

・ブログ管理

ブログ管理画面

この画面から、記事の追加・変更・削除する画面にいけます。

ちなみに記事を追加する画面です。

学べること

HTML

CSS

MySQL

PHP

JavaScript

が学べます!

ちゃんと理解するには逐一調べたりする必要があるので大変そうです。

ちなみに私は動けばいいやって思って作ったので、しっかり調べてません!!(←やれよ)

とは言っても、多少は調べたりするので、DB接続の方法やソースの書き方は勉強になります。

詰まったとこ

①エラー表示がされない

②データベースのレコードを作成してない

③__autoload()関数でDeprecated(注意!!)

①エラー表示がされない について

PHPのエラーが画面に表示されるのを知りませんでした(爆)

とんでもない初心者です(笑)

とりあえず、全てのPHPファイルの一番先頭行に下記を記載しました(間違っていると思う)

<?php error_reporting(E_ALL); ?>

(記述場所について考えなしですが、これから勉強してきます。)

「全ての PHP エラーを表示する」らしいです。

これによりエラー発生時は画面にエラーメッセージが表示されるとのことです。

また、ログも出力されます。

私はwindowsユーザーで、かつ、デフォルト状態でインストールしたので

C:\MAMP\logs

にログが出力されてます。

動かないor動きがおかしいときはここを見ます。

②データベースのレコードを作成してない について

参考にしたHPにはDBのテーブル構成について書いてましたが、レコード作成については記載されてなかったので、ド忘れしてました。

ちゃんとデータベース作成して、テーブルとレコードを登録してくださいね。

MAMPのphpMyAdminでMySQLデータベースの作成

MAMPのphpMyAdminでMySQLデータベースをエクスポート

③__autoload()関数でDeprecated について

ざっくり言うと

「__autoload()使うとエラーになるからspl_autoload_register()使ってね」

です。

ブログ作成元HPのソースは__autoload()」を使っているので、「spl_autoload_register()」に書き換えてあげる必要があります。

念のため、こんな感じに書き換えたので掲載しておきます。

includes / config.php

//load classes as needed
spl_autoload_register(function ($class){
$class = strtolower($class);

//if call from within /assets abjust the path
$classpath = 'classes/class.'.$class . '.php';
if ( file_exists($classpath)) {
require_once $classpath;
}

//if call from within admin abjust the path
$classpath = '../classes/class.'.$class . '.php';
if ( file_exists($classpath)) {
require_once $classpath;
}

//if call from within admin abjust the path
$classpath = '../../classes/class.'.$class . '.php';
if ( file_exists($classpath)) {
require_once $classpath;
}

});

結構前に作成されたものなので、今ではPHPのバージョンが上がって使えなくなる関数も出てくるみたいですね。

詳しくは下記参照

__autoload()とspl_autoload_register()について丁寧に書いてあるのはこちら

問題が起きた場合の解決方法について

①エラーログを見る

②ググる

③人に聞く

①エラーログを見る について

ログを見ましょう。

エラーが起きたであろう時間に更新されているログファイルを見ましょう。

一番下の行にどんなエラーがどこで発生したのかが書いてあります。

②ググる について

エラーログの内容が分からない場合、内容そのままコピーもしくは必要な単語をコピーしてググりましょう。

似たような事例が出てくるので、その中から必要な情報を取得すればOKです。

エラーじゃなくて関数等の分からない場合等もググれば何かしら出てきます。

③人に聞く について

メンターを探せるMENTAというサービスを使って、

そこでメンター契約をしてもらった方に教えてもらってます。

どうしても分からない場合に、聞ける人がいるっていうのは心強いです。

自分が使ってるので私はMENTA推しですが、似たようなサービスは他にもあるので、

そこで探しても良いかもです。

とりあえずリンク貼っておきますね(オススメなので)

次にやりたいこと

ブログについて、中身を理解できてないので、復習しつつ改良していこうかと思ってます。

ちょっと改良したらgithubに上げようかと思います。(写経した旨記載して)

色々できてくると楽しいですね~

これからもゆるりと学んでいきます

シェアする

  • このエントリーをはてなブックマークに追加

フォローする