1

ユーザーアカウントを作成するサイトがあります。このサイトは現在うまく機能していますが、私が抱えている問題を改善して修正する方法を知りたいです。サイトがサーバー側のphpに投稿を送信すると、ユーザーが正しく作成されますが、誰かが投稿せずにサーバーのphpファイルを読み込むと、すべての値が空白のユーザーがデータベースに作成されます。ユーザーのチェックを行っていますが、コードの最適化を手伝ってください。前もって感謝します。

/// HTML ///

<form id="form_customer">
    // form stuff here, please note my button for submit is not in the form but outside
</form>

<button id="form_submit">Submit</button>
<button id="form_cancel">Cancel</button>

//Javascript jQuery

$("#form_cancel").click(function() {
  window.location = 'index.php';
});


$("#form_submit").click(function() {
$.post("incl/server_register.php", payload, function(data) {
    if(data == "500"){
        alert("An Error has occured.");
    }
    if(data == "200"){
        alert("Registration complete. Redirecting...");
        indow.location = 'index.php';
    }
    if(data == "400")
        alert("Username already exists. Please select another.");
},"json");

// And here is my server side PHP
$mysqli = new mysqli($dbHost, $dbUser, $dbPass);
$mysqli->select_db($dbDB);

// Check connection
if($mysqli->connect_error) {
    die('Connection Error: (' .$mysqli->connect_errno .') ' .$mysqli->connect_error);
}

if(isset($_POST))
{
    // Query DB 
$check = "SELECT * FROM table WHERE Username='$sUsername'";
$result = $mysqli->query($check);

if($result->num_rows == 0)
    {
        $query = "INSERT into table (blah blah)
        $result = $mysqli->query($query);
    if($result == false)
        echo json_encode("500");
    else {
        echo json_encode("200");
        mail($to, $subject, $message, $headers);
    }
}
else
    echo json_encode("400");
}
}
4

3 に答える 3

2

ユーザー名とパスワードが空でないかどうかを確認します (trim も忘れないでください)。

if (!empty($_POST['username']&&!empty($_POST['password'])) {
     // Here create new account
}
于 2012-09-09T03:30:30.403 に答える
1

isset($_POST)は常に真です。ページが投稿されずに読み込まれる$_POSTと、空の配列に設定されます。

変更はif (count($_POST) > 0)

于 2012-09-09T03:30:58.847 に答える