帐户未在PHP中创建

时间:2015-04-30 10:17:49

标签: javascript php html

我遇到的问题是,当我尝试创建帐户时,我得到的数据似乎总是如此

  

用户名必须介于3到15个字符之间

并且永远不会创建帐户。

让我感到困惑的是页面重新加载到login.html

Create.html表格

<form action="create.php" method="post" id="createForm">
    <div>
        <div class="row">
            <div class="12u">
                <input type="text" name="Username" placeholder="Username" id="username"/>
            </div>
        </div>
        <div class="row">
            <div class="12u">
                <input type="password" name="Password" placeholder="Password" id="password"/>
            </div>
        </div>
        <strong id="strongText" style="display: none;"></strong>
        <div class="row">
            <div class="3u">
                <input type="button" value="Create Account" id="create"/>
            </div>
            <div class ="6u"></div>
            <div class="3u">
                <input type="button" value="Have an account?" id="login"/>
            </div>
        </div>
    </div>
</form>

Create.html javascript

$(document).ready(function() {

  $("#create").click(function(e) {
    e.preventDefault();
    document.getElementById("create").disabled = true;
    document.getElementById('strongText').innerHTML = "Creating account, please wait...<br>";
    $("#strongText").fadeIn();
    var username = $('#username').val();
    var password = $('#password').val();
    $.ajax({
      type: 'POST',
      data: {
        username: username,
        password: password
      },
      url: 'createCheck.php',
      success: function(data) { //Receives the data from the php code 
        //console.log(data);
        if (data == "Unavailable") {
          document.getElementById('strongText').innerHTML = "Username Unavailable<br>";
          document.getElementById("create").disabled = false;
        } else if (data == 'Username must be between 3 and 15 characters') {
          document.getElementById('strongText').innerHTML = data + "<br>";
          document.getElementById("create").disabled = false;
        } else if (data == 'Password must be between 5 and 25 characters') {
          document.getElementById('strongText').innerHTML = data + "<br>";
          document.getElementById("create").disabled = false;
        } else {
          $.post(
            'create.php',
            $('#createform').serialize(),
            function(data, status) {
              document.getElementById('strongText').innerHTML = data + "<br>";
              window.location.href = "login.html";
            }
          );
          //window.location.href = "/login.php";
        }

      },
      error: function(xhr, err) {
        console.log("readyState: " + xhr.readyState + "\nstatus: " + xhr.status);
        console.log("responseText: " + xhr.responseText);
      }
    });

  });


});

createCheck.php

<?php
define('DB_SERVER', "XXX");
define('DB_USER', "XXX");
define('DB_PASSWORD', "XXX");
define('DB_DATABASE', "XXX");

$password = $_POST["password"];
$username = $_POST["username"];

$mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE);


if(mysqli_connect_errno()) {
    echo "Connection Failed. Please send an email to XXX@XXX.com regarding this problem.";
    exit();
}

if (strlen($username) < 3 || strlen($username) > 15) {
	echo "Username must be between 3 and 15 characters";
} elseif (strlen($password) < 5 || strlen($password) > 25) {
	echo "Password must be between 5 and 25 characters";
} elseif ($stmt = $mysqli->prepare("SELECT `username` FROM `accounts` WHERE username = ?")) {
    $stmt->bind_param("s", $username);
    $stmt->execute();
    $stmt->store_result(); 
    if ($stmt->num_rows) {
        //echo json_encode("0");
        echo "Unavailable";

        //if unavailable
        // header('Location: /register.html'); 
    }
    else {
        //echo json_encode("1");
        echo "1";
    }

}

mysqli_close($mysqli);

?>

1 个答案:

答案 0 :(得分:1)

所需的变量区分大小写,因此我需要从

更改html
<input type="text" name="Username" placeholder="Username" id="username"/>

<input type="text" name="username" placeholder="Username" id="username"/>

我收到的错误是该值为Null