前端代碼:
if(register_flag){ //註冊資訊都正確
//alert(typeof($('.register-form').serialize()));
//序列化的結(jié)果: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(){
//錯(cuò)誤信息處理
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){//手機(jī)驗(yàn)證碼錯(cuò)誤
exit("手機(jī)驗(yàn)證碼錯(cuò)誤!");
return;
}else if($result){
exit("改手機(jī)號(hào)已經(jīng)注冊!");
return;
}else{
$insert = "INSERT INTO user(user_name,password,user_account) VALUES(".$name.",".$password.",".$account.")";
mysqli_query($insert);
exit("注冊成功!");
}
這裡報(bào)錯(cuò)說,explode()第二個(gè)參數(shù)應(yīng)該是string類型,但是我穿的是陣列類型。 ajax傳過去的data是string型啊,為什麼php透過$_POST[]接受就是array型了? data之前沒寫過php,請指教,謝謝~
小伙看你根骨奇佳,潛力無限,來學(xué)PHP伐。
你接收的參數(shù)就是一個(gè)數(shù)組,
$data =$_POST;
其實(shí)就是下面的數(shù)組
$data['name']='hesisi';
$data['account']='15223306809';
$data['verification-code']='2333';
...
并不是name=hesisi&account=15223306809&verification-code=2333&password=hss123456&confirm-pwd=hss123456,
你這個(gè)data就是數(shù)組,不是字符串,你不能去explode去切割
ajax加上參數(shù)Content-Type: 'text/plain'
php接受不要用$_POST,改成file_get_contents('php://input')
ajax 的話 不管你傳到後端的資料 是 json 還是 序列化的字串 到了後端都會(huì)被解析成陣列形式。
所以
$data =$_POST;
//$data 就是個(gè)數(shù)組啊
我想訪問樓主一句,你看url地址 www.baidu.com?search=關(guān)鍵字&s=key&time=143032423
你後臺(tái)接收的時(shí)候是不是要用$_GET 那還是個(gè)數(shù)組啊,關(guān)鍵就是$_GET 和 $_POST它們是怎麼工作的