Maison > Questions et réponses > le corps du texte
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 ~
给我你的怀抱2017-05-16 13:02:09
Le paramètre que vous recevez est un tableau,
$data =$_POST;
其实就是下面的数组
$data['name']='hesisi';
$data['account']='15223306809';
$data['verification-code']='2333';
...
并不是name=hesisi&account=15223306809&verification-code=2333&password=hss123456&confirm-pwd=hss123456,
你这个data就是数组,不是字符串,你不能去explode去切割
習慣沉默2017-05-16 13:02:09
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')
迷茫2017-05-16 13:02:09
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
$data =$_POST;
//$data 就是个数组啊
淡淡烟草味2017-05-16 13:02:09
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
.