Rumah pembangunan bahagian belakang masalah PHP Bagaimana untuk mendapatkan ralat parameter url dalam php

Bagaimana untuk mendapatkan ralat parameter url dalam php

May 28, 2023 pm 08:15 PM

Dalam proses pembangunan web, kami selalunya perlu menghantar parameter dalam URL untuk melaksanakan fungsi yang sepadan. Sebagai contoh, kita boleh menggunakan parameter URL untuk mengenal pasti halaman yang berbeza, menanya data khusus, melaksanakan halaman dan sebagainya. Walau bagaimanapun, apabila menggunakan PHP untuk menghuraikan parameter URL, ralat kadangkala berlaku, menyebabkan kegagalan untuk mendapatkan parameter. Artikel ini akan meneroka ralat parameter URL biasa dan cara menyelesaikannya.

  1. Tertib parameter yang salah

Dalam URL, tiada susunan parameter tetap, jadi sesetengah pembangun boleh mengatur parameter sesuka hati mengikut keutamaan atau tabiat mereka sendiri. Walau bagaimanapun, berbuat demikian boleh menyebabkan kegagalan pemerolehan parameter dengan mudah. Sebagai contoh, kita boleh mendapatkan parameter dalam URL melalui kod berikut:

<?php
  $id = $_GET['id']; // 获取id参数
  $name = $_GET['name']; // 获取name参数
?>
Salin selepas log masuk

Walau bagaimanapun, jika susunan parameter dalam URL mengelirukan, seperti: www.test.com?name=Tom&id=001, maka kod akan mempunyai ralat yang tidak boleh mendapatkan parameter.

Penyelesaian: Untuk memastikan parameter diperoleh dengan betul, kami boleh menyusun parameter dalam URL mengikut peraturan tertentu, seperti dalam susunan abjad atau dalam susunan fungsi. Jika kita perlu mendapatkan semua parameter, kita boleh menggunakan kaedah $_GET untuk mendapatkan tatasusunan bersekutu yang mengandungi semua parameter.

  1. Ralat pengekodan parameter

Sesetengah parameter mengandungi bahasa Cina, aksara khas, dsb. dan perlu dikodkan URL sebelum ia boleh dihantar dalam URL. Contohnya, jika parameter yang ingin kami lalui ialah "ujian", kami perlu menggunakan pengekodan URL untuk menukarnya kepada "%E6%B5%8B%E8%AF%95". Apabila menghantar parameter dalam URL, kaedah GET biasanya digunakan dan parameter dilampirkan pada URL dalam bentuk pasangan nilai kunci, contohnya:

www.test.com?id=001&name=%E6%B5%8B%E8%AF%95
Salin selepas log masuk

Jika kita mendapat parameter ini dalam PHP:

<?php
  $name = $_GET['name']; // 获取name参数
  echo $name;
?>
Salin selepas log masuk

Kemudian aksara bercelaru akan dikeluarkan: "Ujian?".

Penyelesaian: Dalam PHP, anda boleh menggunakan fungsi urldecode() untuk menyahkod parameter yang dikodkan URL. Contohnya:

<?php
  $name = urldecode($_GET['name']); // 获取name参数并解码
  echo $name;
?>
Salin selepas log masuk

Ini akan mengeluarkan aksara Cina dengan betul.

  1. Ralat tiada parameter

Dalam URL, jika parameter tiada atau tidak mempunyai nilai lalai, ralat akan dilaporkan apabila mendapatkan parameter ini dalam PHP. Contohnya:

<?php
  $id = $_GET['id']; // 获取id参数
  $name = $_GET['name']; // 获取name参数
  echo "$id, $name";
?>
Salin selepas log masuk

Apabila hanya terdapat id parameter dalam URL tetapi tiada parameter name, kod akan melaporkan ralat dan menggesa ralat Undefined index.

Penyelesaian: Untuk mengelakkan ralat kehilangan parameter, kami boleh menentukan sama ada parameter itu wujud sebelum mendapatkan parameter, contohnya:

<?php
  $id = isset($_GET['id']) ? $_GET['id'] : ''; // 获取id参数
  $name = isset($_GET['name']) ? $_GET['name'] : ''; // 获取name参数
  echo "$id, $name";
?>
Salin selepas log masuk

Ini boleh mengelakkan ralat disebabkan parameter hilang.

  1. Ralat jenis parameter

Biasanya, parameter yang kami hantar dalam URL adalah jenis rentetan Jika kami ingin menggunakan jenis angka atau jenis lain, kami perlu Buat penukaran yang sesuai. Contohnya:

<?php
  $id = $_GET['id']; // 获取id参数
  $num = $id + 10; // 将id转换为数值类型并加上10
  echo $num;
?>
Salin selepas log masuk

Walau bagaimanapun, jika parameter dalam URL bukan daripada jenis angka, amaran akan muncul dalam kod ini, menyebabkan atur cara tidak dapat meneruskan pelaksanaan.

