Front-end code:
if(register_flag){ //The registration information is correct
//alert(typeof($('.register-form').serialize()));
//序列化的结果:name=hesisi&account=15223306809&verification-code=2333&password=hss123456&confirm-pwd=hss123456
$.ajax({
type : 'POST',
url : 'php/register.php',
data : $('.register-form').serialize(), //序列化的字符串
success : function(data){
//window.location.href = "index.html";
},
error : function(){
//错误信息处理
console.log();
}
});
}
php code
require 'config.php';
$data =$_POST;
//name=hesisi&account=15223306809&verification-code=2333&password=hss123456&confirm-pwd=hss123456
$arr = explode("&",$data);
$name_arr = explode("=",$arr[0]);
$account_arr = explode("=",$arr[1]);
$verifcode_arr = explode("=",$arr[2]);
$password_arr = explode("=",$arr[3]);
$confirmpwd_arr = explode("=",$arr[4]);
$name = $name_arr[1];
$account = $account_arr[1];
$verifcode = $verifcode_arr[1];
$password = $password_arr[1];
$confirmpwd = $confirmpwd_arr[1];
$mobile_code = $_SESSION['mobile_code'];
$query = "SELECT * from user WHERE user_account=".$account;
$result = mysqli_query($query);
if($verifcode != $mobile_code){//手机验证码错误
exit("手机验证码错误!");
return;
}else if($result){
exit("改手机号已经注册!");
return;
}else{
$insert = "INSERT INTO user(user_name,password,user_account) VALUES(".$name.",".$password.",".$account.")";
mysqli_query($insert);
exit("注册成功!");
}
The error reported here is that the second parameter of explode() should be of string type, but what I used is array type. The data passed by ajax is of string type. Why does PHP accept the array type through $_POST[]? data has never written php before, please give me some advice, thank you~
The parameter you receive is an array,
ajax adds parameter Content-Type: 'text/plain'
If php accepts it, don’t use $_POST, change it to file_get_contents('php://input')
With ajax, no matter whether the data you pass to the backend is json or serialized string, it will be parsed into an array form when it reaches the backend.
So
I want to visit the original poster, please look at the url address www.baidu.com?search=keyword&s=key&time=143032423
Do you need to use $_GET when receiving in the background? It is still an array. The key is how $_GET and $_POST work