Saya mencoba meneruskan URL sebagai parameter url di php tetapi ketika saya mencoba untuk mendapatkan parameter ini saya tidak mendapatkan apa-apa
Saya menggunakan formulir url berikut:
http://localhost/dispatch.php?link=www.google.com
Saya mencoba melewatinya:
$_GET['link'];
Tapi tidak ada yang kembali. Apa masalahnya?
var_dump
dari$_GET
param, harus ada$_REQUEST['link']
bekerja? Perlu diingat juga bahwa kunci indekslink
peka terhadap apa yang ada di url.$_GET
tetapi kebetulan memposting, bukan?Jawaban:
$_GET
bukan fungsi atau konstruksi bahasa — itu hanya variabel (array). Mencoba:Secara khusus, ini adalah superglobal : variabel bawaan yang diisi oleh PHP dan tersedia di semua lingkup (Anda dapat menggunakannya dari dalam suatu fungsi tanpa kata kunci global ).
Karena variabel mungkin tidak ada, Anda dapat (dan harus) memastikan kode Anda tidak memicu pemberitahuan dengan:
Atau, jika Anda ingin melewati pemeriksaan indeks manual dan mungkin menambahkan validasi lebih lanjut Anda dapat menggunakan ekstensi filter :
Terakhir, Anda dapat menggunakan operator penggabungan nol (tersedia sejak PHP / 7.0 ) untuk menangani parameter yang hilang:
sumber
localhost
dan solusi ini tidak berfungsi.http://localhost/station?type=2
echo $_GET['type'];
adalahnull
parse_str(parse_url($actual_link)['query'], $params);
. Info lebih lanjut stackoverflow.com/a/11480852/4458531Silakan kirim kode Anda,
atau
lakukan pekerjaan ...
sumber
Untuk memastikan Anda selalu berada di sisi yang aman, tanpa mendapatkan semua jenis penyisipan kode yang tidak diinginkan, gunakan FILTER:
Lebih banyak membaca di fungsi filter php.net , atau lihat deskripsi dari berbagai filter
sumber
Gunakan ini:
Atau cukup gunakan:
sumber
Jawaban yang diterima bagus. Tetapi jika Anda memiliki skenario seperti ini:
Anda dapat memperlakukan jangkar bernama sebagai string kueri seperti ini:
Lalu, akses seperti ini:
sumber
Saya belum mendapatkan apa-apa untuk apa pun
$_GET["..."]
(misalnyaprint_r($_GET)
memberi array kosong)$_SERVER['REQUEST_URI']
menunjukkan hal-hal yang harus ada. Pada akhirnya ternyata saya hanya sampai di halaman web karena .htaccess saya mengarahkan ulang di sana (404 handler saya adalah file .php yang sama, dan saya telah membuat kesalahan ketik di browser saat pengujian).Cukup mengubah nama berarti kode php yang sama berfungsi setelah pengalihan 404 tidak berhasil!
Jadi ada cara yang
$_GET
bisa mengembalikan apa-apa meskipun kode php mungkin benar.sumber
sumber
Siapa pun yang tidak mendapatkan apa-apa, saya pikir dia hanya harus menyertakan hasilnya dalam tag html,
Seperti ini:
sumber
Seperti yang dikatakan Alvaro, $ _GET bukan fungsi tetapi array yang mengandung parameter Jadi Anda dapat mengambil satu elemen dari array itu menggunakan
OP yang diharapkan:
sumber