3.2 Bahasa Penskripan Pelayan
Laman web bertindak sebagai perantara yang menghubungkan pengguna dengan sistem komputer dalam rangkaian. Untuk membolehkan pemprosesan data yang dinamik, selamat dan interaktif, bahasa penskripan pelayan seperti Hypertext Preprocessor (PHP) digunakan.
Objektif Pembelajaran
- Menjelaskan fungsi laman web sebagai penghubung antara pengguna dengan sistem dalam rangkaian.
- Menghasilkan dan menyimpan data dalam fail teks (
.txt). - Menggunakan bahasa penskripan pelayan untuk membina laman web yang unik bagi setiap pengguna.
- Menggunakan data yang diimport daripada fail teks dan fail pangkalan data untuk menyelesaikan masalah.
- Melakukan pengesahsahihan (validation) pada data input daripada pengguna.
- Membina, mengemas kini, membuat sandaran dan memulihkan pangkalan data.
- Melaksanakan beberapa bentuk pertanyaan (query) pangkalan data.
- Membina daftar (sign up) dan log masuk (login) pada laman web.
- Menghasilkan atur cara yang dapat mengesahkan pengguna dan mengemas kini data dalam pangkalan data.
Kitaran Operasi Pengemaskinian Data Pangkalan Data
Aliran pergerakan data dari pangkalan data ke antara muka pengguna dan kembali dikemas kini ke pangkalan data.
Proses Pengemaskinian Data
Senarai.php → Kemaskini.php → ProsesKemaskini.php → Pangkalan Data
Penerangan Ringkas
Bahasa penskripan pelayan PHP menguruskan data di bahagian belakang (back-end) laman web.
Fungsi Laman Web sebagai Penghubung
Laman web bertindak sebagai perantara antara pengguna dan sistem rangkaian. Paparan laman web menentukan cara pengguna memanipulasi maklumat serta had capaian terhadap sistem. Contohnya enjin carian, sistem perbankan dan tempahan tiket penerbangan.
Konsep Pelayan-Klien
Klien ialah mesin atau proses yang memohon servis spesifik daripada pelayan. Dalam persekitaran web, pelayar web bertindak sebagai klien web.
Pelayan ialah mesin atau proses yang memberikan servis kepada klien. Pelayan web memproses permintaan dan mengembalikan hasil.
Bahasa Penskripan Pelayan
Program yang dilaksanakan di sebelah pelayan web yang melatari pembangunan web. Kelebihan utamanya ialah tidak bergantung pada pelayar web pengguna; pemprosesan dilakukan sepenuhnya di pelayan sehingga tidak disekat oleh isu ketidakserasian pelayar.
Contoh bahasa penskripan pelayan: ASP, JavaScript, PHP, Python, Perl. Contoh aplikasi: papan pesanan (message board) dan buku pelawat blog (guestbook).
Penghasilan dan Penyimpanan Data dalam Fail Teks (.txt)
Operasi asas fail teks ialah mencipta/membuka fail, menulis data, membaca data, dan menyunting fail.
| Fungsi | Kegunaan |
|---|---|
fopen("nama_fail", mod_capaian) | Membuka atau mencipta sambungan fail. |
fwrite($f, $data) | Menulis data ke dalam fail yang dibuka. |
fclose($f) | Menutup fail selepas operasi selesai. |
| Mod | Kegunaan |
|---|---|
r | Buka hanya untuk dibaca sahaja. |
w | Buka hanya untuk ditulis sahaja; bermula dari awal fail dan memadam kandungan lama. |
a | Buka untuk ditulis sahaja; bermula di akhir fail untuk menambah kandungan baharu. |
r+ | Buka untuk dibaca/ditulis; penunjuk fail bermula dari permulaan fail. |
w+ | Buka untuk dibaca/ditulis; memadamkan kandungan fail atau mencipta fail baharu jika belum wujud; penunjuk di awal fail. |
a+ | Buka untuk dibaca/ditulis; kandungan fail terpelihara; mencipta fail baharu jika belum wujud; penunjuk di penghujung fail. |
Fungsi Tarikh dan Masa
Fungsi date('format', time()) digunakan untuk mencatat cap masa. Format: d (hari 01–31), m (bulan 01–12), Y (tahun 4 digit), h (jam 01–12), i (minit 01–59), a (am/pm). Pemalar PHP_EOL digunakan untuk menambah baris baharu (end of line).
Laman Web yang Unik bagi Setiap Pengguna
Memaparkan maklumat peribadi khusus pengguna seperti biodata atau status akaun. Membaca fail baris demi baris menggunakan fgets($f) dalam gelung while (!feof($f)). Fungsi explode(',', $string) memecahkan teks berdasarkan pembatas seperti tanda koma kepada tatasusunan. Membandingkan teks input dengan data fail menggunakan strcmp($str1, $str2) == 0.
Penggunaan Data daripada Fail Teks untuk Menyelesaikan Masalah
Data berbilang seperti senarai nombor atau markah ujian boleh dibaca terus dari fail tanpa dimasukkan satu persatu oleh pengguna. Fungsi count($array) mengira bilangan elemen dalam tatasusunan. Operasi matematik seperti jumlah, purata dan penentuan gred peperiksaan (A, B, C, D, E) dilakukan berasaskan struktur kawalan pemilihan if ... elseif ... else.
Penggunaan Data daripada Fail Pangkalan Data MySQL
Empat langkah berturutan (sequential) untuk berinteraksi dengan MySQL:
$con = mysqli_connect("hos", "nama_pengguna", "kata_laluan");mysqli_select_db($con, "nama_db");$hasil = mysqli_query($con, "Penyataan SQL");mysqli_close($con);Pengambilan rekod dilakukan menggunakan mysqli_fetch_array($hasil) dalam struktur gelung while.
Pengesahsahihan (Validation) Data Input Pengguna
Mengelakkan ralat semasa penyimpanan data dan melindungi sistem daripada cubaan godaman melalui borang. Kaedah pengesahsahihan lazim:
- Memeriksa medan wajib tidak dibiarkan kosong:
empty($_POST["medan"]). - Menyemak format e-mel:
filter_var($email, FILTER_VALIDATE_EMAIL). - Memeriksa kaedah kiriman borang:
$_SERVER["REQUEST_METHOD"] == "POST". - Menukar entiti khas HTML untuk keselamatan menggunakan
htmlspecialchars().
| Aksara | Entiti HTML |
|---|---|
& | & |
" | " |
' | ' |
< | < |
> | > |
Pengurusan Pangkalan Data (phpMyAdmin)
Pelayan Apache dan pangkalan data MySQL diaktifkan melalui XAMPP Control Panel. Aplikasi web berasaskan GUI untuk MySQL ialah phpMyAdmin.
utf8_general_ci → klik Create..sql).Bentuk Pertanyaan (Query) SQL
Pertanyaan Tindakan (Action Query)
Melaksanakan tugas ke atas data/jadual seperti mencipta jadual, menambah, mengemas kini, atau menghapuskan data.
CREATE TABLE: Membina jadual baharu beserta jenis data dan kekunci unik.
INSERT INTO nama_jadual VALUES (...): Menambah baris rekod baharu.
Pertanyaan Memilih (Select Query)
Mengambil data yang sedia ada untuk dipaparkan, dicetak, atau disalin.
SELECT * FROM Jadual: Memilih semua medan dan semua rekod.
SELECT Medan1, Medan2 FROM Jadual: Memilih medan tertentu.
SELECT * FROM Jadual WHERE Kriteria: Memilih rekod berdasarkan syarat.
Membina Daftar (Sign Up) dan Log Masuk (Login)
Borang Daftar (Sign Up): Mengambil input pengguna dan menyimpannya ke dalam jadual pangkalan data menggunakan pertanyaan INSERT INTO.
Proses Log Masuk (Login): Mengambil nilai nama pengguna dan kata laluan daripada borang, kemudian menjalankan kueri:
SELECT * FROM PENGGUNA WHERE NAMAPENGGUNA = '$user' AND KATALALUAN = '$pass'
Fungsi mysqli_num_rows($rekod) menyemak kewujudan rekod. Sekiranya nilai lebih besar daripada 0, pengguna berjaya disahkan dan dialihkan menggunakan header("location:...").
Pengesahan Pengguna dan Pengemaskinian Data
Sesi (Session) menggunakan session_start() dan pemboleh ubah superglobal $_SESSION['PenggunaSah'] untuk mengekalkan status kebenaran pengguna merentasi halaman web.
Kemaskini.php?nomurid=CL001).$_GET['nomurid'], melaksanakan kueri SELECT, dan memaparkan data dalam kotak teks borang.$_POST dan melaksanakan pertanyaan SQL UPDATE nama_jadual SET medan1='$nilai1', ... WHERE id='$id', kemudian mengalihkan semula ke laman senarai.Cuba Jawab Dulu
Cuba jawab sendiri dahulu, kemudian tekan butang untuk menyemak.
Apakah perbezaan utama antara mod capaian fail "w" dengan mod capaian fail "a" dalam fungsi fopen()?
Mod "w" membuka fail hanya untuk ditulis bermula dari awal fail (memadamkan kandungan asal fail sekiranya sudah wujud), manakala mod "a" membuka fail untuk ditulis bermula dari akhir fail (append) dengan mengekalkan kandungan teks sedia ada.
Nyatakan empat langkah berturutan (sequential) yang wajib dilaksanakan semasa mencapai data daripada pangkalan data MySQL menggunakan PHP.
(1) Membuat sambungan ke pangkalan data (mysqli_connect), (2) Memilih nama pangkalan data (mysqli_select_db), (3) Membuat pertanyaan SQL terhadap pangkalan data (mysqli_query), dan (4) Menamatkan sambungan ke pangkalan data (mysqli_close).
Apakah tujuan penggunaan fungsi htmlspecialchars() dalam pemprosesan input borang web?
Untuk menukarkan aksara khas kepada entiti HTML (contohnya < ditukar kepada <) bagi tujuan keselamatan supaya kod berbahaya tidak dieksekusi oleh pelayar atau sistem.
Kesalahan Biasa
- Lupa meletakkan fungsi
fclose($f)selepas operasi membaca atau menulis fail teks dilaksanakan, yang boleh menyebabkan pembaziran sumber pelayan atau data tidak disimpan dengan sempurna. - Mengabaikan susunan berturutan (sequential) dalam capaian pangkalan data, seperti menjalankan
mysqli_query()sebelum membuat sambungan pangkalan data denganmysqli_connect(). - Tertukar antara kaedah penerimaan data
$_GETdan$_POST;$_GETmenghantar data secara terbuka pada URL (contoh: pemindahan parameternomurid), manakala$_POSTmenghantar data secara tersembunyi melalui badan permintaan HTTP (sesuai untuk kata laluan dan borang pendaftaran). - Tidak menyertakan klausa
WHEREdalam penyataan SQLUPDATE, yang menyebabkan seluruh rekod dalam jadual ditimpa dengan nilai data baharu yang sama.
Salah Faham Konsep
Bahasa penskripan pelayan seperti PHP dilaksanakan oleh pelayar web (browser) pengguna.
Kod PHP diproses dan dieksekusi sepenuhnya oleh komputer pelayan web; pelayar web klien hanya menerima hasil terjemahan dalam bentuk HTML, teks biasa, atau skrip pelanggan.
Pengesahsahihan input di sebelah klien (menggunakan JavaScript) sudah mencukupi untuk keselamatan sistem.
Pengesahsahihan di sebelah pelayan tetap wajib dilakukan kerana data borang boleh dimanipulasi atau dihantar terus ke pelayan tanpa melalui pelayar klien.
Menghasilkan fail sandaran (backup) secara automatik akan memulihkan (restore) data yang hilang.
Membuat sandaran (Export) hanyalah proses mengekstrak dan menyimpan salinan fail data .sql. Sekiranya berlaku kehilangan data, proses pemulihan (Import) perlu dilaksanakan secara berasingan menggunakan fail sandaran tersebut.
Ringkasan
- Bahasa penskripan pelayan (khususnya PHP) merupakan nadi pemprosesan aplikasi web dinamik.
- Ia memproses data input borang melalui kaedah
GETatauPOST, melaksanakan pengesahsahihan data, dan memanipulasi fail teks (fopen,fwrite,fclose). - PHP mengendalikan operasi pangkalan data MySQL melalui empat langkah berturutan: sambungan, pemilihan pangkalan data, pertanyaan SQL, dan penamatan sambungan.
- Pengurusan pangkalan data disokong oleh phpMyAdmin untuk aktiviti pembinaan jadual, kemas kini struktur, sandaran (backup), dan pemulihan (restore).
- Pertanyaan SQL Tindakan (
INSERT,UPDATE) dan Pertanyaan Memilih (SELECT) membolehkan pembangun web membina sistem pengesahan pengguna (daftar dan log masuk) serta mengemas kini data pangkalan data dengan cekap dan teratur.
Aktiviti Ringkas
A. Kuiz Objektif
1 Antara fungsi PHP berikut, yang manakah digunakan untuk memecahkan satu baris teks bertanda koma menjadi elemen-elemen tatasusunan yang berasingan?
2 Apakah fungsi kendalian PHP yang digunakan untuk mengira bilangan baris rekod yang dipulangkan oleh sesuatu pertanyaan SQL SELECT?
B. Isi Tempat Kosong
3 Fungsi kendalian PHP yang digunakan untuk menamatkan sambungan kepada pangkalan data MySQL ialah .
4 Arahan dalam phpMyAdmin yang digunakan untuk membuat salinan sandaran (backup) pangkalan data ke dalam fail format .sql ialah arahan .
C. Padankan Fungsi atau Arahan dengan Kegunaannya
Seret fungsi atau arahan ke kegunaan yang betul. Jika menggunakan telefon, tekan pilihan jawapan dahulu, kemudian tekan kotak padanan.
fopen($fail, "a")htmlspecialchars()session_start()