PHP adalah bahasa server scripting, dan alat yang ampuh untuk membuat halaman Web dinamis
dan interaktif.
PHP adalah banyak digunakan, bebas, dan alternatif efisien untuk pesaing seperti Microsoft
ASP.
Kami "Tampilkan PHP" alat memudahkan untuk belajar PHP, hal itu menunjukkan kedua kode
sumber PHP dan output HTML dari kode.
PHP 5 Pendahuluan
script PHP dieksekusi pada server.
Sebelum Anda melanjutkan Anda harus memiliki pemahaman dasar sebagai berikut:
HTML
CSS
JavaScript
Jika Anda ingin mempelajari mata pelajaran ini pertama, menemukan tutorial di kami halaman
rumah .
Hal ini cukup kuat untuk menjadi inti dari sistem blogging terbesar di web (WordPress)!
Hal ini cukup dalam untuk menjalankan jaringan sosial terbesar (Facebook)!
Hal ini juga cukup mudah untuk menjadi bahasa sisi server pertama pemula!
file PHP dapat berisi teks, HTML, CSS, JavaScript, dan kode PHP
Kode PHP dieksekusi pada server, dan hasilnya dikembalikan ke browser sebagai HTML biasa
file PHP memiliki ekstensi ".php"
Dengan PHP Anda tidak terbatas untuk output HTML. Anda dapat output gambar, file PDF, dan
bahkan film Flash. Anda juga dapat output apapun teks, seperti XHTML dan XML.
Mengapa PHP?
PHP berjalan pada berbagai platform (Windows, Linux, Unix, Mac OS X, dll)
PHP kompatibel dengan hampir semua server yang digunakan hari ini (Apache, IIS, dll)
PHP mendukung berbagai database
PHP adalah gratis. Download dari sumber daya PHP resmi: www.php.net
PHP mudah dipelajari dan berjalan efisien pada sisi server
PHP 5 Instalasi
Apa yang saya butuhkan?
Jika server Anda telah mengaktifkan dukungan untuk PHP Anda tidak perlu melakukan apa-apa.
Hanya membuat beberapa file php, menempatkan mereka dalam direktori web Anda, dan server
akan secara otomatis menguraikannya untuk Anda.
Anda tidak perlu untuk mengkompilasi sesuatu atau memasang alat tambahan.
PHP 5 Syntax
Sebuah script PHP dijalankan di server, dan hasil HTML biasa dikirim kembali ke browser.
Dasar PHP Sintaks
Sebuah script PHP dimulai dengan <php? Dan diakhiri dengan ?> :
<?php
// PHP code goes here
?>
Sebuah file PHP biasanya berisi tag HTML, dan beberapa kode PHP scripting.
Di bawah ini, kita memiliki contoh dari file PHP sederhana, dengan script PHP yang
menggunakan fungsi PHP built-in "echo" untuk output teks "Hello World!" pada halaman web:
Komentar di PHP
Sebuah komentar dalam kode PHP adalah garis yang tidak membaca / dieksekusi sebagai bagian
dari program. Its satunya tujuan adalah untuk dibaca oleh seseorang yang melihat kode.
Dalam PHP, semua kata kunci (misalnya jika, lain, sementara, echo, dll), kelas, fungsi, dan
fungsi user-defined TIDAK case-sensitive.
Pada contoh di bawah, ketiga pernyataan gema bawah hukum (dan setara):
Namun; semua nama variabel adalah case-sensitive.
Pada contoh di bawah ini, hanya pernyataan pertama akan menampilkan nilai dari variabel $
warna (ini karena $ warna, $ WARNA, dan $ warna diperlakukan sebagai tiga variabel yang
berbeda):
PHP 5 Variabel
Dalam PHP, variabel dimulai dengan tanda $, diikuti dengan nama variabel:
Setelah eksekusi pernyataan di atas, variabel $ txt akan memegang nilai Halo dunia! , Variabel
$ x akan memegang nilai 5 , dan variabel $ y akan memegang nilai 10,5 .
Catatan: Bila Anda menetapkan nilai teks ke variabel, menaruh tanda kutip nilai.
Catatan: Tidak seperti bahasa pemrograman lain, PHP tidak memiliki perintah untuk
mendeklarasikan variabel. Hal ini dibuat saat Anda pertama menetapkan nilai untuk itu.
Variabel PHP
Sebuah variabel dapat memiliki nama pendek (seperti x dan y) atau nama yang lebih deskriptif
(usia, carname, total_volume).
Contoh berikut akan menghasilkan output yang sama seperti contoh di atas:
Dalam contoh di atas, perhatikan bahwa kita tidak harus memberitahu PHP yang tipe data
variabel tersebut.
PHP secara otomatis mengkonversi variabel dengan jenis data yang benar, tergantung pada
nilainya.
Dalam bahasa lain seperti C, C ++, dan Java, programmer harus menyatakan nama dan jenis
variabel sebelum menggunakannya.
Ruang lingkup variabel adalah bagian dari script di mana variabel dapat dirujuk / digunakan.
lokal
global
statis
Lingkup global dan lokal
Sebuah variabel dideklarasikan di luar fungsi memiliki LINGKUP GLOBAL dan hanya dapat
diakses di luar fungsi:
Sebuah variabel dideklarasikan dalam fungsi memiliki LINGKUP LOKAL dan hanya dapat
diakses dalam fungsi bahwa:
Anda dapat memiliki variabel lokal dengan nama yang sama dalam fungsi yang berbeda, karena
variabel lokal hanya diakui oleh fungsi di mana mereka dinyatakan.
The globalkata kunci digunakan untuk mengakses variabel global dari dalam fungsi.
Untuk melakukan hal ini, gunakan globalkata kunci sebelum variabel (dalam fungsi):
PHP juga menyimpan semua variabel global dalam sebuah array disebut $ GLOBALS [ index ].
The Indeks memegang nama variabel. Array ini juga dapat diakses dari dalam fungsi dan dapat
digunakan untuk memperbarui variabel global secara langsung.
Biasanya, ketika fungsi selesai / dieksekusi, semua variabel yang akan dihapus. Namun,
terkadang kita ingin variabel lokal tidak akan dihapus. Kami membutuhkannya untuk pekerjaan
lebih lanjut.
Untuk melakukan hal ini, gunakan statickata kunci ketika Anda pertama kali mendeklarasikan
variabel:
Kemudian, setiap kali fungsi dipanggil, variabel yang akan masih memiliki informasi yang
terkandung dari terakhir kali fungsi dipanggil.
Dalam PHP ada dua cara dasar untuk mendapatkan output: echodan print.
Dalam tutorial ini kita menggunakan echo(dan print) di hampir setiap contoh. Jadi, bab ini
berisi info lebih banyak tentang mereka dua pernyataan output.
echo dan print Laporan PHP
echodan print kurang lebih sama. Mereka berdua digunakan untuk output data ke layar.
Perbedaan kecil: echo tidak memiliki nilai kembali sementara print memiliki nilai kembali
dari 1 sehingga dapat digunakan dalam ekspresi. echodapat mengambil beberapa parameter
(meskipun penggunaan seperti ini jarang terjadi) sementara print dapat mengambil satu
argumen. echoadalah sedikit lebih cepat dari print.
The echopernyataan dapat digunakan dengan atau tanpa tanda kurung: echoatau echo().
tampilan Teks
Contoh berikut menunjukkan bagaimana output teks dengan echo perintah (perhatikan bahwa
teks dapat berisi markup HTML):
Variabel tampilan
Contoh berikut menunjukkan bagaimana output teks dan variabel dengan echo pernyataan:
Pernyataan PHP cetak
The printpernyataan dapat digunakan dengan atau tanpa tanda kurung: printatau print().
tampilan Teks
Contoh berikut menunjukkan bagaimana output teks dengan print perintah (perhatikan bahwa
teks dapat berisi markup HTML):
Variabel tampilan
Contoh berikut menunjukkan bagaimana output teks dan variabel dengan printpernyataan:
PHP 5 Jenis Data
Variabel dapat menyimpan data dari berbagai jenis, dan tipe data yang berbeda dapat melakukan
hal-hal yang berbeda.
Tali
Bilangan bulat
Mengapung (floating point - juga disebut ganda)
boolean
susunan
Obyek
BATAL
Sumber
PHP String
PHP Integer
Tipe data integer adalah angka non-desimal antara -2147483648 dan 2147483647.
Dalam contoh berikut $ x adalah bilangan bulat. PHP var_dump () mengembalikan fungsi tipe
data dan nilai:
PHP Lampung
Sebuah float (floating point nomor) adalah nomor dengan titik desimal atau nomor dalam bentuk
eksponensial.
Dalam contoh berikut $ x adalah pelampung. PHP var_dump () mengembalikan fungsi tipe data
dan nilai:
PHP Boolean
$x = true;
$y = false;
Booleans sering digunakan dalam pengujian bersyarat. Anda akan belajar lebih banyak tentang
pengujian kondisional dalam bab berikutnya dari tutorial ini.
PHP Array
Pada contoh $ mobil berikut adalah array. PHP var_dump () mengembalikan fungsi tipe data dan
nilai:
Anda akan belajar lebih banyak tentang array dalam bab-bab selanjutnya dari tutorial ini.
PHP Object
Sebuah objek adalah tipe data yang menyimpan data dan informasi tentang cara mengolah data
tersebut.
Pertama kita harus mendeklarasikan kelas objek. Untuk ini, kami menggunakan kata kunci class.
Sebuah kelas adalah struktur yang dapat berisi properti dan metode:
Null adalah tipe data khusus yang hanya dapat memiliki satu nilai: NULL.
Sebuah variabel dari tipe data NULL adalah variabel yang tidak memiliki nilai yang ditugaskan
untuk itu.
Tip: Jika variabel yang dibuat tanpa nilai, maka secara otomatis diberi nilai NULL.
Sumber PHP
Jenis sumber daya khusus bukan merupakan tipe data yang sebenarnya. Ini adalah penyimpanan
referensi ke fungsi dan sumber daya eksternal untuk PHP.
Sebuah contoh umum dari menggunakan tipe data sumber daya adalah panggilan database.
Kami tidak akan berbicara tentang jenis sumber daya di sini, karena itu adalah topik yang
canggih.
PHP 5 Strings
Dalam bab ini kita akan melihat beberapa fungsi umum digunakan untuk memanipulasi string.
Dapatkan Panjang String
Jika kecocokan ditemukan, fungsi mengembalikan posisi karakter dari pertandingan pertama.
Jika tidak ada yang cocok, ia akan kembali FALSE.
Contoh di bawah penelusuran untuk teks "dunia" dalam string "Hello world!":
Untuk referensi lengkap dari semua fungsi string, pergi ke lengkap kami Referensi PHP String .
Referensi PHP string berisi deskripsi dan contoh penggunaan, untuk setiap fungsi!
PHP 5 Konstanta
Konstanta seperti variabel kecuali bahwa setelah mereka didefinisikan mereka tidak dapat diubah
atau tidak terdefinisi.
PHP Konstanta
Sebuah konstan adalah identifier (nama) untuk nilai sederhana. nilai tidak dapat diubah selama
script.
Sebuah nama yang konstan valid dimulai dengan huruf atau garis bawah (tidak ada tanda $
sebelum nama konstan).
Catatan: Tidak seperti variabel, konstanta secara otomatis global di seluruh script.
Sintaksis
define(name, value, case-insensitive)
parameter:
Contoh di bawah menggunakan konstan dalam fungsi, bahkan jika itu didefinisikan di luar
fungsi:
PHP 5 Operator
PHP Operator
operator aritmatika
operator penugasan
operator perbandingan
operator increment / Decrement
operator logika
operator String
operator Array
Operator PHP aritmatika digunakan dengan nilai-nilai numerik untuk melakukan operasi
aritmatika umum, seperti penambahan, pengurangan, perkalian dll
Operator PHP penugasan digunakan dengan nilai-nilai numerik untuk menulis nilai ke variabel.
Operator penugasan dasar dalam PHP adalah "=". Ini berarti bahwa operan kiri akan diatur ke
nilai ekspresi penugasan di sebelah kanan.
pernyataan bersyarat digunakan untuk melakukan tindakan yang berbeda berdasarkan kondisi
yang berbeda.
Sangat sering ketika Anda menulis kode, Anda ingin melakukan tindakan yang berbeda untuk
kondisi yang berbeda. Anda dapat menggunakan pernyataan kondisional dalam kode Anda untuk
melakukan hal ini.
The ifpernyataan mengeksekusi beberapa kode jika salah satu kondisi benar.
Sintaksis
if (condition) {
code to be executed if condition is true;
}
Contoh di bawah ini akan menampilkan "Memiliki hari yang baik!" jika waktu saat (JAM)
kurang dari 20:
PHP - The jika ... Pernyataan lain
The if....elsepernyataan mengeksekusi beberapa kode jika kondisi benar dan kode lain jika
kondisi itu adalah palsu.
Sintaksis
if (condition) {
code to be executed if condition is true;
} else {
code to be executed if condition is false;
}
Contoh di bawah ini akan menampilkan "Memiliki hari yang baik!" jika waktu saat ini kurang
dari 20, dan "Memiliki malam yang baik!" jika tidak:
PHP - The jika ... elseif .... Pernyataan lain
The if....elseif...elsepernyataan mengeksekusi kode yang berbeda selama lebih dari dua
kondisi.
Sintaksis
if (condition) {
code to be executed if this condition is true;
} elseif (condition) {
code to be executed if this condition is true;
} else {
code to be executed if all conditions are false;
}
Contoh di bawah ini akan menampilkan "Selamat pagi!" jika waktu saat ini kurang dari 10, dan
"Memiliki hari yang baik!" jika waktu saat ini kurang dari 20. Jika tidak, akan menampilkan
"Have a good night!":
Gunakan switchpernyataan untuk memilih salah satu dari banyak blok kode yang akan
dieksekusi .
Sintaksis
switch (n) {
case label1:
code to be executed if n=label1;
break;
case label2:
code to be executed if n=label2;
break;
case label3:
code to be executed if n=label3;
break;
...
default:
code to be executed if n is different from all labels;
}
Ini adalah cara kerjanya: Pertama kita memiliki ekspresi tunggal n (paling sering variabel), yang
dievaluasi sekali. Nilai ekspresi ini kemudian dibandingkan dengan nilai-nilai untuk setiap kasus
dalam struktur. Jika ada pertandingan, blok kode yang terkait dengan kasus yang dieksekusi.
Gunakan breakuntuk mencegah kode dari berlari ke kasus berikutnya secara otomatis. The
defaultpernyataan digunakan jika tidak ada yang cocok.
PHP 5 sementara Loops
PHP sementara loop mengeksekusi blok kode sementara kondisi yang ditentukan benar.
PHP Loops
Seringkali ketika Anda menulis kode, Anda ingin blok kode yang sama untuk menjalankan lagi
dan lagi berturut-turut. Alih-alih menambahkan beberapa hampir sama kode-baris dalam naskah,
kita dapat menggunakan loop untuk melakukan tugas seperti ini.
while - loop melalui blok kode selama kondisi yang ditentukan benar
do...while - loop melalui blok kode sekali, dan kemudian mengulangi loop selama kondisi
yang ditentukan benar
for - loop melalui blok kode jumlah tertentu kali
foreach - loop melalui blok kode untuk setiap elemen dalam array
PHP sementara loop
The whileLoop mengeksekusi blok kode selama kondisi yang ditentukan benar.
Sintaksis
while (condition is true) {
code to be executed;
}
Contoh di bawah ini pertama menetapkan $ x variabel untuk 1 ($ x = 1). Kemudian, sementara
loop akan terus berjalan selama $ x kurang dari atau sama dengan 5 ($ x <= 5). $ X akan
meningkat 1 setiap kali loop berjalan ($ x ++):
The do...whileLoop akan selalu mengeksekusi blok kode sekali, maka ia akan memeriksa
kondisi, dan ulangi loop sementara kondisi yang ditentukan benar.
Sintaksis
do {
code to be executed;
} while (condition is true);
Contoh di bawah ini pertama menetapkan $ x variabel untuk 1 ($ x = 1). Kemudian, do while
akan menulis beberapa output, dan kemudian kenaikan variabel $ x dengan 1. Kemudian kondisi
diperiksa (adalah $ x kurang dari atau sama dengan 5?), Dan loop akan terus berjalan selama $ x
kurang dari atau sama dengan 5:
Perhatikan bahwa dalam do whilelingkaran kondisi diuji SETELAH mengeksekusi laporan
dalam loop. Ini berarti bahwa do whilelingkaran akan mengeksekusi pernyataan yang
setidaknya sekali, bahkan jika kondisi salah pertama kalinya.
Contoh di bawah set $ x variabel untuk 6, kemudian berjalan loop, dan kemudian kondisi
diperiksa :
The forLoop digunakan ketika Anda tahu sebelumnya berapa kali script harus dijalankan.
Sintaksis
for (init counter; test counter; increment counter) {
code to be executed;
}
parameter:
The foreachLoop bekerja hanya pada array, dan digunakan untuk loop melalui setiap pasangan
kunci / nilai dalam array.
Sintaksis
foreach ($array as $value) {
code to be executed;
}
Untuk setiap iterasi loop, nilai elemen array saat ditugaskan untuk $ value dan array pointer
digerakkan oleh satu, hingga mencapai elemen array terakhir.
Contoh berikut menunjukkan sebuah loop yang akan menampilkan nilai-nilai dari array yang
diberikan ($ warna):
PHP 5 Fungsi
Kekuatan sebenarnya dari PHP berasal dari fungsinya; memiliki lebih dari 1000 built-in fungsi.
Selain fungsi PHP built-in, kita dapat membuat fungsi kita sendiri.
Sebuah fungsi adalah blok pernyataan yang dapat digunakan berulang kali dalam sebuah
program.
Sebuah deklarasi fungsi yang ditetapkan pengguna dimulai dengan kata function:
Sintaksis
function functionName() {
code to be executed;
}
Catatan: Sebuah nama fungsi dapat diawali dengan huruf atau garis bawah (bukan angka).
Pada contoh di bawah, kita membuat fungsi bernama "writeMsg ()". Pembukaan keriting brace
({) menunjukkan awal dari kode fungsi dan penjepit keriting penutupan (}) menunjukkan akhir
dari fungsi. Fungsi output "Halo dunia!". Untuk memanggil fungsi, hanya menulis namanya:
Informasi dapat dikirimkan ke fungsi melalui argumen. Argumen adalah seperti variabel.
Argumen ditentukan setelah nama fungsi, dalam tanda kurung. Anda dapat menambahkan
sebanyak argumen yang Anda inginkan, hanya pisahkan dengan koma.
Contoh berikut memiliki fungsi dengan satu argumen ($ fname). Ketika fungsi familyName ()
dipanggil, kami juga menyampaikan nama (misalnya Jani), dan nama yang digunakan di dalam
fungsi, yang output beberapa nama pertama yang berbeda, tapi nama belakang yang sama:
Contoh berikut memiliki fungsi dengan dua argumen ($ fname dan $ tahun):
Contoh berikut menunjukkan bagaimana menggunakan parameter default. Jika kita memanggil
fungsi setHeight () tanpa argumen dibutuhkan nilai default sebagai argumen:
Fungsi PHP - nilai Kembali
PHP 5 Array
Array adalah variabel khusus, yang dapat menyimpan lebih dari satu nilai pada suatu waktu.
Jika Anda memiliki daftar item (daftar nama mobil, misalnya), menyimpan mobil di variabel
tunggal bisa terlihat seperti ini:
$cars1 = "Volvo";
$cars2 = "BMW";
$cars3 = "Toyota";
Namun, bagaimana jika Anda ingin loop melalui mobil dan menemukan satu tertentu? Dan
bagaimana jika kau tidak 3 mobil, tapi 300?
Sebuah array dapat menyimpan banyak nilai di bawah satu nama, dan Anda dapat mengakses
nilai-nilai dengan mengacu pada nomor indeks.
Dalam PHP, yang array()adalah fungsi yang digunakan untuk membuat sebuah array:
array();
Indeks dapat diberikan secara otomatis (index selalu dimulai pada 0), seperti ini:
$cars[0] = "Volvo";
$cars[1] = "BMW";
$cars[2] = "Toyota";
Contoh berikut membuat array diindeks bernama $ mobil, memberikan tiga elemen untuk itu,
dan kemudian mencetak teks yang berisi nilai array:
Untuk loop melalui dan mencetak semua nilai-nilai array diindeks, Anda bisa menggunakan
forlingkaran, seperti ini:
array asosiatif adalah array yang menggunakan nama kunci yang Anda tetapkan untuk mereka.
atau:
$age['Peter'] = "35";
$age['Ben'] = "37";
$age['Joe'] = "43";
Untuk loop melalui dan mencetak semua nilai-nilai array asosiatif, Anda bisa menggunakan
foreachlingkaran, seperti ini:
Elemen-elemen dalam array dapat diurutkan dalam abjad atau numerik order, turun atau naik.
PHP - Urutkan Fungsi Untuk Array
Dalam bab ini, kita akan pergi melalui PHP fungsi array semacam berikut:
Contoh berikut macam elemen dari array $ mobil di menaik urutan abjad:
Contoh berikut macam elemen dari array $ angka dalam urutan menaik numerik:
Urutkan Array di Descending Order - rsort ()
Contoh berikut macam elemen dari array $ mobil dalam urutan abjad:
Contoh berikut macam elemen dari array $ nomor dalam urutan numerik:
Urutkan Array (Ascending Order), Menurut Nilai - asort ()
Untuk referensi lengkap dari semua fungsi array, pergi ke lengkap kami Referensi PHP Array .
referensi berisi deskripsi singkat, dan contoh penggunaan, untuk setiap fungsi!
Superglobals diperkenalkan di PHP 4.1.0, dan built-in variabel yang selalu tersedia di semua
lingkup.
Beberapa variabel yang telah ditetapkan dalam PHP adalah "superglobals", yang berarti bahwa
mereka selalu dapat diakses, terlepas dari lingkup - dan Anda dapat mengaksesnya dari fungsi
apapun, kelas atau file yang tanpa harus melakukan sesuatu yang istimewa.
$ GLOBALS
$ _SERVER
$ _REQUEST
$ _POST
$ _GET
$ _FILES
$ _ENV
$ _COOKIE
$ _SESSION
Bab ini akan menjelaskan beberapa superglobals, dan sisanya akan dijelaskan di bab berikutnya.
PHP $ GLOBALS
$ GLOBALS adalah PHP variabel global super yang digunakan untuk mengakses variabel global
dari mana saja di script PHP (juga dari dalam fungsi atau metode).
Toko PHP semua variabel global dalam sebuah array disebut $ GLOBALS [ index ]. The Indeks
memegang nama variabel.
Contoh di bawah ini menunjukkan bagaimana menggunakan super variabel global $ GLOBALS:
Dalam contoh di atas, karena z adalah hadiah variabel dalam array $ GLOBALS, hal ini juga
dapat diakses dari luar fungsi!
PHP $ _SERVER
$ _SERVER adalah PHP variabel global super yang memegang informasi tentang header, jalur,
dan lokasi skrip.
Contoh di bawah ini menunjukkan bagaimana menggunakan beberapa elemen di $ _SERVER:
Tabel berikut mencantumkan elemen yang paling penting yang dapat masuk ke dalam $
_SERVER:
Element/Code Description
$_SERVER['QUERY_STRING'] Returns the query string if the page is accessed via a query string
Returns the complete URL of the page from which the current
$_SERVER['HTTP_REFERER']
page was called
Returns the IP address from where the user is viewing the current
$_SERVER['REMOTE_ADDR']
page
Returns the Host name from where the user is viewing the
$_SERVER['REMOTE_HOST']
current page
Returns the port on the server machine being used by the web
$_SERVER['SERVER_PORT']
server for communication (such as 80)
Returns the server version and virtual host name which are
$_SERVER['SERVER_SIGNATURE']
added to server-generated pages
$_SERVER['PATH_TRANSLATED'] Returns the file system based path to the current script
PHP $ _REQUEST
PHP $ _REQUEST digunakan untuk mengumpulkan data setelah mengirimkan formulir HTML.
Contoh di bawah ini menunjukkan bentuk dengan field input dan sebuah tombol submit. Ketika
pengguna mengirimkan data dengan mengklik "Submit", bentuk data dikirim ke file yang
ditentukan dalam atribut aksi <form> tag. Dalam contoh ini, kita arahkan ke file ini sendiri untuk
data formulir pengolahan. Jika Anda ingin menggunakan file PHP lain untuk memproses data
formulir, menggantikan dengan nama file pilihan Anda. Kemudian, kita bisa menggunakan super
variabel global $ _REQUEST untuk mengumpulkan nilai dari field input:
PHP $ _POST
PHP $ _POST secara luas digunakan untuk mengumpulkan data formulir setelah mengirimkan
formulir HTML dengan metode = "post". $ _POST juga banyak digunakan untuk lulus variabel.
Contoh di bawah ini menunjukkan bentuk dengan field input dan sebuah tombol submit. Ketika
pengguna mengirimkan data dengan mengklik "Submit", bentuk data dikirim ke file yang
ditentukan dalam atribut aksi <form> tag. Dalam contoh ini, kita arahkan ke file itu sendiri untuk
data formulir pengolahan. Jika Anda ingin menggunakan file PHP lain untuk memproses data
formulir, menggantikan dengan nama file pilihan Anda. Kemudian, kita bisa menggunakan super
variabel global $ _POST untuk mengumpulkan nilai dari field input:
PHP $ _GET
PHP $ _GET juga dapat digunakan untuk mengumpulkan data formulir setelah mengirimkan
formulir HTML dengan metode = "mendapatkan".
Anggaplah kita memiliki halaman HTML yang berisi hyperlink dengan parameter:
<html>
<body>
</body>
</html>
Ketika pengguna mengklik pada link "Uji $ GET", parameter "subjek" dan "web" dikirim ke
"test_get.php", dan Anda kemudian dapat mengakses nilai-nilai mereka di "test_get.php" dengan
$ _GET.
Contoh di bawah ini menampilkan bentuk HTML sederhana dengan dua field input dan sebuah
tombol submit:
Ketika pengguna mengisi formulir di atas dan mengklik tombol submit, form data dikirim untuk
diproses ke file PHP bernama "welcome.php". Bentuk data dikirim dengan metode HTTP POST.
Untuk menampilkan data yang diajukan Anda hanya bisa echo semua variabel. The
"welcome.php" terlihat seperti ini:
<html>
<body>
</body>
</html>
Welcome John
Your email address is john.doe@example.com
Hasil yang sama juga bisa dicapai dengan menggunakan metode HTTP GET:
<html>
<body>
</body>
</html>
Kode di atas cukup sederhana. Namun, hal yang paling penting yang hilang. Anda perlu
memvalidasi data formulir untuk melindungi naskah Anda dari kode berbahaya.
Namun, halaman berikutnya akan menunjukkan bagaimana proses bentuk PHP dengan
keamanan dalam pikiran! validasi yang tepat dari bentuk data penting untuk melindungi formulir
Anda dari hacker dan spammer!
GET vs POST
Kedua GET dan POST membuat sebuah array (misalnya array (key => value, key2 => nilai2,
key3 => value3, ...)). array ini memegang pasangan kunci / nilai, di mana kunci adalah nama-
nama bentuk kontrol dan nilai-nilai data input dari user.
Kedua GET dan POST diperlakukan sebagai $ _GET dan $ _POST. Ini adalah superglobals,
yang berarti bahwa mereka selalu dapat diakses, terlepas dari lingkup - dan Anda dapat
mengaksesnya dari fungsi apapun, kelas atau file yang tanpa harus melakukan sesuatu yang
istimewa.
$ _GET adalah array dari variabel dilewatkan ke script saat ini melalui parameter URL.
$ _POST adalah array dari variabel dilewatkan ke script saat ini melalui metode HTTP POST.
Informasi yang dikirim dari formulir dengan metode GET adalah terlihat untuk semua orang
(semua nama dan nilai-nilai variabel yang ditampilkan dalam URL). GET juga memiliki batasan
pada jumlah informasi untuk mengirim. Pembatasan itu sekitar 2000 karakter. Namun, karena
variabel ditampilkan di URL, adalah mungkin untuk penunjuk halaman. Hal ini dapat berguna
dalam beberapa kasus.
Catatan: GET harus PERNAH digunakan untuk mengirim password atau informasi sensitif
lainnya!
Kapan menggunakan POST?
Informasi yang dikirim dari formulir dengan metode POST tidak terlihat oleh orang lain
(semua nama / nilai yang tertanam dalam tubuh permintaan HTTP) dan memiliki batas pada
jumlah informasi untuk mengirim.
Selain itu POST mendukung fungsi canggih seperti dukungan untuk multi-bagian masukan biner
ketika mengupload file ke server.
Namun, karena variabel tidak ditampilkan dalam URL, tidak mungkin untuk penunjuk halaman.
Berikutnya, mari kita lihat bagaimana kami dapat memproses bentuk PHP cara aman!
Ini dan bab-bab berikutnya menunjukkan bagaimana menggunakan PHP untuk memvalidasi data
formulir.
Halaman ini akan menunjukkan cara untuk memproses bentuk PHP dengan keamanan dalam
pikiran. validasi yang tepat dari bentuk data penting untuk melindungi formulir Anda dari hacker
dan spammer!
Bentuk HTML kita akan bekerja di dalam bab-bab ini, berisi berbagai bidang masukan:
diperlukan dan bidang opsional teks, tombol radio, dan sebuah tombol submit:
Aturan validasi untuk formulir di atas adalah sebagai berikut:
Fields teks
Nama, email, dan bidang situs adalah elemen input teks, dan kolom komentar adalah textarea.
Kode HTML terlihat seperti ini:
Name: <input type="text" name="name">
E-mail: <input type="text" name="email">
Website: <input type="text" name="website">
Comment: <textarea name="comment" rows="5" cols="40"></textarea>
Tombol radio
Bidang gender tombol radio dan kode HTML terlihat seperti ini:
Gender:
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
<input type="radio" name="gender" value="other">Other
Formulir Element
The $ _SERVER [ "PHP_SELF"] adalah variabel global super yang mengembalikan nama file
dari script saat ini mengeksekusi.
Jadi, $ _SERVER [ "PHP_SELF"] mengirimkan data formulir diserahkan ke halaman itu sendiri,
bukannya melompat ke halaman yang berbeda. Dengan cara ini, pengguna akan mendapatkan
pesan error pada halaman yang sama seperti formulir.
The htmlspecialchars () fungsi mengkonversi karakter khusus untuk entitas HTML. Ini berarti
bahwa hal itu akan menggantikan karakter HTML seperti <dan> dengan & lt; dan & gt ;. Hal ini
mencegah penyerang dari mengeksploitasi kode dengan menyuntikkan HTML atau kode
Javascript (serangan Scripting Cross-site) dalam bentuk.
Sekarang, jika pengguna memasukkan URL normal pada address bar seperti
"http://www.example.com/test_form.php", kode di atas akan diterjemahkan ke:
http://www.example.com/test_form.php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E
Kode ini menambahkan tag script dan perintah peringatan. Dan ketika beban halaman, kode
JavaScript akan dieksekusi (pengguna akan melihat kotak peringatan). Ini hanya contoh
sederhana dan tidak berbahaya bagaimana variabel PHP_SELF dapat dimanfaatkan.
Menyadari bahwa kode JavaScript dapat ditambahkan dalam tag <script>! Seorang hacker
dapat mengarahkan pengguna ke file di server lain, dan file yang dapat menyimpan kode
berbahaya yang dapat mengubah variabel global atau menyerahkan formulir ke alamat lain untuk
menyimpan data pengguna, misalnya.
Hal pertama yang akan kita lakukan adalah untuk lulus semua variabel melalui htmlspecialchars
PHP () fungsi.
Ketika kita menggunakan htmlspecialchars () fungsi; maka jika pengguna mencoba untuk
menyerahkan berikut dalam kolom teks:
- ini tidak akan dieksekusi, karena itu akan disimpan sebagai HTML lolos kode, seperti ini:
& Lt; script yang & gt; location.href ( 'http://www.hacked.com') & lt; / script & gt;
Kode ini sekarang aman untuk ditampilkan pada halaman atau di dalam e-mail.
Kami juga akan melakukan dua hal lebih ketika pengguna menyerahkan formulir:
1. Jalur karakter yang tidak perlu (extra space, tab, baris baru) dari data input pengguna (dengan
fungsi PHP lis ())
2. Hapus backslashes (\) dari data input pengguna (dengan stripslashes PHP () fungsi)
Langkah selanjutnya adalah membuat fungsi yang akan melakukan semua pengecekan untuk kita
(yang jauh lebih nyaman daripada menulis kode yang sama berulang-ulang).
Sekarang, kita dapat memeriksa setiap variabel $ _POST dengan fungsi test_input (), dan script
terlihat seperti ini:
Perhatikan bahwa pada awal script, kita memeriksa apakah formulir telah disampaikan
menggunakan $ _SERVER [ "REQUEST_METHOD"]. Jika REQUEST_METHOD adalah
POST, maka formulir telah disampaikan - dan itu harus divalidasi. Jika belum diajukan,
melewatkan validasi dan menampilkan formulir kosong.
Namun, dalam contoh di atas, semua bidang input adalah opsional. Script bekerja dengan baik
bahkan jika pengguna tidak memasukkan data apapun.
Langkah selanjutnya adalah membuat field input yang dibutuhkan dan membuat pesan kesalahan
jika diperlukan.
Bab ini menunjukkan bagaimana untuk membuat field input yang dibutuhkan dan membuat
pesan kesalahan jika diperlukan.
Dari tabel aturan validasi pada halaman sebelumnya, kita melihat bahwa "Nama", "E-mail", dan
"Gender" bidang yang diperlukan. Bidang ini tidak boleh kosong dan harus diisi dalam bentuk
HTML.
Dalam kode berikut kami telah menambahkan beberapa variabel baru: $ nameErr, $ emailErr, $
genderErr, dan $ websiteErr. Variabel kesalahan akan mengadakan pesan kesalahan untuk
bidang yang diperlukan. Kami juga telah menambahkan if elsepernyataan untuk masing-
masing variabel $ _POST. Ini memeriksa jika variabel $ _POST kosong (dengan PHP empty()
fungsi). Jika kosong, pesan kesalahan disimpan dalam variabel kesalahan yang berbeda, dan jika
tidak kosong, ia akan mengirimkan data input pengguna melalui test_input() fungsi:
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
}
if (empty($_POST["website"])) {
$website = "";
} else {
$website = test_input($_POST["website"]);
}
if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}
if (empty($_POST["gender"])) {
$genderErr = "Gender is required";
} else {
$gender = test_input($_POST["gender"]);
}
}
?>
Kemudian dalam bentuk HTML, kita menambahkan sedikit script setelah masing-masing bidang
yang diperlukan, yang menghasilkan pesan kesalahan yang benar jika diperlukan (yaitu jika
pengguna mencoba untuk mengirimkan formulir tanpa mengisi formulir yang diperlukan):
<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
}
if (empty($_POST["website"])) {
$website = "";
} else {
$website = test_input($_POST["website"]);
}
if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}
if (empty($_POST["gender"])) {
$genderErr = "Gender is required";
} else {
$gender = test_input($_POST["gender"]);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<?php
echo "<h2>Your Input:</h2>";
echo $name;
echo "<br>";
echo $email;
echo "<br>";
echo $website;
echo "<br>";
echo $comment;
echo "<br>";
echo $gender;
?>
</body>
</html>
Langkah berikutnya adalah untuk memvalidasi data input, yang "Apakah bidang Nama hanya
berisi huruf dan spasi?", Dan "Apakah bidang E-mail berisi sintaks alamat e-mail yang valid?",
Dan jika diisi, " Apakah field website berisi URL yang valid?".
Bab ini menunjukkan bagaimana untuk memvalidasi nama, e-mail, dan URL.
Kode di bawah ini menunjukkan cara sederhana untuk memeriksa apakah kolom nama hanya
berisi huruf dan spasi. Jika nilai dari kolom nama tidak valid, maka menyimpan pesan kesalahan:
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
The preg_match () fungsi pencarian string untuk pola, kembali benar jika pola itu ada,
dan false jika tidak.
Cara termudah dan paling aman untuk memeriksa apakah alamat email dengan baik terbentuk
adalah dengan menggunakan filter_var () fungsi PHP.
Dalam kode di bawah, jika alamat e-mail tidak well-formed, kemudian menyimpan pesan
kesalahan:
$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
PHP - Validasi URL
Kode di bawah ini menunjukkan cara untuk memeriksa apakah sintaks alamat URL berlaku
(ekspresi reguler ini juga memungkinkan strip dalam URL). Jika sintaks alamat URL tidak valid,
maka menyimpan pesan kesalahan:
$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-
9+&@#\/%=~_|]/i",$website)) {
$websiteErr = "Invalid URL";
}
<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
}
if (empty($_POST["website"])) {
$website = "";
} else {
$website = test_input($_POST["website"]);
// check if URL address syntax is valid
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-
9+&@#\/%=~_|]/i",$website)) {
$websiteErr = "Invalid URL";
}
}
if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}
if (empty($_POST["gender"])) {
$genderErr = "Gender is required";
} else {
$gender = test_input($_POST["gender"]);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<?php
echo "<h2>Your Input:</h2>";
echo $name;
echo "<br>";
echo $email;
echo "<br>";
echo $website;
echo "<br>";
echo $comment;
echo "<br>";
echo $gender;
?>
</body>
</html>
Langkah berikutnya adalah untuk menunjukkan bagaimana mencegah formulir dari
mengosongkan semua field input ketika pengguna menyerahkan formulir.
Bab ini menunjukkan bagaimana untuk menjaga nilai-nilai dalam field input ketika pengguna
menekan tombol submit.
Untuk menampilkan nilai-nilai dalam field input setelah pengguna menekan tombol submit, kita
menambahkan script PHP kecil di dalam atribut nilai field input berikut: nama, email, dan
website. Di bidang komentar textarea, kami menempatkan script antara <textarea> dan </
textarea> tag. Script sedikit output nilai dari nama $, $ email, $ website, dan variabel komentar
$.
Kemudian, kita juga perlu menunjukkan yang tombol radio yang diperiksa. Untuk ini, kita harus
memanipulasi atribut diperiksa (tidak atribut nilai untuk tombol radio):
Gender:
<input type="radio" name="gender"
<?php if (isset($gender) && $gender=="female") echo "checked";?>
value="female">Female
<input type="radio" name="gender"
<?php if (isset($gender) && $gender=="male") echo "checked";?>
value="male">Male
<input type="radio" name="gender"
<?php if (isset($gender) && $gender=="other") echo "checked";?>
value="other">Other
<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
}
if (empty($_POST["website"])) {
$website = "";
} else {
$website = test_input($_POST["website"]);
// check if URL address syntax is valid (this regular expression
also allows dashes in the URL)
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-
9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
$websiteErr = "Invalid URL";
}
}
if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}
if (empty($_POST["gender"])) {
$genderErr = "Gender is required";
} else {
$gender = test_input($_POST["gender"]);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<?php
echo "<h2>Your Input:</h2>";
echo $name;
echo "<br>";
echo $email;
echo "<br>";
echo $website;
echo "<br>";
echo $comment;
echo "<br>";
echo $gender;
?>
</body>
</html>