※ ChatGPTを利用し、要約された質問です(原文:php $_SESSIONでデータが残らない。)
php $_SESSIONでデータが残らない
いつもお世話になり誠にありがとうございます。
標記の件。
インプット画面ー>確認画面ー>戻るー>インプット画面
インプット画面に戻った時、どうしても最初のインプット画面で打った内容が消えてしまいます。
プログラムを診て、誤りを指摘して頂けないでしょうか?
今度はCSSなども書きます。
どうぞよろしくお願い致します。
記
<?php
session_start();
$mode = 'input';
if( isset($_POST['back']) && $_POST['back'] ){
//何もしない
} else if( isset($_POST['confirm']) && $_POST['confirm'] ){
$_SESSION['name'] = $_POST['name'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['category']= $_POST['category'];
$_SESSION['message'] = $_POST['message'];
$mode = 'confirm';
} else if( isset($_POST['send']) && $_POST['send'] ){
$mode = 'send';
} else {
$_SESSION['name'] ="";
$_SESSION['email'] ="";
$_SESSION['category']="";
$_SESSION['message'] ="";
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta http-equiv="content-type" content="text/html" charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ブログ</title>
<meta name="description" content="このWebサイトは、初めてHTMLで作るブログページです。">
<link rel="stylesheet" href="./css/style.css">
<style>
body{
width: 100%;
max-width: 800px;
margin-top: auto;
margin-left: auto;
margin-right: auto;
background-color: rgb(71, 133, 157);
padding: 10px;
text-align: center;
}
div{
background-color: rgb(247, 248, 245);
padding: 2em;
}
script{
margin-top: 12em;
}
p {
margin-left: 2em;
text-align: left;
font-size: 25px;
font-weight: bold;
color: rgb(10, 10, 10);
}
form {
font-size: 25px;
font-weight: bold;
color: blue;
}
input {
font-size: 25px;
margin:auto;
}
</style>
</head>
<body>
<div class="v_line_fix">
<h1>Blog K・T</h1>
<h2><a href="index.html">トップページ</a></h2>
<?php if( $mode=='input'){ ?>
<form method=post>
お名前(ニックネーム)<br>
<input type="text" name="name" value="<?php echo $_SESSION['name'] ?>"><br>
Eメール<br>
<input type="email" name="email" value="<?php echo $_SESSION['email'] ?>"><br>
カテゴリー<br>
<input type="text" name="category" value="<?php echo $_SESSION['category'] ?>"><br>
本文<br>
<textarea style="font-size:1.5em;" cols="30" rows="80" name="message"><?php echo $_SESSION['message'] ?></textarea><br>
<input type="submit" name="confirm" value="確認" />
</form>
<?php }else if( $mode=='confirm'){ ?>
<!--確認画面-->
<form method="post">
<?php echo $_SESSION['name']?><br>
<?php echo $_SESSION['email']?><br>
<?php echo $_SESSION['category']?><br>
<br>
<?php echo nl2br($_SESSION['message'])?><br>
<input type="submit" name="back" value="戻る"/>
<input type="submit" name="send" value="送信"/>
}
</form>
<?php } else { ?>
<!--完了画面-->
<?php } ?>
</body>
</html>