serializers - Data yang diluluskan oleh ajax ialah rentetan bersiri, mengapa php menerimanya sebagai tatasusunan?
伊谢尔伦
伊谢尔伦 2017-05-16 13:00:09
0
4
988

Kod bahagian hadapan:
if(register_flag){ //Maklumat pendaftaran adalah betul

        //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();
            }

        });            

    }

kod php
memerlukan '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("注册成功!");
}

Ralat yang dilaporkan di sini ialah parameter kedua explode() mestilah daripada jenis rentetan, tetapi apa yang saya gunakan ialah jenis tatasusunan. Data yang diluluskan oleh ajax adalah daripada jenis rentetan Mengapakah PHP menerima jenis tatasusunan melalui $_POST[]? data tidak pernah menulis php sebelum ini, tolong beri saya nasihat, terima kasih~

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

membalas semua(4)
给我你的怀抱

Parameter yang anda terima ialah tatasusunan,

$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去切割
習慣沉默

ajax menambah parameter Jenis Kandungan: 'teks/plain'

Jika php menerimanya, jangan gunakan $_POST, tukar kepada file_get_contents('php://input')

迷茫

Dengan ajax, tidak kira sama ada data yang anda hantar ke hujung belakang ialah json atau rentetan bersiri, ia akan dihuraikan ke dalam bentuk tatasusunan apabila ia sampai ke hujung belakang.
Jadi

$data =$_POST;

//$data 就是个数组啊 
淡淡烟草味

Nak lawat poster asal, sila tengok alamat url www.baidu.com?search=keyword&s=key&time=143032423

Adakah anda perlu menggunakan $_GET apabila menerima di latar belakang. Perkara utama ialah bagaimana $_GET dan $_POST berfungsi

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan