Code frontal :
if(register_flag){ //Les informations d'enregistrement sont correctes
//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();
}
});
}
code php
requiert '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("注册成功!");
}
L'erreur signalée ici est que le deuxième paramètre de explosive() doit être de type chaîne, mais ce que j'ai utilisé est de type tableau. Les données transmises par ajax sont de type chaîne. Pourquoi PHP accepte-t-il le type tableau via $_POST[] ? data n'a jamais écrit de php auparavant, donnez-moi s'il vous plaît quelques conseils, merci ~
Le paramètre que vous recevez est un tableau,
ajax ajoute le paramètre Content-Type : 'text/plain'
Si php l'accepte, n'utilisez pas $_POST, remplacez-le par file_get_contents('php://input')
Avec ajax, peu importe que les données que vous transmettez au backend soient du JSON ou une chaîne sérialisée, elles seront analysées sous forme de tableau lorsqu'elles atteindront le backend.
Alors
Je souhaite visiter l'affiche originale, veuillez consulter l'adresse URL www.baidu.com?search=keyword&s=key&time=143032423
Avez-vous besoin d'utiliser $_GET lors de la réception en arrière-plan ? Il s'agit toujours d'un tableau. La clé est de savoir comment fonctionnent $_GET et $_POST
.