私もSSSIONを使っています。ただ、処理はswitchで振り分けてプログラムは1ファイル、あとはHTML部分をテンプレートのようにして読み込ませています。
nyuryoku.php(少しはしょっていますが)
switch ($_POST["act"]) {
case "nyuryoku1":
$entchk = entchk("nyuryoku1");
< $entchk[0] を $_SESSION["nyuyoku1"] に登録 >
if ($entchk[1] != "") {
< nyuryoku1.html 読み込み >
} else {
< nyuryoku2.html 読み込み >
}
break;
case "nyuryoku2":
if ($_POST["submit"] == "リセット") {
unset($_SESSION["nyuyoku1"]);
< nyuryoku1.html 読み込み >
} elseif ($_POST["submit"] == "戻る") {
< nyuryoku1.html 読み込み >
} else {
$entchk = entchk("nyuryoku2");
< $entchk[0] を $_SESSION["nyuryoku2"] に登録 >
if ($entchk[1] != "") {
< nyuryoku2.html 読み込み >
} else {
< kakunin.html 読み込み >
}
}
break;
case "kakunin":
if ($_POST["submit"] == "リセット") {
unset($_SESSION["nyuyoku2"]);
< nyuryoku2.html 読み込み >
} elseif ($_POST["submit"] == "戻る") {
< nyuryoku2.html 読み込み >
} else {
< メール送信等の処理 >
< セッション破棄 >
< kanryou.php読み込み >
}
break;
default:
< nyuryoku1.html 読み込み >
}
function entchk($act) {
< ここも $act の値によって switch で case 分けして処理 >
< 半角→全角、全角→半角、ひらがな統一、カタカナ統一等の処理 >
< 入力内容の正当性チェック >
< OK の場合のみ 配列 ($array) にセット >
< NG の場合はそれぞれのエラーメッセージを変数 $errstr にセット >
< 配列 $entchk = array($array, $errstr); を返す >
}
nyuryoku1.html 、nyuryoku2.html ではエラーメッセージの箇所に
<?= $entchk[1] ?>を入れ、hidden で "act" を渡します。
リセットボタンは $_SESSION["nyuyoku1"] または $_SESSION["nyuyoku2"] にそれぞれ値があるかないかで、
<input type="riset" ....> と <input type="submit"> を使い分けます。
あとは、セッションから必要なデータを htmlspecialchar($_SESSION["name"]) のような形で書き出しています。
お礼
ありがとうございます。 表示用HTMLと、起動ファイルのようなPHPファイルで作成する方法もよさそうだな、と考えておりましたので、詳しいご回答をいただけてとても勉強になりました。 ありがとうございました!!