• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SESSIONを使用したユーザ登録を作成しています。)

SESSIONを使用したユーザ登録の問題

このQ&Aのポイント
  • フォーム画面での名前入力が確認画面と登録完了画面でうまく受け渡されず、登録完了時に空の値がデータベースに登録されてしまう問題があります。
  • PHP初心者のため、受け渡しの方法がわからないとのことです。
  • 質問者は、フォーム画面で入力した名前が確認画面でも登録完了画面でも表示されるようにしたいと考えています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

SESSION変数に、入力してもらった名前を格納してないですね。 confirm.phpで、 $_SESSION['name'] = $_POST['name']; として、 complete.phpで、 $name = $_SESSION['name']; とする必要があるのではないでしょうか。 そして、以下余談。 ■htmlspecialcharsのタイミング 基本的に、格納された文字を出力するときにするのが一般的です。 今回の例ですと、フォームのinputタグのvalue値に出力するときに、 <?php echo htmlspecialchars($_POST['name'], ENT_QUOTES);?> などとする必要があります。 また、関数名が長くて面倒だしHTML中に書くとごちゃつく、ということであれば、 function h($value){ return htmlspecalchars($value, ENT_QUOTES); } とか、短い関数名を作ってやって、HTML上で <?php echo h($_POST['name'])?> とするとか。 ■mysqlのクエリに直接文字を入力してはだめ $name = mysql_real_escape_string($name); として、必ずエスケープを。(省略したソースの中に書いてあったんだったらすみません。)

h-h13
質問者

お礼

お忙しい中、ご回答有難う御座います。 できました。 complete.phpの方での受け渡しができていなかったでした。 また、色々と助言を有難う御座います。 また、勉強の身ですのでとても助かりました、 本当に有難う御座いました。

関連するQ&A