ajax传递数组 php,ajax传递过去的data是一个序列化的字符串,为什么php接受过去确实一个数组?...

这篇博客探讨了前端使用Ajax发送POST请求到PHP处理时遇到的数据类型问题。前端通过serialize()方法将表单数据序列化为字符串,但PHP通过$_POST接收时却变成了数组。博主在尝试解析POST数据时遇到了explode()函数参数错误,提示第二个参数应为string类型。博客中展示了前端和PHP的代码片段,并寻求解决方案。
摘要由CSDN通过智能技术生成

前端代码:

if(register_flag){ //注册信息都正确

//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代码

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("注册成功!");

}

37dd7e24192a1db10a1b7ed21bf35ee8.png

这里报错说,explode()第二个参数应该是string类型,但是我穿的是数组类型。ajax传过去的data是string类型啊,为什么php通过$_POST[]接受就是array类型了?data之前没写过php,请指教,谢谢~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值