• 締切済み

PHP入力フォームについて

現在入力フォームを作っています。 流れとしてはDBに入っている会員情報をフォーム上に呼び出して(各inputにはDB内の会員の情報が表示される)各会員が自分の情報を編集できるというフォームです。 ここで質問なのですが、会員の人が自分の入力内容を変更した際に入力漏れがあるとフォーム画面に戻るのですがその際に入力した内容が表示されるのではなくDB内のデータが表示されてしまいます。 これをDB内のデータではなく入力した内容にしたいのですが、どうしたらよろしいでしょうか? ソースは下記になります。 form.php <?php DB呼び出し・・・ $_SESSION['name'] = $row['name']; ・・・ ?> <?php echo $_SESSION['err_name']; ?> <input type="text" name="name" value="<?php echo $_SESSION['name']; ?>" /> confirm.php <?php $name = htmlspecialchars($_REQUEST['name']); if(!strlen($name)) { $_SESSION['err_name'] = '氏名を入力してください。'; $errFlag = true; } else { unset($_SESSION['err_name']); } エラーの時はform.phpに戻る ?> <?php echo $name; ?> としています。 とても省略していますが、お分かりの方がいらっしゃいましたら教えていただけると助かります。

みんなの回答

回答No.1

if (! isset($_SESSION['err_name'])) { // DB呼び出し・・・  $_SESSION['name'] = $row['name']; } とかってすればいいんじゃないですか? 今の作りを見る限りだと、form.phpにアクセス時、一律DBから 情報を引っ張ってきているわけだから、エラー情報が設定済みの 場合には引っ張ってこなきゃいいですよね。 それと、セッション変数を使ってるので、confirm.php側で、 入力値をセッション変数に入れなおすという制御を追加 してあげればいいんでなかろうかと。 と、質問にだけ答えてみましたが、いかがでしょうか?

関連するQ&A