0

会員セクションのあるウェブサイトを作ろうとしています。メンバー セクションにサインアップするには、既にデータベースに登録している必要があります。ユーザー名とパスワードが提供され、サインアップ時にメールアドレス、アドレス、パスワードを入力できます。

したがって、私の問題は、正しい情報を入力していることがわかっているのに、ユーザー名またはreg_idが間違っているというエラーが表示されることです。

else {
    mysql_close($con);
    header("location: index.php?signup&error-msg=Incorrect Username or Registration ID.");
}

これが私のログインフォームです:

<form action="function.php?signup" method="post">
  <table cellspacing="20" class="span12">
    <tr>
      <td>
        <input type="text" name="name" placeholder="Full Name">
      </td>
    </tr>
    <tr>
      <td>
        <input type="email" name="email" placeholder="Email">
      </td>
    </tr>
    <tr>
      <td>
        <input type="text" name="address" placeholder="Address">
      </td>
    </tr>
    <tr>
      <td>
        <input type="text" name="reg_id" placeholder="Your Registration ID">
      </td>
    </tr>
    <tr>
      <td>
        <input type="password" name="password" placeholder="Password">
      </td>
    </tr>
    <tr>
      <td>
        <input type="submit" placeholder="Confirm Signup" value="Confirm Signup">
      </td>
    </tr>
  </table>
</form>

function.php にはさまざまな関数などがありますが、サインアップ フォーム用のものは次のとおりです。

elseif (isset($_GET['signup'])) {

  $username = $_POST['username'];
  $reg_id   = $_POST['reg_id'];

  $qry = mysql_query("
    SELECT *
    FROM users
    WHERE username = '$username'
      AND registration_id = '$reg_id' ", $con);

  if (!$qry) {
    mysql_close($con);
    die("Query Failed: " . mysql_error());
  } else {
    $row = mysql_fetch_array($qry);
  }

  if ($_POST['username'] == $row["username"] && $_POST['reg_id'] == $row["registration_id"]) {
    $password = $_POST['password'];
    $email    = $_POST['email'];
    $address  = $_POST['address'];

    $qry = mysql_query("
      INSERT INTO users
        (password, profile_email, profile_address)
      VALUES ('$password', '$email', '$address')", $con);

    if (!$qry) {
      die("Query Failed: " . mysql_error());
    } else {
      header('location: index.php?success-msg=You have successfully signed up');
    }
  }

  else {
    mysql_close($con);
    header("location: index.php?signup&error-msg=Incorrect Username or Registration ID.");
  }

}

私はまだ学んでいるので、私が何を台無しにしたのか、あるいはそれが正しかったのかさえわかりません。事前に私を助けてくれた人に感謝したいと思います。すべての助けに感謝します。

-ジェームズ

4

3 に答える 3

5

$_POST['username']$_POST['name']HTMLフォームに準拠する必要があります。

于 2013-10-01T20:01:08.343 に答える
1

次のようなものを使用できます:

if (isset($_GET['signup'])){//if

    $username = $_POST['name'];
    $reg_id = $_POST['reg_id'];

    $qry = mysql_query("SELECT * FROM users WHERE username='$username' AND registration_id='$reg_id'", $con) or die(mysql_error());
    $row=mysql_num_rows($qry);

    if($row == '1'){ ///if regcode exists
    ////insert into database
    $password = $_POST['password'];
    $email = $_POST['email'];
    $address = $_POST['address'];

    $qry2 = mysql_query("INSERT INTO
            users(password,profile_email,profile_address)
            VALUES ('$password','$email','$address')", $con) or die(mysql_error());
    header('location: index.php?success-msg=You have successfully signed up');

    }///if regcode exists
    else{
      ///didn't find the reg id
      header("location: index.php?signup&error-msg=Incorrect Username or Registration ID.");

    }


    }//if
于 2013-10-01T20:11:44.887 に答える
1

INSERT の代わりに update を使用します。以下は、修正されたパッチです。

$qry = mysql_query("UPDATE users SET password='$password',profile_email='$email',profile_address='$address' 
        WHERE registration_id='$reg_id'");
于 2013-10-01T20:03:35.853 に答える