LoginSignup
1
1

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-09-06

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

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

【エラー詳細】
スクリーンショット 2020-09-06 10.45.36.png
削除する為のコードを書いて削除ボタンに設定したリンクにアクセスすると、真っ白になりました。
リンク先を見てみると

delete.php=?id=18

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

【解決手順】
なにが起こっているのかわからなかったので、デベロッパーツールにて確認します
スクリーンショット 2020-09-06 10.45.53.png

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

スクリーンショット 2020-09-06 10.45.59.png

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

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();
?>

こんな感じ。

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

スクリーンショット 2020-09-06 11.15.04.png

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

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

そして

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

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

スクリーンショット 2020-09-06 11.13.03.png

messagesの一部が

a  →  e

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

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

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

おしまい

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1