

現在phpの学習のためにwebアプリケーション 『ブログ』を作っています。  
二つほど質問させていただきたいと思います。

質問の一つ目はエラーメッセージ判定、表示です。  
投稿ボタンを押したときに  
タイトル のinput（title)  
textarea（ここではmessageする）  
空で合った場合にエラーを表示させたいと思っています。  
ですが遷移先が同じページにしたいのでPOSTで送信された値が消えてしまう？  
そのためセッションでの判定である必要があると考えています。  
該当しているコードはこちらになります  
なお初心者のためわからないことが多く  
エラー処理の記述の部分では正常に機能していないですが  
こういった感じで処理すれば良いのかなと思ったものを記述しているだけです。

[code]

    if(isset($_SESSION['save'])){
        if($_SESSION['title'] == "") {
            $error['title'] = 'blank';
        }
        if($_SESSION['message'] == "") {
            $error['message'] = 'blank';
        }
        if(empty($error)){
            $_SESSION['save'] = $_POST;
            unset($_SESSION['save']);
            header('Location: ../blog5_file/blog5.php');
            exit();
        } 
    }
    
    if(!empty($_POST)){
        if(isset($_POST['token']) && $_POST['token'] === $_SESSION['token']) {
            $message = $db->prepare('INSERT INTO blog_information SET created_by=?,title=?, message=?, created=NOW()');
            $message->execute(array($member['id'],$_POST['title'], $_POST['message']));
            $_SESSION['save'] = $_POST;
            header('Location:../blog5_file/confirm.php');
            exit();
        }else {
            header('Location:../blog4_file/blog4.php');
            exit();
        }
    }
    
[/code]

質問の二つ目は、画像の「投稿」の下の部分が投稿されたブログの詳細ページに飛ぶためのページを表示しています。  
こちら a タグで囲んでいるのですが、クリックするとdbに保存されているブログをmessage_idで判別し表示するように処理したいと考えております。  
メインのページからの遷移先（ブログの詳細ページ）では

[code]

    $posts=$db->query('SELECT p.title, p.message_id, p.message *FROM blog_information p WHERE p.message_id=$_GET["action"]');
    
[/code]

dbのblog_informationからそのブログのタイトル、メッセージID(ブログごとに振り与えられているID)、メッセージを引き出してくるようにし下記のように処理し投稿されたブログを見れるようにしたいと思っております。

[code]

    <!-- <div class="content">
        <p>タイトル
            <span class="content_title"><?php echo htmlspecialchars($post['title'], ENT_QUOTES);?></span>
        </p><br />
        <p>メッセージ
            <span class="content_message"><?php echo htmlspecialchars($post['message'], ENT_QUOTES);?></span>
        </p><br />
        <?php if($_SESSION['id'] == $post['created_by']): ?>
        <a href="../delete.php?id=<?php echo htmlspecialchars($post['message_id'], ENT_QUOTES); ?>">削除</a>]<?php endif; ?></span></p>
        </div> -->
    
        $posts=$db->query('SELECT p.title, p.message_id, p.message *FROM blog_information p WHERE p.message_id=$_GET["action"]');
    
[/code]

質問の本題なのですが上記の部分なのですがdbのメッセージIDとブログ詳細ページを開くときに送られる `a
action=$post['message_id']` が同じであるデータを持ってくるようにしたいです。  
記述考え方として合っているか教えていただきたいと思います。

初心者であるため、理解できていない部分が多くあるのですが  
アドバイスや、回答をご教授いただけたら幸いです。

[![こちらがメインの画面になります](https://i.stack.imgur.com/uQou8.png)](https://i.stack.imgur.com/uQou8.png)


CC BY-SA 4.0
2022-03-04T10:28:42.540
86683
2022-03-04T11:34:27.783
2022-03-04T11:34:27.783
3060
51665
question
php mysql
SESSIONでエラーを判定し　エラーがなければdbに保存　エラーがあれば処理を中止させたい etc