Dalam pembangunan back-end web, PHP ialah bahasa pengaturcaraan yang sangat biasa digunakan. Apabila memproses permintaan POST protokol HTTP, kita perlu mendapatkan nilai parameter permintaan untuk pemprosesan logik seterusnya. Biasanya, kami menggunakan tatasusunan $_POST untuk mendapatkan parameter permintaan POST. Walau bagaimanapun, kadangkala kita perlu mendapatkan parameter permintaan POST bukan nilai, tetapi maklumat lain yang berkaitan. Artikel ini akan memperkenalkan kaedah yang berbeza untuk mendapatkan parameter permintaan POST dalam PHP dan menerangkan kelebihan dan kekurangannya.
1. Gunakan $_POST untuk mendapatkan nilai parameter permintaan POST
$_POST ialah salah satu pembolehubah super global terbina dalam PHP, digunakan untuk mendapatkan nilai parameter daripada permintaan POST. Khususnya, apabila klien menghantar permintaan kepada pelayan Web melalui POST, pelayan menyimpan data parameter dalam permintaan POST dalam tatasusunan $_POST Pembangun boleh terus menggunakan tatasusunan $_POST untuk mendapatkan nilai parameter permintaan POST .
Sebagai contoh, katakan klien menghantar permintaan POST yang mengandungi nama parameter ke pelayan:
Dalam kod PHP bahagian belakang, kita boleh mendapatkan permintaan dalam cara berikut Nilai parameter nama:
$name = $_POST['name'];
Kelebihan menggunakan tatasusunan $_POST untuk mendapatkan nilai parameter permintaan POST ialah ia adalah mudah dan pantas, serta mempunyai kecekapan pembangunan yang tinggi. Walau bagaimanapun, kelemahannya juga sangat jelas: jika nama parameter permintaan POST yang diserahkan oleh klien dieja dengan salah, atau parameter permintaan tidak wujud, tatasusunan $_POST akan mengembalikan nol, yang akan menyebabkan banyak masalah untuk pembangunan. Di samping itu, apabila menggunakan $_POST untuk mendapatkan nilai parameter permintaan POST, kami tidak dapat mengetahui beberapa maklumat lain yang berkaitan tentang parameter permintaan, seperti jenis parameter, kaedah pengekodan, dll. Maklumat ini juga mungkin sangat penting untuk beberapa operasi yang diperhalusi .
2. Gunakan $GLOBALS['HTTP_RAW_POST_DATA'] untuk mendapatkan data asal parameter permintaan POST
Selain menggunakan tatasusunan $_POST untuk mendapatkan nilai parameter POST, kami juga boleh menggunakan $GLOBALS['HTTP_RAW_POST_DATA '] Dapatkan data mentah parameter POST. Idea kaedah ini adalah untuk mendapatkan data parameter permintaan melalui protokol HTTP itu sendiri, dan kemudian menggunakan fungsi manipulasi rentetan PHP untuk menghuraikan dan memproses data.
Sebagai contoh, kod berikut boleh mendapatkan parameter permintaan POST:
$postData = $GLOBALS['HTTP_RAW_POST_DATA'];
if(!empty($postData) ){
// Parse dan proses $postData
}
Kelebihan kaedah ini ialah data asal parameter permintaan boleh diperoleh dan pembangun boleh melakukan pemprosesan yang lebih fleksibel dan terperinci. Walau bagaimanapun, kelemahannya juga jelas: dalam versi PHP yang lebih baharu, $GLOBALS['HTTP_RAW_POST_DATA'] telah dibatalkan dan isu keserasian akan berlaku apabila menggunakannya. Selain itu, apabila menggunakan kaedah ini, anda perlu menghuraikan dan memproses sendiri parameter permintaan Penghuraian dan pemprosesan yang tidak betul boleh menyebabkan ralat permintaan atau kelemahan keselamatan Anda juga perlu mempertimbangkan isu seperti penggunaan huruf besar dan pengekodan.
3. Gunakan php://input stream untuk mendapatkan data asal parameter permintaan POST
Sama seperti menggunakan $GLOBALS['HTTP_RAW_POST_DATA'] untuk mendapatkan data asal parameter permintaan POST, anda juga boleh menggunakan php Aliran ://input mendapat parameter permintaan POST. Aliran php://input ialah cara untuk PHP membaca badan permintaan Melalui aliran ini, kita boleh mendapatkan data asal parameter permintaan permintaan POST. Kod berikut menunjukkan cara menggunakan aliran php://input untuk mendapatkan parameter permintaan POST:
$postData = file_get_contents('php://input');
if(!empty ($postData )){
// Menghuraikan dan memproses $postData
}
Kelebihan kaedah ini ialah anda boleh menggunakan fungsi perpustakaan standard PHP untuk menghuraikan dan memproses parameter permintaan, yang lebih fleksibel. Walau bagaimanapun, kelemahannya juga sangat jelas: jika parameter permintaan tidak dihuraikan dan diproses dengan betul, ralat permintaan atau kelemahan keselamatan masih akan berlaku.
Ringkasnya, setiap kaedah mendapatkan parameter permintaan POST mempunyai kelebihan dan kekurangan tersendiri. Dalam pembangunan sebenar, kita perlu memilih kaedah yang sesuai dengan kita berdasarkan ciri-ciri projek. Pada masa yang sama, kami juga perlu memberi perhatian khusus kepada isu keselamatan Apabila menggunakan sebarang kaedah untuk mendapatkan parameter permintaan, kami perlu mengendalikan parameter permintaan dengan berhati-hati untuk memastikan keselamatan dan ketepatan data permintaan.
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan parameter permintaan pos dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!