0

登録フォームがあり、検証エラーでフォームを送信しようとした場合にユーザーが入力したデータを保持する Cookie を作成しようとしています。Cookie はこれを行っていますが、別の問題も引き起こしています。

フォームが読み込まれると、Cookie はフォーム フィールドに 2 つの空白が入力されたように見えます。ユーザーが検証エラーでフォームを送信すると、ユーザー情報は保持されますが、詳細の前に 2 つの空白が挿入されます。これは何が原因ですか?

HTML フォーム:

  <p class="error" id="jsFirstError">
    <?php
      if(isset($_COOKIE['firstNameErr'])) {
        echo $_COOKIE["firstNameErr"];
      }
    ?>
  </p>
  First name:<input type="text" name="fname" placeholder="First Name" id="firstNameField" autofocus="autofocus" value="
  <?php 
    if(isset($_COOKIE['firstNameEntry'])) {
      echo $_COOKIE['firstNameEntry'];
    }
    ?>"><br /><br />

検証とクッキー:

  if(empty($fname)) {
      $error = true;
      setcookie("firstNameErr", "Please enter your First Name.", time()+1, '/');
  } else if(!ctype_alpha($fname)) {
      $error = true;
      setcookie("firstNameErr", "Only letters are accepted, please re-enter your First Name.", time()+1, '/');
  } else {
      setcookie("firstNameEntry", $fname, time()+1, '/');
  }
4

1 に答える 1