我正在为我的网站制作一个简单的注册表单。在MAMP上测试它。使用ajax将注册信息发送到执行此代码的php文件:
<?php
include("connection.php");
$username = "";
$pw = "";
$errorMsg = "";
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
if ($_POST["submit"] == "Sign Up!")
{
if(!($_POST["username"]))
$errorMsg .= "You must enter a user name. <br />";
else if(strlen($_POST["username"]) < 3 OR strlen($_POST["username"]) > 8)
$errorMsg .= "You user name must be between 3 and 8 characters long.<br />";
else if(!ctype_alnum($_POST["username"]))
$errorMsg .= "Your user name can contain only letters & numbers. <br />";
else
$username = test_input($_POST["username"]);
if(!($_POST["pw"]))
$errorMsg .= "You must enter a password. <br />";
else if(strlen($_POST["pw"]) < 8 OR strlen($_POST["pw"]) > 16)
$errorMsg .= "Your password must be between 8 and 16 characters long.<br />";
else if(!$_POST["confirmpw"])
$errorMsg .= "You must confirm your password.<br />";
else if($_POST["confirmpw"] != $_POST["pw"])
$errorMsg .= "Your password confirmation doesn't match.<br />";
else
$pw = test_input($_POST["pw"]);
if(!$errorMsg)
{
$query = "SELECT * FROM `userinfo` WHERE `username` ='".$username."'";
$result = mysqli_query($connection001, $query);
if (mysqli_num_rows($result) > 0)
$errorMsg = "There is another account registered with this username. Do you want to log in?";
else
{
$query = "INSERT INTO `userinfo` (`username`, `password`) VALUES ('".$username."', '".$pw."')";
mysqli_query($connection001, $query);
}
}
$data = array("username" => $username, "errorMsg" => $errorMsg);
echo json_encode($data);
}
?>
它似乎工作原因到目前为止我设法添加条目到我的表,但每次我这样做我也得到这个错误返回:
TypeError:field_id.match(...)为null
似乎它与MAMP如何管理其数据库有关...这是我应该关注的事情吗?如果是这样,你能否指出我可能的解决方案?