2012-09-09 16 views
1

我有一个网站用于创建用户帐户。该网站目前运作良好,但我想知道如何改善和解决我有问题。如果站点发送帖子到服务器端php,它会正确创建用户,但是如果有人加载服务​​器php文件而没有发布,它将创建一个用户到db中,所有值都为空。我正在做一些检查用户,但请帮我优化我的代码。先谢谢你。

/// 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"); 
} 
} 

回答

2

检查用户名和密码是否为空(也不要忘记修剪)。

if (!empty($_POST['username']&&!empty($_POST['password'])) { 
    // Here create new account 
} 
+0

哪来这去了?我检查用户后?或者它会取代我(如果(isset($ _ POST)))?以及我如何修剪? – Jareddlc

1

isset($_POST)总是如此。当页面被加载而没有发布时,$_POST被设置为一个空数组。

变化是if (count($_POST) > 0)

1

可以判断值

$username = trim($_POST['username']); 
$password = trim($_POST['password']); 

if (!empty($username&&) && !empty($password)){ 

    //before you insert the data,you can do like this to avoid some special chars 

    $username = strip_tags($username); 

    //and then excute the sql to insert account 
    //I suggest you use mysqli_query, while not mysql_query 

} 
+0

谢谢你的建议! – Jareddlc