よくわかるPHPの教科書でリンク先のページが真っ白になる【500 (Internal Server Error)】の解決法


よくわかるPHPの教科書で学習中にリンク先のページが真っ白になるというエラーを解決する方法をサクッとまとめます。
(初学者のエラー解決方の一例です。低レベルですがご了承ください)

今回は「削除機能をつける」の段階でのエラーでしたが全般的に起こりうるエラーだと思います(?)

【エラー詳細】

削除する為のコードを書いて削除ボタンに設定したリンクにアクセスすると、真っ白になりました。
リンク先を見てみると

delete.php=?id=18

となっているので、削除したい投稿にはアクセスできているみたいです。

【解決手順】
なにが起こっているのかわからなかったので、デベロッパーツールにて確認します

この「console」の部分を見てみると...

なにやらエラーが出ています。

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

調べてみると...
webサーバー上のエラー?っていうのが多く出てきましたが...(よくわかrん)

【500 (Internal Server Error)】

というのはかなりザックリしたエラーのようで、原因が色々あって特定が難しいらしい...

さらに調べると、もっと詳細のエラーを画面に出す為のコードがあるみたいで、下記コードをdelete.phpの先頭に記述しました。

ini_set("display_errors", 1);
error_reporting(E_ALL);      

これを記載すると

<?php

ini_set("display_errors", 1);
error_reporting(E_ALL);      

session_start();
require('dbconnect.php');

if(isset($_SESSION['id'])){
    $id = $_REQUEST['id'];

    $messages = $db->prepare('SELECT * FROM posts WHERE id=?');
    $messages->execute(array($id));
    $message = $messeges->fetch();

    if($message['member_id'] == $_SESSION['id']){
        $del = $db->prepare('DELETE FROM posts WHERE id=?');
        $del->execute(array($id));
    }
}

header('Location: index.php');
exit();
?>

こんな感じ。

上書き保存してもう一度、削除リンクにアクセスしてみると...

なにやら画面にエラーが表示されました。(ワクワク)

google翻訳さんに通訳してもらうと、
Fatal error  ・・・致命的だそうです。

そして

「delete.phpの14行目がダメだぞ!」
って言われてるみたいです。

そこでdelete.phpの14行目を確認してみると..

messagesの一部が

a  →  e

になっておりました。(貴様が原因か...!)

以上
スペルを直すと、正常に動作しました。

エラーの8〜9割はスペルミスだな〜と勉強していて感じます。
正確に打つこともそうですが、今回のようにエラー箇所が分かるようになると探す手間も省けるので、使いこなせるようになりたいです。
あと、エラーは間違いを教えてくれる優しい奴なんだな〜と感じました。

おしまい