Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan pembolehubah superglobal dalam PHP

Cara menggunakan pembolehubah superglobal dalam PHP

PHPz
PHPzasal
2023-05-20 19:01:341212semak imbas

Pembolehubah superglobal dalam PHP merujuk kepada pembolehubah yang boleh diakses dalam skop global Setiap pembolehubah superglobal ialah tatasusunan bersekutu, yang mengandungi banyak pembolehubah yang dipratentukan dalam PHP, seperti $_GET, $_POST, $_COOKIE dan sebagainya. Pembolehubah superglobal ini sangat penting dalam pembangunan web kerana ia menyediakan cara penting untuk mendapatkan maklumat daripada permintaan pengguna, seperti mendapatkan data borang, mendapatkan parameter URL, dsb.

Artikel ini akan memperkenalkan secara terperinci pembolehubah superglobal yang biasa digunakan dalam PHP, termasuk fungsinya, cara menggunakannya dan cara mengelakkan isu keselamatan.

1. $_GET

$_GET ialah tatasusunan bersekutu yang mengandungi semua parameter yang melalui URL. Sebagai contoh, jika URL yang diminta ialah http://example.com/index.php?name=John&age=25, maka tatasusunan $_GET akan mengandungi elemen berikut:

array(
    'name' => 'John',
    'age' => '25'
);

Kita boleh mengaksesnya dalam cara berikut Nilai ini:

echo $_GET['name']; // 输出 'John'
echo $_GET['age']; // 输出 '25'

2. $_POST

$_POST juga merupakan tatasusunan bersekutu yang mengandungi semua data borang yang diserahkan melalui kaedah POST. Kita boleh menggunakannya untuk mendapatkan data daripada borang, seperti yang ditunjukkan di bawah:

<form action="process.php" method="post">
    <input type="text" name="name" />
    <input type="submit" value="Submit">
</form>

Apabila menyerahkan borang, kita boleh menggunakan pembolehubah super global $_POST untuk mendapatkan data yang diserahkan:

echo $_POST['name'];

3. $_COOKIE

$_COOKIE ialah tatasusunan bersekutu yang mengandungi semua kuki yang dihantar dalam permintaan semasa. Dalam kebanyakan kes, kita boleh menggunakan pembolehubah $_COOKIE untuk membaca kuki yang ditetapkan sebelum ini.

setcookie('name', 'John', time() + (86400 * 30), '/');

Ini akan menetapkan kuki dalam penyemak imbas pengguna bernama "nama" dengan nilai "John" dan akan tamat tempoh dalam masa 30 hari. Kita boleh menggunakan kod berikut untuk membaca nilai kuki:

echo $_COOKIE['name'];

4. $_SESSION

$_SESSION ialah tatasusunan bersekutu yang mengandungi semua pembolehubah yang disimpan semasa sesi pengguna. Apabila pengguna melawat tapak web anda, $_SESSION ialah satu-satunya perkara yang membezakan seorang pengguna daripada pengguna yang lain.

Untuk menyimpan data dalam Sesi, anda boleh menggunakan kod berikut:

session_start();
$_SESSION['name'] = 'John';

Dengan cara ini, kami boleh mengekalkan keadaan nilai tertentu sepanjang sesi:

session_start();
echo $_SESSION['name']; // 输出 'John'

5. $_SERVER

$_SERVER ialah tatasusunan yang mengandungi maklumat berkaitan pelayan dan klien apabila skrip semasa sedang dijalankan. Dengan menggunakan $_SERVER, kami boleh mengetahui beberapa maklumat yang diminta oleh pelanggan, seperti:

  • Alamat IP pengguna akses jauh: $_SERVER['REMOTE_ADDR']
  • Ejen pengguna: $ _SERVER['HTTP_USER_AGENT']
  • Laluan fail skrip semasa: $_SERVER['SCRIPT_FILENAME']
  • Kaedah permintaan semasa (GET/POST): $_SERVER['REQUEST_METHOD']
  • Direktori akar tempat skrip semasa berada: $_SERVER['DOCUMENT_ROOT']

Maklumat ini sangat berguna untuk pembangun.

6. $_FILES

$_FILES ialah tatasusunan yang mengandungi maklumat tentang fail dalam muat naik fail. Semasa memuat naik fail, anda boleh menggunakan $_FILES untuk mengendalikan fail yang dimuat naik.

Anda boleh menggunakan kod berikut untuk mencetak nilai $_FILES:

print_r($_FILES);

Ini akan mengeluarkan tatasusunan yang mengandungi maklumat fail, contohnya:

Array
(
    [file] => Array
        (
            [name] => file.txt
            [type] => text/plain
            [tmp_name] => /tmp/phpzAduR5
            [error] => 0
            [size] => 123
        )

)

7 isu keselamatan

Pembolehubah superglobal didayakan secara lalai dalam PHP dan pembangun boleh menggunakannya untuk mendapatkan data dengan mudah dalam permintaan web. Walau bagaimanapun, mereka juga merupakan sumber kelemahan keselamatan.

Penyerang boleh menggunakan pembolehubah superglobal dalam permintaan web untuk menyuntik kod hasad atau mencipta kelemahan dalam aplikasi web. Oleh itu, pembangun harus mengambil langkah berikut untuk melindungi tapak web mereka:

  1. Tapis data input. Anda boleh menggunakan fungsi filter_var() dalam PHP atau ungkapan biasa untuk menapis data input dan memastikan bahawa pengguna tidak menyuntik sebarang kod hasad.
  2. Sahkan data input. Pembangun harus mengesahkan semua data input untuk memastikan ia mematuhi format dan panjang yang dijangkakan. Contohnya, apabila bekerja dengan alamat e-mel, anda boleh menggunakan fungsi filter_var() untuk memastikan alamat e-mel berada dalam format yang betul.
  3. Jangan hantar pembolehubah superglobal terus kepada pertanyaan atau arahan SQL. Ini adalah amalan pengaturcaraan yang baik untuk mengelakkan suntikan SQL dan isu keselamatan lain.
  4. Tutup pelaporan ralat. Pada pelayan pengeluaran, keupayaan pelaporan ralat PHP harus dimatikan untuk menghalang penyerang daripada mendapatkan maklumat tentang seni bina aplikasi dan maklumat sensitif yang lain.

Ringkasan

Menggunakan pembolehubah superglobal dalam PHP boleh mendapatkan data dalam permintaan web dengan mudah. Pembangun harus memahami pembolehubah ini dengan teliti dan menggunakannya dalam mencipta aplikasi web. Walau bagaimanapun, pembangun juga harus memahami risiko keselamatan pembolehubah superglobal dan mengambil langkah yang perlu untuk memastikan keselamatan aplikasi.

Atas ialah kandungan terperinci Cara menggunakan pembolehubah superglobal dalam 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