Penyelesaian: Untuk mengelakkan ralat jenis parameter, kami boleh menentukan jenis parameter sebelum digunakan dan melakukan penukaran jenis yang diperlukan. Contohnya:

<?php
  $id = $_GET['id']; // 获取id参数
  if(is_numeric($id)) { // 判断id是否为数值类型
    $num = intval($id) + 10; // 将id转换为整型并加上10
    echo $num;
  } else {
    echo "参数错误";
  }
?>
Salin selepas log masuk

Ini akan mengelakkan amaran atau ralat disebabkan jenis parameter yang salah.

Ringkasan:

Dalam pembangunan web, mendapatkan parameter URL adalah operasi yang sangat biasa Walau bagaimanapun, apabila menggunakan PHP untuk menghuraikan parameter URL, ralat kadangkala berlaku, mengakibatkan kegagalan untuk mendapatkan parameter. Artikel ini memperkenalkan ralat parameter URL biasa (ralat susunan parameter, ralat pengekodan parameter, ralat parameter hilang, ralat jenis parameter) dan penyelesaiannya. Menguasai kemahiran ini boleh mengendalikan parameter URL dengan lebih baik, mengelakkan ralat yang tidak perlu dan meningkatkan keteguhan dan kestabilan program.

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan ralat parameter url dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

OWASP Top 10 PHP: Huraikan dan mengurangkan kelemahan umum. OWASP Top 10 PHP: Huraikan dan mengurangkan kelemahan umum. Mar 26, 2025 pm 04:13 PM

Artikel ini membincangkan kelemahan OWASP 10 dalam strategi PHP dan mitigasi. Isu -isu utama termasuk suntikan, pengesahan yang rosak, dan XSS, dengan alat yang disyorkan untuk memantau dan mendapatkan aplikasi PHP.

PHP 8 JIT (Just-in-Time) Penyusunan: Bagaimana ia meningkatkan prestasi. PHP 8 JIT (Just-in-Time) Penyusunan: Bagaimana ia meningkatkan prestasi. Mar 25, 2025 am 10:37 AM

Kompilasi JIT Php 8 meningkatkan prestasi dengan menyusun kod yang sering dilaksanakan ke dalam kod mesin, memberi manfaat kepada aplikasi dengan pengiraan berat dan mengurangkan masa pelaksanaan.

PHP Secure File Muat naik: Mencegah kelemahan berkaitan fail. PHP Secure File Muat naik: Mencegah kelemahan berkaitan fail. Mar 26, 2025 pm 04:18 PM

Artikel ini membincangkan mendapatkan muat naik fail PHP untuk mengelakkan kelemahan seperti suntikan kod. Ia memberi tumpuan kepada pengesahan jenis fail, penyimpanan selamat, dan pengendalian ralat untuk meningkatkan keselamatan aplikasi.

Penyulitan PHP: Penyulitan simetri vs asimetrik. Penyulitan PHP: Penyulitan simetri vs asimetrik. Mar 25, 2025 pm 03:12 PM

Artikel ini membincangkan penyulitan simetri dan asimetrik dalam PHP, membandingkan kesesuaian, prestasi, dan perbezaan keselamatan mereka. Penyulitan simetri lebih cepat dan sesuai untuk data pukal, manakala asimetrik digunakan untuk pertukaran utama yang selamat.

Pengesahan PHP & amp; Kebenaran: Pelaksanaan selamat. Pengesahan PHP & amp; Kebenaran: Pelaksanaan selamat. Mar 25, 2025 pm 03:06 PM

Artikel ini membincangkan pelaksanaan pengesahan dan kebenaran yang mantap dalam PHP untuk mencegah akses yang tidak dibenarkan, memperincikan amalan terbaik dan mengesyorkan alat peningkatan keselamatan.

PHP API Kadar Mengehadkan: Strategi Pelaksanaan. PHP API Kadar Mengehadkan: Strategi Pelaksanaan. Mar 26, 2025 pm 04:16 PM

Artikel ini membincangkan strategi untuk melaksanakan kadar API yang mengehadkan PHP, termasuk algoritma seperti baldi token dan baldi bocor, dan menggunakan perpustakaan seperti simfoni/kadar-limiter. Ia juga meliputi pemantauan, had kadar penyesuaian secara dinamik, dan tangan

Pengesahan Input PHP: Amalan Terbaik. Pengesahan Input PHP: Amalan Terbaik. Mar 26, 2025 pm 04:17 PM

Artikel membincangkan amalan terbaik untuk pengesahan input PHP untuk meningkatkan keselamatan, memberi tumpuan kepada teknik seperti menggunakan fungsi terbina dalam, pendekatan putih, dan pengesahan sisi pelayan.

PHP CSRF Perlindungan: Bagaimana untuk mencegah serangan CSRF. PHP CSRF Perlindungan: Bagaimana untuk mencegah serangan CSRF. Mar 25, 2025 pm 03:05 PM

Artikel ini membincangkan strategi untuk mencegah serangan CSRF di PHP, termasuk menggunakan token CSRF, kuki tapak yang sama, dan pengurusan sesi yang betul.

See all articles