前提・実現したいこと
PHPを用いて、送信フォームを作成しています。
名前、年齢の入力部分に、未入力の場合にはエラーメッセージが出ます。
エラーメッセージと同時に入力した値がリセットされ保持されません。
バリデーション実行後にも値を保持した状態にしたいです。
該当のソースコード
ファイルを4つに分けて作成しています。
入力ページをindex.php
送信後のページをsubmit.php
とし、
html部分とphp部分を分けています。
html部分はtemplateというファイルの中に入れております。
以下のような形です。
index.php
submit.php
templateファイル内
index.php
submit.php
該当のコードを以下に記載致します。
◉index.php
<?php include 'template/index.php' ?>◉submit.php
<?php $name = $_POST['name']; $age = $_POST['age']; //初期化 $isError = false; //名前が空白の場合 if (strlen($name) == 0){ echo "名前が未入力です。${isError}"; } //年齢が空白の場合 if (strlen($age) == 0){ echo "年齢が未入力です。${isError}"; } //テンプレートの呼び出し if(strlen($name) == 0 or strlen($age) == 0) { //エラーの場合 include 'template/index.php'; }else{ //それ以外 include 'template/submit.php'; } ?>template内
◉index.php
<html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html"; charset = "UTF-8"> <meta http-eqiv = "Content-Type" content="text/html" charset="UTFー8"> <title>sample</title> </head></html><body> <form action="submit.php?" method="post"> 名前 : <input type="text" name="name"><br> 年齢 : <input type="text" name="age"><br> <input type="submit" value="送信"> </form> </body>
◉submit.php
<DOCTYPE html> <html lang="ja"> <head> <meta http-eqiv = "Content-Type" content="text/html" charset="UTF-8"> <title>sample</title> </head></html><body> <p> 私の名前は<?php echo htmlspecialchars($name); ?>です。 年齢は<?php echo htmlspecialchars ($age); ?>です。 </p> </body>
該当のコードは以上です。
アドバイスよろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー