Saya perlu mengarahkan pengguna dari halaman dengan example.com/node/add/dispo?arg1=1&arg2=2 ke jenis URL yang sama. Tetapi ketika saya hanya melakukan drupal_goto(request_uri());
, itu mengarahkan pengguna saya ke example.com/node/add/dispo%25F%3C dll ....
Saya mencoba str_replace tetapi tidak berhasil.
Apakah Anda punya solusi?
drupal_goto()
tidak membangun URL berdasarkan parameter yang disediakan yang kemudian memanggilnyaheader()
sendiri. Perbedaan utama adalah yangdrupal_exit()
dipanggil, memberikan jalan keluar yang bersih ke skrip, dan jika$_GET['destination']
diset, itu akan menimpa jalur yang Anda lewati ke fungsi. Umumnyadrupal_goto()
harus digunakan, tetapi ada saat-saat ketika tua yang baikheader()
lebih tepat. Tergantung apa yang perlu Anda lakukanIni sama dengan jawaban Clive. Itu IMO yang benar tetapi saya hanya ingin menambahkan jawaban yang sesuai dengan kasus penggunaan Anda 1: 1.
Anda ingin menelepon
drupal_goto()
ke lokasi yang sama dengan yang sekarang.current_path () mengembalikan node / add / dispo; drupal_get_query_parameters () mengembalikan semua
$_GET
parameter kecuali$_GET['q']
yang merupakan simpul jalur internal / add / dispo.Saat Anda menelepon
drupal_goto()
, Drupal dapat membangun kembali URI yang sama untuk mengirim pengguna.sumber
Anda juga bisa menggunakan
drupal_goto($GLOBALS['base_root'] . request_uri());
Perhatikan bahwa ini tidak sama dengan di
drupal_goto(request_uri());
mana parameter yang dilewatkan di urlencoded seolah-olah itu adalah jalur drupal internal, yang sebenarnya merupakan sumber masalah Anda.sumber
Sebenarnya saya membuatnya bekerja dengan menggunakan
header("location: " . $base_path . request_uri());
sumber