Sesi dan Borang dalam PHP
Katakan kita mempunyai dua fail PHP. Mari kita letakkan dalam
fail test1.php satu borang yang bertanya
kepada pengguna dua nombor:
<form method="GET">
<input name="num1">
<input name="num2">
<input type="submit">
</form>
Dalam fail yang sama, letakkan kod pemprosesan borang. Dalam kod ini, kita akan merekodkan data input ke dalam sesi:
<?php
session_start();
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Nuansa penting: dalam fail, kod pemprosesan borang perlu diletakkan sebelum borang itu sendiri. Mengapa: kerana dalam kod ini kita bekerja dengan sesi, dan oleh itu tidak sepatutnya ada sebarang output ke skrin sebelum ini.
Sekarang mari dalam fail test2.php kita cari
jumlah nombor yang disimpan dalam sesi:
<?php
if (!empty($_SESSION)) {
echo $_SESSION['num1'] + $_SESSION['num2'];
}
?>
Dalam urutan apakah semua ini harus
berfungsi? Pertama, pengguna masuk ke
halaman test1.php, mengisi borang
dan menekan butang. Selepas itu, mereka kembali
ke test1.php, tetapi kali ini dengan data
borang yang telah dihantar.
Pada masa ini, mereka memasuki kondisi,
di mana kita menulis data borang ke dalam sesi.
Kemudian pengguna perlu secara manual masuk ke
halaman test2.php - dan di sana mereka akan melihat
jumlah nombor yang dimasukkan.
Anda mungkin bertanya: mengapa perlu rumit seperti ini? Bukankah
borang boleh terus dihantar ke halaman
test2.php? Masalahnya ialah, dalam kes ini
kemudahannya ialah borang itu sendiri dan kod
pemprosesannya diletakkan pada halaman yang sama.
Sudah tentu, ini tidak selalu mudah, tetapi kadang-kadang
ia diperlukan.
Pada satu halaman, menggunakan borang, tanyakan pengguna mengenai nama keluarga, nama dan usia. Rekodkan data ini dalam sesi. Apabila masuk ke halaman lain, paparkan data ini pada skrin.