Tampaknya cukup sederhana tetapi saya tidak dapat menemukan cara yang baik untuk melakukannya.
Katakan di halaman pertama saya membuat variabel
$myVariable = "Some text";
Dan tindakan formulir untuk halaman itu adalah "Page2.php". Jadi di Page2.php, bagaimana saya bisa memiliki akses ke variabel itu? Saya tahu saya bisa melakukannya dengan sesi tetapi saya pikir itu terlalu banyak untuk string sederhana, dan saya hanya perlu melewatkan string sederhana (nama file).
Bagaimana saya bisa mencapai ini?
Terima kasih!
Jawaban:
HTML / HTTP tidak memiliki kewarganegaraan, dengan kata lain, apa yang Anda lakukan / lihat di halaman sebelumnya, sama sekali tidak terhubung dengan halaman saat ini. Kecuali jika Anda menggunakan sesuatu seperti sesi, cookie, atau variabel GET / POST. Sesi dan cookie cukup mudah digunakan, dengan sesi yang jauh lebih aman daripada cookie. Lebih aman, tetapi tidak sepenuhnya aman.
Sidang:
Ingatlah untuk menjalankan
session_start();
pernyataan di kedua halaman ini sebelum Anda mencoba mengakses$_SESSION
array, dan juga sebelum output apa pun dikirim ke browser.Kue kering:
Perbedaan besar antara sesi dan cookie adalah bahwa nilai variabel akan disimpan di server jika Anda menggunakan sesi, dan pada klien jika Anda menggunakan cookie. Saya tidak bisa memikirkan alasan bagus untuk menggunakan cookie alih-alih sesi, kecuali jika Anda ingin data tetap ada di antara sesi, tetapi bahkan mungkin lebih baik menyimpannya dalam DB, dan mengambilnya berdasarkan nama pengguna atau id.
DAPATKAN dan POST
Anda dapat menambahkan variabel di tautan ke halaman berikutnya:
Ini akan membuat variabel GET.
Cara lain adalah dengan memasukkan bidang tersembunyi dalam formulir yang mengirimkan ke halaman dua:
Dan kemudian pada halaman dua:
Ubah saja metode untuk formulir
post
jika Anda ingin melakukannya melalui pos. Keduanya sama-sama tidak aman, meskipun GET lebih mudah diretas.Fakta bahwa setiap permintaan baru, kecuali untuk data sesi, contoh skrip yang sama sekali baru menarik perhatian saya ketika saya pertama kali mulai coding dalam PHP. Setelah Anda terbiasa, itu cukup sederhana.
sumber
Terima kasih atas jawaban di atas. Begini cara saya melakukannya, saya harap ini membantu mereka yang mengikuti. Saya ingin meneruskan nomor pendaftaran dari satu halaman ke halaman lain, karenanya regName dan regValue :
Buat halaman pertama Anda, sebut saja set_reg.php :
Buat halaman kedua Anda, sebut saja get_reg.php :
Meskipun tidak selengkap jawaban di atas, untuk tujuan saya ini menggambarkan secara sederhana hubungan antara berbagai elemen.
sumber
Melewati data dalam permintaan
Anda bisa menyematkannya sebagai bidang tersembunyi di formulir Anda, atau menambahkannya ke URL tindakan formulir Anda
atau
Catatan ini juga menggambarkan penggunaan htmlentities dan urlencode saat menyampaikan data.
Melewati data dalam sesi
Jika data tidak perlu diteruskan ke sisi klien, maka sesi mungkin lebih tepat. Cukup panggil session_start () di awal setiap halaman, dan Anda bisa mendapatkan dan mengatur data ke dalam array $ _SESSION.
Keamanan
Karena Anda menyatakan nilai Anda sebenarnya adalah nama file, Anda perlu mengetahui konsekuensi keamanannya. Jika nama file telah tiba dari sisi klien, anggap pengguna telah merusak nilainya. Periksa validitasnya! Apa yang terjadi ketika pengguna melewati jalur ke file sistem penting, atau file di bawah kendali mereka? Bisakah skrip Anda digunakan untuk "menyelidiki" server untuk file yang ada atau tidak ada?
Karena Anda baru saja memulai di sini, ada baiknya mengingatkan bahwa ini berlaku untuk data apa pun yang datang dalam $ _GET, $ _POST atau $ _COOKIE - anggap musuh terburuk Anda membuat konten array tersebut, dan berikan kode yang sesuai!
sumber
Ada tiga metode untuk meneruskan nilai dalam php.
Ketiga metode ini digunakan untuk tujuan yang berbeda. Misalnya jika kita ingin menerima nilai kita di halaman berikutnya maka kita dapat menggunakan metode 'posting' ($ _POST) sebagai: -
Jika kita memerlukan nilai variabel pada lebih dari satu halaman, maka kita dapat menggunakan variabel sesi sebagai: -
Sebelum menggunakan Sintaks ini untuk membuat variabel SESI pertama-tama kita harus menambahkan tag ini di awal halaman php kami
Metode GET umumnya digunakan untuk mencetak data pada halaman yang sama yang digunakan untuk mengambil input dari pengguna. Sintaksnya adalah sebagai:
Metode POST umumnya mengkonsumsi lebih aman daripada GET karena ketika kita menggunakan metode Get daripada dapat menampilkan data di URL bar. Jika data tersebut lebih sensitif data seperti kata sandi maka itu bisa menjadi inggeris.
sumber
Sesi akan menjadi satu-satunya cara yang baik, Anda juga bisa menggunakan GET / POST tetapi itu berpotensi tidak aman.
sumber
coba kode ini
menggunakan bidang tersembunyi kita bisa meneruskan php varibale ke halaman lain
page1.php
lulus variabel php ke nilai bidang tersembunyi sehingga Anda dapat mengakses variabel ini ke halaman lain
page2.php
sumber
halaman 2
sumber
Sesi akan menjadi satu-satunya cara yang baik, Anda juga bisa menggunakan GET / POST tetapi itu berpotensi tidak aman.
Melewati data dalam sesi Jika data tidak perlu diteruskan ke sisi klien, maka sesi mungkin lebih tepat. Cukup panggil session_start () di awal setiap halaman, dan Anda bisa mendapatkan dan mengatur data ke dalam array $ _SESSION.
Keamanan Karena Anda menyatakan nilai Anda sebenarnya adalah nama file, Anda perlu mengetahui konsekuensi keamanannya. Jika nama file telah tiba dari sisi klien, anggap pengguna telah merusak nilainya. Periksa validitasnya! Apa yang terjadi ketika pengguna melewati jalur ke file sistem penting atau file di bawah kendali mereka? Bisakah skrip Anda digunakan untuk "menyelidiki" server untuk file yang ada atau tidak ada?
Karena Anda baru saja memulai di sini, perlu diingatkan bahwa ini berlaku untuk data apa pun yang datang dalam $ _GET, $ _POST atau $ _COOKIE - anggap musuh terburuk Anda membuat konten dari array tersebut, dan kode sesuai!
sumber