Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk melaksanakan melompat dan lulus parameter dalam pengepala php

Bagaimana untuk melaksanakan melompat dan lulus parameter dalam pengepala php

PHPz
PHPzasal
2023-03-31 10:05:521502semak imbas

Apabila menggunakan PHP untuk membangunkan aplikasi web, kami sering menggunakan fungsi pengepala PHP untuk melompat ke halaman dan memindahkan parameter. Sangat mudah untuk melompat ke halaman Anda hanya perlu menambah pernyataan berikut pada kod PHP:

header('Location: http://www.example.com');

Dengan cara ini, penyemak imbas secara automatik akan melompat ke halaman http://www. example.com , supaya kami boleh membimbing pengguna ke halaman yang kami mahu dan mencapai lompatan halaman.

Tetapi bagaimana jika kita mahu melepasi beberapa parameter pada masa yang sama semasa melompat? Ini memerlukan penggunaan kaedah GET dan POST dalam protokol HTTP.

Apabila menghantar parameter, kita boleh menggunakan kaedah GET untuk menambahkan parameter pada URL, atau kita boleh menghantar parameter ke pelayan melalui kaedah POST.

Kaedah menghantar parameter melalui kaedah GET adalah seperti berikut:

header('Location: http://www.example.com?param1=value1&param2=value2');

Tambahkan tanda ? selepas URL, dan kemudian gunakan tanda & untuk memisahkan berbilang parameter digunakan Luluskannya dalam bentuk kunci=nilai. Sebagai contoh, dalam kod di atas, kami menambah dua parameter: param1 dan param2, yang masing-masing diberi nilai ​​1 dan nilai2.

Kaedah menghantar parameter melalui kaedah POST adalah seperti berikut:

$params = array('param1' => 'value1', 'param2' => 'value2');
header('Location: http://www.example.com', true, 307);
echo "<form id=&#39;postForm&#39; action=&#39;http://www.example.com&#39; method=&#39;post&#39;>";
foreach ($params as $key => $value) {
    echo "<input type=&#39;hidden&#39; name=&#39;$key&#39; value=&#39;$value&#39; />";
}
echo "</form>";
echo "<script>document.getElementById('postForm').submit();</script>";

Kaedah ini lebih rumit dan perlu dilaksanakan melalui borang HTML, tetapi lebih banyak kandungan parameter dan nilai parameter boleh dilalui. Dalam kaedah ini, kami mula-mula mentakrifkan tatasusunan $params untuk menyimpan parameter yang perlu diluluskan, dan kemudian menyerahkan parameter ini ke alamat sasaran melalui borang HTML untuk melengkapkan pemindahan parameter. Perlu diingat bahawa kita perlu menetapkan parameter kedua (benar) dalam fungsi pengepala untuk memastikan kod status mengembalikan 307 dengan betul. Kod status ini ialah ubah hala sementara, yang menunjukkan bahawa permintaan semasa ialah permintaan POST dan pelanggan harus diubah hala ke alamat baharu.

Sudah tentu, kita juga boleh menghantar parameter yang lebih kompleks, seperti menghantar tatasusunan atau objek. Pada masa ini, kita perlu menyusun parameter dan kemudian menyerahkannya. Contohnya:

$data = array('name' => 'Tom', 'age' => 20);
$params = http_build_query(array('data' => serialize($data)));

header('Location: http://www.example.com?' . $params);

Dalam kod ini, kami mula-mula menggunakan fungsi bersiri untuk menukar tatasusunan $data kepada rentetan, dan kemudian menggunakan fungsi http_build_query untuk mengekod rentetan dan menyambungkannya ke dalam URL untuk melengkapkan pemindahan parameter. Dalam URL sasaran, kita hanya perlu menggunakan rentetan pertanyaan untuk membaca parameter dan kemudian menyahsirikannya.

Ringkasnya, fungsi pengepala PHP memberikan kami lompatan halaman yang sangat mudah dan fungsi lulus parameter Kami hanya perlu menambah parameter yang diperlukan dalam kod PHP untuk melaksanakan aplikasi web yang cekap.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan melompat dan lulus parameter dalam pengepala php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn