PHP Dan MySQL
PHP Dan MySQL
Fundamental
dan
MySQL
Fundamental
Daftar Isi
A. Copyright......................................................................................................................................6
B. Disclaimer ....................................................................................................................................6
C. Version..........................................................................................................................................6
D. Knowledge Required.................................................................................................................6
E. Feedback and corrections ............................................................................................................7
Endy Muhardin.....................................................................................................................................1
I. Pengantar ........................................................................................................................................2
A. Statement ......................................................................................................................................7
B. Expression ....................................................................................................................................7
C. Comment.......................................................................................................................................7
V. Operators ..................................................................................................................................14
A. Percabangan...............................................................................................................................23
if – else ...........................................................................................................................................23
switch – case...................................................................................................................................26
B. Perulangan .................................................................................................................................28
for ...................................................................................................................................................28
while ...............................................................................................................................................29
C. Perpindahan ...............................................................................................................................30
break ...............................................................................................................................................30
continue ..........................................................................................................................................31
return ..............................................................................................................................................31
exit..................................................................................................................................................32
VII. Array..........................................................................................................................................34
VIII. Function.................................................................................................................................37
A. Scope ..........................................................................................................................................40
Local...............................................................................................................................................40
Global .............................................................................................................................................40
B. Passing variabel .........................................................................................................................40
By Value.........................................................................................................................................40
By Reference ..................................................................................................................................41
XIV. Session....................................................................................................................................64
A. No Session ..................................................................................................................................64
login.htm.........................................................................................................................................64
loginNoSession.php........................................................................................................................65
welcomeNoSession.php..................................................................................................................65
displayNoSession.php ....................................................................................................................65
Jalannya aplikasi :...........................................................................................................................66
B. Konsep session............................................................................................................................68
C. Implementasi : Cookie ................................................................................................................69
D. Implementasi : Hidden Form..................................................................................................72
E. Implementasi : URL Embedding.................................................................................................72
F. Implementasi : Session API ........................................................................................................72
About the document
A. Copyright
This document is copyrighted (c) 2003 ArtiVisi Intermedia. Permission is
granted to copy, distribute and/or modify this document under the terms of the
GNU Free Documentation License, Version 1.2 or any later version published
by the Free Software Foundation; with no Invariant Sections, with no Front-
Cover Texts, and with no Back-Cover Texts. A copy of the license is available
at http://www.gnu.org/copyleft/fdl.html
B. Disclaimer
No liability for the contents of this documents can be accepted. Use the
concepts, examples and other content at your own risk. As this is a new
edition of this document, there may be errors and inaccuracies, that may of
course be damaging to your system. Proceed with caution, and although this
is highly unlikely, the author(s) do not take any responsibility for that.
You are strongly recommended to take a backup of your system before major
installation and backups at regular intervals.
C. Version
Revision : 1.0.1
D. Knowledge Required
This document assume the reader (you) to be fluent in HTML and Web
Designing. Basic capabilities such as creating web page, uploading website to
internet, and all related skills must be mastered.
E. Feedback and corrections
If you have questions or comments about this document, please feel free to
mail us at [email protected]. We welcome any suggestions or criticisms.
Thanks.
About the authors
Endy Muhardin
Lahir di Jakarta, 8 Juni 1979. Lulus dari SMUN 81 Jakarta Timur
pada tahun 1997 dan melanjutkan ke Teknik Industri STT
Telkom. Di masa kuliah salah pergaulan sehingga terkena
wabah Linux-PHP-MySQL. Selain itu, aktif dalam berbagai
organisasi mahasiswa seperti Himpunan Mahasiswa Teknik Industri STT
Telkom dan Senat Mahasiswa STT Telkom. Pada tahun 1999 ikut terlibat
mendirikan start-up company Telematics Indonesia
<http://www.telematicsindonesia.com>. Menyelesaikan kuliah pada tahun
2001, meninggalkan Telematics Indonesia yang sedang direstrukturisasi, dan
hijrah ke Surabaya.
1
I. Pengantar
Backend storage
2
Back End Storage
Bagian ini mengatur cara penyimpanan data. Penyimpanan data
merupakan materi yang cukup kompleks dalam pembangunan aplikasi.
Karena kecepatan, keutuhan, dan keamanan data merupakan faktor kritis
dalam aplikasi.
Ada banyak solusi database yang tersedia di pasaran. Pada umumnya,
database yang digunakan bertipe relasional (Relational Database
Management System – RDBMS). Manajemen data dilakukan dengan
bahasa SQL (Standard Query Language).
C. Teknologi Alternatif
Teknologi server side yang akan kita pelajari pada modul ini adalah PHP.
Walaupun demikian, perlu diketahui teknologi alternatif yang dapat
menjadi bahan pertimbangan.
CGI Script
CGI Script dapat dibuat dengan berbagai bahasa pemrograman, misalnya
Perl atau Phyton. Teknologi ini pernah sangat populer di masa awal
berkembangnya web based application. Tetapi saat ini banyak
3
ditinggalkan orang karena tidak efisien, tidak fleksibel, dan keamanannya
rendah.
Proprietary API
Teknologi ini adalah bahasa pemrograman yang disediakan masing-
masing webserver, misalnya ISAPI atau NSAPI. Teknologi ini memiliki
kelemahan, yaitu hanya dapat berjalan di webserver tertentu, sehingga
mengurangi portabilitas.
ASP
Merupakan solusi server side programming dari Microsoft. Teknologi ini
banyak digunakan oleh para programmer yang berlatar belakang Visual
Basic. Database pasangannya adalah MS SQL Server. Operating system
pasangannya adalah Window 2000 Server yang menjalankan webserver
Microsoft IIS.
JavaServlet/JSP
Teknologi server side Java. Mempunyai banyak keunggulan dan
kemudahan pemrograman. Tetapi karena murni berorientasi objek,
banyak programmer pemula kesulitan menggunakannya. Selain itu, Java
juga adalah bahasa pemrograman yang relatif rumit bagi pemula.
Keunggulannya, sangat portabel. Dapat dipindahkan dengan mudah dari
Windows ke Unix dan sebaliknya.
ColdFusion
Bahasa pemrograman ini mirip dengan HTML, menggunakan tag untuk
membentuk blok-blok programnya.
PHP
Banyak digunakan oleh programmer berlatar belakang C/C++ karena
kemiripan syntaxnya. Open source, karenanya gratis dan bebas.
Database pasangannya biasanya MySQL, dijalankan bersama webserver
Apache di atas operating system Linux. Semuanya gratis dan bebas.
4
II. Hello World
Dalam bagian ini, kita akan membuat kode program sederhana untuk
menunjukkan bagaimana aplikasi PHP bekerja.
A. Source code
File welcome.php akan berisi tiga baris kode sebagai berikut :
<?
echo(“Hallo user .. !”));
?>
B. Compile
Kode program pada umumnya akan mengalami proses kompilasi
setelah source code selesai dibuat. Tetapi karena PHP adalah interpreted
language, kita tidak perlu mengkompile kode ini.
C. Deploy
Untuk mendeploy, copy file welcome.php ke dalam folder percobaan
yang telah disiapkan pada bagian instalasi di atas.
D. Error message
Kode di atas akan mengalami error, karena kita terlalu banyak menulis
tanda ). Pesan error akan muncul di layar, menunjukkan lokasi error
pada kode, dan tipe errornya.
E. Output
Perbaiki kode welcome.php sehingga menjadi seperti berikut ini:
<?
echo(“Hallo user .. !”));
?>
kode akan dapat dijalankan dengan baik dan menghasilkan output
sebagai berikut :
5
6
III. Statement dan Comment
A. Statement
Statement adalah satuan perintah dalam PHP. Statement harus diakhiri
dengan tanda semicolon/titik-koma (;).
Contoh statement :
Contoh lainnya :
echo(“4 + 5 = ” . 4+5);
B. Expression
Expression adalah satu bagian kecil kode yang akan dihitung hasilnya
oleh php. Contoh expression :
4 + 5
Penggunaan expression :
echo(“4 + 5 = ” . 4+5);
C. Comment
Comment adalah bagian dari kode yang tidak dieksekusi/dijalankan.
Comment dibuat untuk memperjelas atau memberi keterangan pada
kode program.
Ada dua cara menulis comment : comment satu baris dan comment
banyak baris.
7
/*
kode ini akan menampilkan hasil dari
4 + 5
*/
echo(“4 + 5 = ” . 4+5);
8
IV. Variabel dan Tipe Data
Variabel digunakan sebagai tempat penyimpanan data sementara. Data yang
disimpan dalam variabel akan hilang setelah program selesai dieksekusi.
Untuk penyimpanan data yang permanen, kita dapat menyimpan data di
database atau di disk. Silahkan mengacu pada Akses Database untuk
mendalami penggunaan database, dan Akses File dan Folder untuk
penyimpanan data di filesystem.
Untuk dapat menggunakan variabel, ada dua langkah yang harus dilakukan,
deklarasi dan inisialisasi.
A. Deklarasi variabel
Deklarasi variabel bisa disebut juga memperkenalkan atau
mendaftarkan variabel ke dalam program.
Contoh :
$namaPembeli
$jumlahBarang
$harga
B. Inisialisasi variabel
Inisialisasi variabel adalah mengisi nilai untuk pertama kalinya ke dalam
variabel. Contoh inisialisasi :
9
$namaDepan = “Endy”;
$namaBelakang = “Muhardin”;
$jumlahBarang = 3;
$harga = 1000;
C. Tipe data
Dalam bahasa pemrograman yang lain, ada bermacam-macam tipe
data, misalnya integer(bilangan bulat), float(bilangan pecahan),
char(karakter angka dan huruf), string(kumpulan huruf atau kata), dan
berbagai tipe lainnya.
PHP mengenal dua tipe data sederhana; numerik dan literal. Ditambah
dengan dua tipe data yang tidak sederhana, yaitu array dan object.
Tipe boolean, yang dikenal dalam bahasa program yang lainnya, tidak
ada dalam PHP. Untuk menguji benar salah (true false), kita
menggunakan tipe data yang tersedia. FALSE dapat digantikan oleh
integer 0, double 0.0 atau string kosong, yaitu "". Selain nilai itu, semua
dianggap TRUE.
$jumlahBarang = 3;
$harga = 1000;
$pembayaran = $jumlahBarang * $harga;
Sedangkan data non numerik (disebut juga data literal) tidak dapat
dioperasikan secara matematika. Contoh :
10
variabel nama akan menyimpan gabungan dari dua variabel, yaitu
“Endy Muhardin”.
Variabel hasil akan menyimpan nilai 32, yaitu penjumlahan dari 29 dan
3.
D. Passing Variable
Variabel dapat di-passing atau diteruskan ke halaman web berikutnya
yang diakses user. Ada beberapa teknik untuk meneruskan variabel,
diantaranya :
Melalui URL
Melalui Form
Melalui Cookie
URL
Variabel diteruskan melalui URL dengan format sbb
11
[alamat web]?var1=nilai1&var2=nilai2
Misalnya, untuk memberikan variabel $nama berisi “Endy” dan $alamat =
“Surabaya” ke welcome.php, kita akan menulis :
welcome.php?nama=Endy&alamat=Surabaya
Di kolom address pada explorer. Untuk lebih jelasnya, perhatikan gambar
berikut.
Form
Cara lain untuk mengirim kedua variabel tersebut adalah dengan
menggunakan form dengan kode sebagai berikut :
<html>
<head>
<title>Passing Variable</title>
</head>
<body>
</body>
</html>
12
dan tampilan sebagai berikut :
Cookie
Penggunaan cookie akan dibahas pada bagian tentang session.
13
V. Operators
Operator digunakan untuk memanipulasi nilai suatu variabel. Variabel yang
nilainya dimodifikasi oleh operator disebut operand. Contoh penggunaan
operator misalnya 13 - 3. 13 dan 3 adalah operand. Tanda "-" disebut
operator.
Arithmetic Operator
Assignment Operator
Comparison Operator
Logical Operator
Lain-lain
A. Arithmetic operator
Arithmetic Operator digunakan untuk melakukan perhitungan
matematika. Misalnya
$a = 5 + 3;
+ : penjumlahan
- : pengurangan
* : perkalian
/ : pembagian
Contoh penggunaan :
operator.htm
14
Komponen Nama Variabel
TextField kiri operand1
TextField kanan operand2
Operator op
Action hasilArithmetic.php
operator.php
<?
$perhitungan = $operand1.$operator.$operand2;
eval("\$hasil = $perhitungan;");
echo("Hasil Perhitungan : ");
echo("<b>");
echo($hasil);
echo("</b>");
?>
B. Relational operator
Relational operator digunakan untuk membandingkan nilai dari dua
operand. Hasil perbandingan dinyatakan dalam nilai boolean. TRUE
berarti benar, dan FALSE berarti salah.
15
< : memeriksa apakah operand kiri bernilai lebih kecil dengan
operand kanan
16
<?
$perhitungan = $operand1.$op.$operand2;
$hasil = eval($perhitungan);
C. Logical operator
Logical Operator digunakan untuk membandingkan dua nilai variabel
yang bertipe boolean. Hasil yang didapat dari penggunaan logical
operator adalah boolean.
Tabel logika berikut digunakan sebagai pedoman perhitungan
17
D. Assignment Operator
Assignment operator digunakan untuk memberi/mengisi nilai ke dalam
variabel tertentu. Contoh sederhana :
$nama = "endy";
Pada contoh di atas, operator "=" digunakan untuk mengisi nilai "endy"
ke dalam variabel nama.
Operator +=
Penjelasan :
Menambahkan nilai pada variabel
Contoh :
$a += 3;
sama dengan
$a = $a + 3;
Operator -=
Penjelasan :
Mengurangi nilai pada variabel
Contoh :
18
$a -= 3;
sama dengan
$a = $a - 3;
Operator *=
Penjelasan :
Mengalikan variabel dengan bilangan tertentu
Contoh :
$a *= 3;
sama dengan
$a = $a * 3;
Operator /=
Penjelasan :
Membagi variabel dengan bilangan tertentu
Contoh :
$a /= 3;
sama dengan
$a = $a / 3;
Operator %=
Penjelasan :
Mencari sisa hasil bagi variabel dengan bilangan tertentu
Contoh :
$a %= 3;
sama dengan
$a = $a % 3;
Operator &=
Penjelasan :
Melakukan operasi logical AND pada variabel
Contoh :
$a &= TRUE;
sama dengan
$a = $a & TRUE;
19
Operator |=
Penjelasan :
Melakukan operasi logical OR pada variabel
Contoh :
$a |= FALSE;
sama dengan
$a = $a | FALSE;
Operator ^=
Penjelasan :
Melakukan operasi bitwise xor pada variabel
Contoh :
$a ^= 3;
sama dengan
$a = $a ^ 3;
Operator .=
Penjelasan :
Menambahkan String pada variabel
Contoh :
$a .= “rudi”;
sama dengan
$a = $a . “rudi”;
Operator ++
Penjelasan :
Menambahkan nilai satu pada variabel
Contoh :
$a ++ ;
sama dengan
$a = $a + 1;
Operator --
Penjelasan :
Mengurangi nilai satu pada variabel
Contoh :
20
$a -- ;
sama dengan
$a = $a - 1;
E. Operator lain-lain
Operator penggabung String
Pada PHP, string digabungkan dengan operator . (titik).
Contoh penggunaan :
$string1 = "Hello";
$string2 = "World";
echo($string1." ".$string2);
akan menampilkan :
Hello World
Operator percabangan
Percabangan pada umumnya dilakukan dengan struktur if-else, seperti
pada contoh berikut:
if($user == "endy"){
echo("Welcome Endy");
}else{
echo("Wrong username");
}
Hal yang sama dapat dilakukan dengan cara :
echo($user == endy ? "Welcome Endy" : "Wrong username");
Perhatikan tanda ? dan :
PHP memeriksa apakah pernyataan di sebelah kiri "?" benar atau salah.
Apabila benar, pernyataan di sebelah kiri tanda ":" dieksekusi. Bila salah,
pernyataan di sebelah kanan ":" dieksekusi.
Lebih jelas tentang percabangan dapat dipelajari dalam bagian Control
Flow.
Operator Error Suppression
PHP menampilkan pesan error apabila built-in function (function yang
disediakan PHP) mengalami error. Misalnya tidak bisa membuka file,
tidak bisa mengakses database, dan lainnya.
Pada saat pembuatan aplikasi, pesan error ini sangat membantu dalam
menyelesaikan dan memperbaiki kesalahan pemrograman. Tetapi, pada
saat aplikasi selesai dibuat dan digunakan secara umum, pesan error ini
akan mengganggu pengguna.
Untuk mematikan pesan error tersebut, kita menggunakan operator @.
21
Contoh penggunaan :
@chdir("temp");
Pada kondisi normal, function chdir akan menimbulkan pesan error
apabila direktori temp tidak ditemukan atau tidak dapat diakses. Dengan
menggunakan operator @, PHP akan "diam saja" apabila direktori temp
tidak ditemukan atau tidak dapat diakses.
22
VI. Control Flow
Control flow dalam bahasa Indonesia dapat diartikan sebagai aliran
kendali. Maksud sebenarnya dari control flow adalah bagaimana urutan
eksekusi perintah di dalam program.
function testFlow()
{
int a = 5;
echo(a);
}
Perintah pertama yang dijalankan adalah mengisi nilai 5 ke dalam
variabel a.
Percabangan (branching)
Perulangan (looping)
Perpindahan (jumping)
A. Percabangan
Percabangan, atau sering disebut juga dengan istilah decision-making,
memungkinkan aplikasi untuk memeriksa isi suatu variabel atau hasil
perhitungan ekspresi dan mengambil tindakan yang sesuai. Ada dua jenis
percabangan, dipilih berdasarkan kriteria pemeriksaan dan jumlah pilihan
yang tersedia.
if – else
Konstruksi if-else dapat dijelaskan sebagai berikut :
23
if(condition)
{
// statement 1 goes here
}
else
{
// statemant 2 goes here
}
// statement 3 goes here
Aliran program :
4. Statement 3 dijalankan
if - elseif - else
Untuk pilihan yang lebih dari dua, PHP menyediakan konstruksi if-elseif-
else.
if(condition1)
{
// statement 1
}
elseif(condition2)
{
// statement 2
}
else
{
// statement 3
}
// statement 4
Aliran program :
1. Statement 1 dijalankan
2. Statement 4 dijalankan
1. Statement 2 dijalankan
2. Statement 4 dijalankan
24
Apabila condition 1 dan condition 2 bernilai false :
1. Statement 3 dijalankan
2. Statement 4 dijalankan
25
<?
// ifDemo.php
// digunakan bersama control_flow.htm
$kelabu = "#303030";
$putih = "#FFFFFF";
if($kelamin1 == "Pria"){
$latar1 = $kelabu;
}else{
$latar1 = $putih;
}
if($kelamin2 == "Pria"){
$latar2 = $kelabu;
}else{
$latar2 = $putih;
}
if($kelamin3 == "Pria"){
$latar3 = $kelabu;
}else{
$latar3 = $putih;
}
if($kelamin4 == "Pria"){
$latar4 = $kelabu;
}else{
$latar4 = $putih;
}
$output = "
<table border=1>
<tr>
<td background=$latar1>$nama1</td>
</tr>
<tr>
<td background=$latar2>$nama2</td>
</tr>
<tr>
<td background=$latar3>$nama3</td>
</tr>
<tr>
<td background=$latar4>$nama4</td>
</tr>
</table>
";
echo($output);
?>
switch – case
konstruksi switch dapat dijelaskan sebagai berikut :
26
switch(a){
case 1;
// statement 1 goes here
break;
case 2;
// statement 2 goes here
break;
case 3;
// statement 3 goes here
break;
default;
// statement 4 goes here
break;
}
// statement 5 goes here
Aliran program :
1. Variabel a diperiksa
2. Statement dieksekusi
3. Statement 5 dijalankan
switch(a){
case 1;
// statement 1 goes here
case 2;
// statement 2 goes here
break;
case 3;
// statement 3 goes here
break;
default;
// statement 4 goes here
break;
}
Aliran program :
1. variabel a diperiksa
2a. Apabila a == 1, statement 1 dijalankan, kemudian
menjalankan statement 2.
2b. Apabila a == 2, statement 2 dijalankan
27
2c. Apabila a == 3, statement 3 dijalankan
2d. Apabila a tidak memenuhi 2a - 2c, statement 4 dijalankan
3. Statement 5 dijalankan
Perbedaan ada pada langkah 2a. Bandingkan dengan listing pertama.
Untuk melihat contoh penggunaan switch – case, tambahkan tampilan
pada control_flow.htm menjadi seperti gambar di bawah.
B. Perulangan
for
Looping dengan for disebut juga determinate loop, artinya looping yang
jumlah pengulangannya (iterasi) telah ditentukan di awal looping.
28
Ada beberapa bagian penting dari for loop:
Initialization expression
Stop condition
Iterative expression
Loop body
Initialization Expression dijalankan satu kali, pada saat looping dimulai.
Biasanya bagian ini digunakan untuk menginisialisasi
counter(penghitung).
Stop condition diperiksa nilainya sebelum setiap iterasi dieksekusi.
Apabila condition bernilai false, iterasi dihentikan.
Iterative expression dilakukan setelah iterasi dieksekusi. Bagian ini
biasanya digunakan untuk menambah nilai counter.
Loop body dieksekusi sekali setiap iterasi, merupakan perintah yang ingin
kita lakukan berulang-ulang.
Contoh kode di atas akan menampilkan tulisan Hello World di browser
sebanyak 10 kali.
Untuk melihat contoh penggunaan for, tambahkan tampilan pada
control_flow.htm menjadi seperti gambar di bawah.
while
while loop juga dikenal dengan istilah indeterminate loop, artinya jumlah
loopingnya tidak ditentukan pada awal looping. while loop lebih
sederhana daripada for loop, karena cuma memiliki dua bagian:
29
Stop Condition
Loop body
Stop condition diperiksa sebelum tiap iterasi dilaksanakan. Selama stop
condition bernilai true, perintah dalam loop body akan dilakukan
berulang-ulang. Iterasi akan dihentikan apabila stop condition bernilai
false.
Sama seperti pada for loop, loop body dilaksanakan satu kali setiap
iterasi.
Loop di atas akan berjalan terus tanpa henti, karena tidak ada perintah
yang mengubah nilai stop condition.
do-while loop merupakan modifikasi dari while loop. Bentuknya dapat
dilihat pada sampel kode berikut:
do{
// some statement
}
while (a == true)
C. Perpindahan
break
Break digunakan dalam looping untuk menghentikan suatu loop. Untuk
lebih jelasnya, perhatikan kode berikut :
30
<?
// melakukan break pada $i == 2
for($i = 0; $1<5; $i++){
if($i == 2){
break;
}
echo("Nilai i : $i <br>");
}
echo(“Loop Selesai”);
?>
continue
continue berfungsi untuk melewati satu iterasi/putaran dalam rangkaian
loop. Untuk lebih jelasnya, kode di atas akan kita modifikasi.
<?
// melakukan continue pada $i == 2
for($i = 0; $1<5; $i++){
if($i == 2){
continue;
}
echo("Nilai i : $i <br>");
}
echo("Loop Selesai");
?>
return
perintah return berfungsi untuk memerintahkan kode untuk keluar dari
fungsi. Fungsi akan kita pelajari dengan lebih mendalam pada bagian
selanjutnya. Untuk sementara, fungsi cuma akan digunakan untuk
menjelaskan return. Perhatikan kode di bawah :
31
<?
function testReturn(){
for($i = 0; $1<5; $i++){
// melakukan return pada $i == 2
if($i == 2){
return;
}
echo("Nilai i : $i <br>");
}
echo("Loop Selesai");
}
// jalankan function
testReturn();
echo("Function selesai");
?>
outputnya adalah :
Nilai i : 0
Nilai i : 0
Function Selesai
echo(“Function Selesai”);
exit
exit digunakan untuk menghentikan keseluruhan script php. Untuk lebih
jelasnya, kita akan modifikasi kode di atas menjadi seperti berikut :
<?
function testExit(){
for($i = 0; $1<5; $i++){
// melakukan return pada $i == 2
if($i == 2){
exit;
}
echo("Nilai i : $i <br>");
}
echo("Loop Selesai");
}
// jalankan function
testExit();
echo("Function selesai");
?>
outputnya adalah :
Nilai i : 0
Nilai i : 0
Function Selesai
32
Perhatikan bahwa baris
echo("Function selesai");
Tidak dijalankan.
Untuk melihat contoh penggunaan break, continue, return, dan exit;
tambahkan tampilan pada control_flow.htm menjadi seperti gambar di
bawah.
execute($tanda, $perintah);
echo("Function execute selesai<br>");
?>
33
VII. Array
A. Konsep array
Array adalah kumpulan beberapa data yang disimpan dalam satu
variabel. Jadi, berbeda dengan variabel sebelumnya yang hanya
menyimpan satu nilai saja, array dapat menampung lebih dari satu nilai.
B. Inisialisasi array
Inisialisasi (mengisi nilai) array $teman di atas dilakukan dengan cara
sebagai berikut :
$teman[] = “Charlie”;
$teman[] = “Ani”;
$teman[] = “Charlie”;
hasilnya adalah array berindeks numerik yang dapat digambarkan
sebagai berikut :
34
untuk membuat array berindex asosiatif, kita membutuhkan label atau
nama untuk masing-masing elemen. Contoh di atas akan dikembangkan
agar dapat menyimpan nomer telepon masing-masing teman. Gambaran
visualnya adalah sebagai berikut :
$rekan = array(“Charlie”=>123);
$rekan [“Ani”] = 528;
$rekan [“Budi”] = 456;
C. Navigasi array
Navigasi (mengakses nilai) array dapat dilakukan dengan looping.
Misalnya untuk menampilkan isi array berindex numerik di atas, kita akan
menggunakan kode seperti berikut :
for($i=0; $i<length($teman);$i++){
echo(“Array \$teman index ke [$i] adalah $teman[$i]”);
echo(“<br>”);
}
ada dua fungsi yang terlibat di atas, each dan list. Fungsi each
berguna untuk mengakses masing-masing elemen dalam array. Elemen
yang dihasilkan adalah pasangan key dan value, dimana key adalah
35
indexnya dan value adalah isinya. Pasangan tersebut akan dipisahkan
oleh fungsi list dan dimasukkan ke dalam variabel $index dan $nilai.
D. Fungsi-fungsi array
sort
Elemen-elemen dalam array dapat diurutkan dengan menggunakan
fungsi sort(). Contoh penggunaannya adalah sebagai berikut :
sort($teman);
for($i=0; $i<length($teman);$i++){
echo(“Array \$teman index ke [$i] adalah $teman[$i]”);
echo(“<br>”);
}
akan menghasilkan output :
Array teman index ke 0 adalah Ani
Array teman index ke 1 adalah Budi
Array teman index ke 2 adalah Charlie
36
VIII. Function
A. Konsep function
Function adalah kumpulan beberapa statement yang dibuat dengan
tujuan menyelesaikan satu tugas tertentu.
C. Deklarasi function
Ada beberapa hal utama yang perlu diperhatikan dalam deklarasi
function pada PHP.
nama function
parameter
function body
Contoh function:
1 function addNumber($x, $y)
2 {
3 z = x + y;
4 echo(z);
5 }
6
7 function jumlahkanlah(int x, int y)
8 {
9 z = x + y;
10 return z;
11 }
37
Baris satu merupakan deklarasi function. deklarasi berisi :
- keyword function
- nama function
- parameter
Parameter adalah nilai yang dimasukkan ke dalam function untuk
diproses sehingga menghasilkan output.
Nama function ditentukan dengan memenuhi aturan sebagai berikut :
Tidak boleh sama dengan function yang telah ada dalam PHP.
Hanya boleh terdiri dari huruf, angka, dan garis bawah (underscore)
Tidak boleh diawali dengan angka
function 4uOnly(){} // tidak boleh
D. Implementasi function
Contoh function:
1 function addNumber($x, $y)
2 {
3 z = x + y;
4 echo(z);
5 }
6
7 function jumlahkanlah(int x, int y)
8 {
9 z = x + y;
10 return z;
11 }
38
Baris 4 menyuruh komputer untuk menampilkan hasil perhitungan ke
layar.
Bedakan dengan baris 4 pada function jumlahkanlah yang
memerintahkan komputer untuk menampilkan hasil perhitungan di
layar
Contoh penggunaan function
hasil = jumlahkanlah(4,5);
addNumber(4,5);
39
IX. Variable Lifetime
A. Scope
Scope, lifetime, visibility adalah berbagai istilah yang sama,
menyatakan di mana variabel dapat digunakan dalam program. PHP
mengenal dua macam scope, yaitu local dan global. Variabel local hanya
dapat digunakan dalam blok tempatnya dideklarasi. Variabel global dapat
digunakan di mana saja dalam program setelah dideklarasi dan
diinisialisasi.
Local
Untuk lebih memahami scope local, perhatikan script di bawah :
<?
function testVar(){
$a = 3;
}
echo($a); // error – variabel $a tidak dikenali
?>
Global
Variabel global dideklarasi di luar function dan dapat digunakan di mana
saja dalam program. Variabel global tidak berlaku di dalam function
kecuali dipanggil dengan keyword global. Contoh penggunaan :
<?
$a = 4;
function testVar2(){
echo($a); // -- tidak menghasilkan apa-apa
global $a;
echo($a); // -- menampilkan 4
}
?>
B. Passing variabel
By Value
Variabel dipassing (dimasukkan) ke dalam function dengan cara pass
by value. Pass by value membuat kopi dari variabel yang asli. Dengan
demikian variabel asli tidak terpengaruh. Untuk lebih jelasnya, perhatikan
contoh berikut :
40
function tambahSatu($angka){
$angka++;
}
By Reference
Pada pass by reference, kita memasukkan variabel yang asli ke dalam
function. Teknik ini dilakukan dengan cara sebagai berikut :
function tambahSatu(&$angka){
$angka++;
}
41
X. Class dan Objects
Aplikasi perangkat lunak dibuat untuk menyelesaikan masalah dalam
kehidupan nyata. Dalam proses perancangannya, ada beberapa
pendekatan y ang dipakai.
Sekuensial Programming
Structured Programming
Object Oriented Programming
}
?>
42
dikenal dengan istilah properties. Properties diterjemahkan ke dalam
kode menjadi :
<?
class Contact{
var $namaLengkap;
var $telp;
var $alamat;
}
?>
function panggil($contact){
echo(“Memanggil kontak ”+$contact->namaLengkap);
}
}
?>
43
$ani = new Contact();
$ani->namaLengkap = “Ani Malia”;
$budi = new Contact();
$budi->panggil($ani);
44
XI. File Handling
Pada bagian ini, kita akan mempelajari bagaimana script php berinteraksi
dengan file. Sebagai contoh, kita akan meneruskan aplikasi contact manager
dengan memungkinkan pengguna untuk mengupload file foto beserta
komentarnya. Setelah foto berhasil diupload, kita akan memberikan halaman
untuk mengakses foto dan komentar tersebut.
form tersebut harus dapat menghandle file upload. Listing kode upload.htm
adalah sebagai berikut :
45
<html>
<head>
<title>Pic Uploader</title>
</head>
<body>
<h1>Pic Uploader</h1>
<form enctype="multipart/form-data" method="POST"
action="upload.php">
<p>Nama anda : <input type="text"
name="nama"> </p>
<p>Masukkan foto anda : <input type="file"
name="pic"> </p>
Komentar : <br><TEXTAREA ROWS=5 COLS=40
name="comment"></TEXTAREA>
<p><input type="submit" value="Submit" name="B1"></p>
</form>
</body>
</html>
A. Menulis file
Sekarang kita akan mengerjakan file upload.php yang berguna untuk
menangani file upload dari form tersebut.
46
Form tersebut, setelah diisi dan disubmit, akan diterima oleh server dan
menghasilkan beberapa variabel berikut :
File yang akan kita tulis ke harddisk berada dalam variabel $pic. File ini
akan kita copy untuk disimpan secara permanen dalam disk. Untuk itu,
kita akan menambah kode berikut pada upload.php :
$fileServer = "upload/$nama/$pic_name";
copy($pic, $fileServer);
Selain file gambar yang diupload, kita juga akan menuliskan komentar
yang ada di textarea ke dalam file, dengan nama yang sama dengan
nama gambar, diakhiri dengan extension txt untuk menandai bahwa file
tersebut mempunyai format text.
Buka/buat file
Untuk dapat mengakses dan mengubah isi file, kita membutuhkan
sebuah file descriptor. File descriptor adalah suatu variabel yang
digunakan untuk mewakili file tertentu.
File descriptor didapat dengan menggunakan fungsi php : fopen, untuk
membuka file.
File yang akan kita buat akan diberi nama sesuai dengan nama gambar.
Tambahkan kode berikut pada upload.php
47
$fileComment = "/upload/$nama/$pic_name-comment.txt";
$fp = fopen($fileComment, "w");
seperti kita lihat pada contoh di atas, kita menggunakan fungsi fopen.
Fungsi ini membutuhkan dua masukan (parameter), yaitu : nama file,
dan jenis akses.
Nama File : bertipe string, merupakan nama file yang akan dibuka.
Harus berada dalam folder yang sama dengan tempat script php
yang memanggilnya.
Jenis Akses : bertipe string, menentukan perlakuan yang
diperbolehkan terhadap file yang dibuka. Ada beberapa jenis akses:
Read : disimbolkan dengan huruf r. File yang dibuka hanya dapat
dibaca dan tidak boleh ditulisi. File yang dibuka dengan akses r akan
menimbulkan pesan error kalau ada usaha untuk menulis ke
dalamnya.
Write : disimbolkan dengan huruf w. File yang dibuka hanya dapat
ditulis dan tidak bisa dibaca. Penulisan terhadap file akan
menghapus isi yang sebelumnya.
Read dan write : disimbolkan dengan r+. File yang dibuka dapat
dibaca dan juga ditulisi. Penulisan terhadap file akan ditambahkan
pada bagian awal file.
Write dan read : disimbolkan dengan w+. Apabila file sudah ada,
isinya akan dihapus.
Menambahkan (append) : disimbolkan dengan a. Membuka
(membuat bila belum ada) dan menulis di awal file.
Menambahkan (append) dan membaca: disimbolkan dengan a+.
Membuka (membuat bila belum ada) dan menulis di awal file.
Mode binary. Disimbolkan dengan b. Digunakan pada filesystem
windows yang membedakan file text dan binary.
Masukkan data
Setelah file berhasil dibuka/dibuat, masukkan data ke dalamnya.
Perintahnya adalah sebagai berikut :
fwrite($fp, $comment);
48
Tutup file
Setelah itu, tutup file.
fclose($fp);
B. Menghapus file
File yang dupload pada pembahasan di atas telah tersimpan secara
permanen di harddisk server di folder upload/endymuhardin/Coffee
Bean.bmp. dengan demikian, kita dapat menghapus file yang disimpan
sementara oleh server. File tersebut kita hapus dengan menggunakan
perintah unlink() atau delete(). Tambahkan baris berikut pada
upload.php.
unlink($pic);
C. Membuat direktori
Pembaca yang teliti akan menyadari bahwa nama folder pada contoh di
atas disesuaikan dengan nama user yang mengupload foto. Karena kita
sebagai programmer tidak dapat meramalkan nama user yang akan
mengupload foto, kita tidak dapat menyediakan folder yang sesuai
dengan kebutuhan tersebut. Dengan demikian, kita harus membuat
folder secara dynamic. Membuat direktori atau folder baru bukan hal
yang sulit, tambahkan baris berikut pada upload.php :
$oldmask = umask(0);
mkdir("upload/$nama", 0777);
umask($oldmask);
direktori akan dibuat dengan nama folder sesuai dengan nama user
yang dimasukkan pada form dengan permission 777. Arti dari permission
777 dan umask tidak dibahas dalam tutorial ini.
D. Navigasi direktori
Selanjutnya, kita akan menampilkan foto yang telah diupload oleh user.
Untuk itu, kita harus membuka folder yang berisi file, melihat daftar file
yang ada, dan menampilkan foto serta isi comment.
Untuk menampilkan foto, kita cukup memberikan link nya saja dalam
tag <img> </img>. Sedangkan untuk menampilkan isi file text, kita
harus membuka dan membaca file txt tersebut.
49
Untuk menampilkan isi direktori, kita terlebih dulu harus membuka
direktori. Tambahkan kode berikut pada upload.php :
$myDir = "upload/$nama";
$dir = opendir($myDir);
Direktori yang telah terbuka akan disimpan dalam variabel $dir.
closedir($dir);
E. Menghapus direktori
Untuk menghapus direktori, gunakan kode berikut :
rmdir($namaDirektori);
direktori yang akan dihapus harus kosong.
F. Membaca file
Untuk menampilkan isi comment yang telah kita tulis ke dalam file, kita
akan menempuh langkah-langkah yang sama dengan menulis file, yaitu:
Ada sedikit modifikasi, kita akan memproses isi comment agar tidak
mengandung tag-tag html. Tambahkan kode berikut pada upload.php :
$f = fopen($fileComment, "r");
$isi = fread($f, filesize($fileComment));
fclose($f);
$output = nl2br(htmlspecialchars($isi));
echo(“Komentar anda : <br>”);
echo($output);
demikianlah isi file ditampilkan.
50
File lengkap upload.php adalah sebagai berikut :
<?
// -- Upload File -- //
$myDir = "upload/$nama";
$dir = opendir($myDir);
closedir($dir);
51
XII. Database Access
Menyimpan data dalam file biasa memiliki banyak keterbatasan. Semakin
besar ukuran file, pencarian data menjadi lebih sulit. File biasa juga tidak
memiliki kemampuan untuk mengolah data, misalnya menghitung total nilai,
rata-rata, dan lain sebagainya.
Karena itu, sekarang kita akan menggunakan media penyimpanan data yang
lebih mutakhir, yaitu database. Operasi data dalam database umumnya
mengikuti pola yang sama, yaitu melalui rangkaian langkah sebagai berikut :
Mengakhiri sambungan
Sebagai contoh, kita akan mengaktifkan fasilitas login pada aplikasi Contact
Manager. User akan diminta untuk memasukkan username dan password.
Bila data yang dimasukkan sama dengan yang ada dalam database, user
akan diteruskan ke halaman welcome. Kalau salah, akan muncul pesan error.
User yang belum terdaftar dapat melakukan registrasi di halaman yang akan
disediakan. Berikut screenshot halaman web yang dibutuhkan :
52
login.htm :
register.htm
53
A. Sekilas SQL Query
SQL (Structured Query Language) adalah bahasa yang khusus
digunakan untuk mengoperasikan database. Untuk memudahkan
pelajaran, SQL query akan dikelompokkan menjadi tiga:
54
CREATE TABLE userTable(
UserId INT (3),
UserName VARCHAR (50),
Password VARCHAR (50),
NamaLengkap VARCHAR (50)
);
Menghapus tabel dilakukan dengan menggunakan query
DROP TABLE <nama tabel>;
Contoh :
DROP TABLE userTable;
55
UPDATE userTable
SET password=’test’
WHERE UserName=’endy’
Kita akan mulai dengan halaman daftar, karena kita belum punya user.
56
Selanjutnya, kita akan melakukan langkah-langkah seperti yang
disebutkan di atas.
57
$query = "
INSERT INTO userTable VALUES (
1,
'endy',
'inipaswod',
'Endy Muhardin'
);
";
$hasil = mysql_query($query);
if($hasil){
echo(mysql_affected_rows()." orang ditambahkan ke dalam
sistem");
}
Script kita harus mengambil data dari HTML Form (register.htm) dan
memasukkannya ke dalam database. Untuk itu, kita akan membuat file
register.php yang berisi kode sebagai berikut :
<?
$dbServer = "localhost";
$dbUser = "endy";
$dbPass = "test";
$dbName = "phpTutorial";
mysql_select_db($dbName);
$query = "
INSERT INTO userTable
(UserName, Password, NamaLengkap)
VALUES (
'$user',
'$pass',
'$namaLengkap'
);
";
$hasil = mysql_query($query);
if($hasil){
echo(mysql_affected_rows()." orang ditambahkan ke dalam
sistem");
}
?>
58
Membuat sambungan database
Memilih database
Membuat query
Menjalankan query
Mengambil hasilnya
Memproses hasil
$hasil = mysql_query($query);
Bila userName yang diinputkan user tidak ada dalam database, query
akan mengembalikan 0 (nol) baris hasil. Bila ada, query akan
menghasilkan array yang berisi data pada masing-masing kolom dalam
database.
$jumlahHasil = mysql_num_rows($hasil);
Apabila hasilnya tidak nol (berarti username telah terdaftar dalam
sistem), kita akan mengambil data password. Untuk itu, kita gunakan
perintah:
$data = mysql_fetch_array($hasil);
data password ada dalam array, diakses dengan cara :
$passDb = $data[“Password”];
59
Dengan demikian, keseluruhan script login.php akan menjadi :
<?
// membuat koneksi
$koneksi = mysql_connect($server, $user, $pass);
// memeriksa koneksi
if(!$koneksi){
echo("Koneksi ke database gagal");
exit;
}
// membuka database
mysql_select_db($db);
// membuat query
$query = "SELECT * FROM userTable WHERE
userName='".$login."'";
// mengeksekusi query
$hasil = mysql_query($query);
// mengakses hasil
$jumlahHasil = mysql_num_rows($hasil);
if($jumlahHasil < 1){
echo("User $login tidak ada dalam database <br>");
}else{
echo("User $login ada dalam database<br>");
$data = mysql_fetch_array($hasil);
$passwordAsli = $data["password"];
if($password == $passwordAsli){
echo("Password untuk user $login benar<br>");
}else{
echo("Password untuk user $login salah<br>");
}
}
?>
60
XIII. String Handling
String handling adalah kumpulan function PHP yang berguna untuk
memanipulasi string. Ada banyak kegunaan yang bisa didapat dengan
menggunakan fungsi-fungsi ini, misalnya:
Dan sebagainya
Pola kode
Harus di awal kata ^
Huruf A-Za-z
Angka 0-9
Huruf atau angka [A-Za-z0-9]
Semua jenis karakter .
Berjumlah satu atau lebih + atau {1,}
Berjumlah nol atau lebih * atau {0,}
Berjumlah tiga sampai sepuluh {3,10}
Diikuti dengan @ @
Tanda titik \.
Harus berada di akhir kalimat $
Pola alamat email di atas dapat dinyatakan dengan satu baris kode
sebagai berikut.
^.+@.+\..+$
61
Atau kita dapat membatasi alamat email yang digunakan oleh user agar
hanya menerima domain com, net, atau edu dengan menggunakan pola
berikut :
^.+@.+\.((com)|(edu)|(net))$
<?
// validasi alamat email
$polaEmail = "^.+@.+\..+$";
if(!eregi($polaEmail, $email)){
echo("Masukkan alamat email yang valid, misal :
[email protected]");
}else{
echo("Alamat email valid");
}
// validasi no telp
$polaTelp = "^\+[0-9]{2}-[0-9]+$";
if(!eregi($polaTelp, $telp)){
echo("Masukkan nomer telepon yang valid, misal : +62-
315054307");
}else{
echo("No telp valid");
}
?>
62
Function yang digunakan untuk memeriksa email pada script di atas
adalah eregi. Menerima input berupa pola yang diinginkan dan string
yang akan diperiksa. Function ini akan menghasilkan nilai true bila
polanya sesuai dan false bila pola yang dicari tidak ada pada string input.
63
XIV. Session
A. No Session
Pada waktu kita browsing menjelajahi website, misalnya e-mail, kita akan
diminta memasukkan username dan password. Prosedur ini hanya dilakukan
sekali pada awal proses. Selanjutnya sistem akan ‘mengingat’ identitas kita,
dan menampilkan informasi yang sesuai. Tanpa adanya session, sistem akan
salah dan menampilkan data rahasia ke orang yang salah.
login.htm
<html>
<head>
<title>Login</title>
</head>
<body>
<h1>Login </h1>
<form method="POST" action="loginNoSession.php">
<table border="1" width="44%">
<tr>
<td width="27%">user : </td>
<td width="73%"><input type="text" name="login"
size="20"></td>
</tr>
<tr>
<td width="27%">password : </td>
<td width="73%"><input type="text" name="pass"
size="20"></td>
</tr>
<tr>
<td width="27%"> </td>
<td width="73%"><input type="submit" value="Submit"
name="B1"><input type="reset" value="Reset" name="B2"></td>
</tr>
</table>
</form>
<p><a href="register.htm">Daftar</a></p>
</body>
</html>
64
loginNoSession.php
<?
// -- cek user dan password -- //
welcomeNoSession.php
<?
echo("Welcome $user <br>");
echo("<a href=\"displayNoSession.php?user=$user\">");
echo("klik di sini untuk mengakses daftar kenalan
anda</a>");
?>
displayNoSession.php
<?
$dbUser = "endy";
$dbPass = "test";
$db = "latihan";
$server = "localhost";
// membuat koneksi
$koneksi = mysql_connect($server, $dbUser, $dbPass);
// memeriksa koneksi
if(!$koneksi){
echo("Koneksi ke database gagal");
exit;
}
// membuka database
mysql_select_db($db);
// menampilkan hasil
echo("<table border=1>");
echo("<tr>");
echo("<td>NamaTeman</td>");
echo("<td>Keterangan</td>");
echo("</tr>");
while($row = mysql_fetch_array($hasil)){
echo("<tr>");
echo("<td>".$row["namaTeman"]."</td>");
echo("<td>".$row["keterangan"]."</td>");
echo("</tr>");
}
echo("</table>");
?>
65
kode ini membutuhkan data contact yang diambil dari tabel UserData
dengan definisi sebagai berikut:
CREATE TABLE userData (
user VARCHAR(50),
namaTeman VARCHAR(50),
keterangan VARCHAR(50)
);
dan sampel data sebagai berikut:
INSERT INTO userData VALUES (
'endy',
'Imanudin',
'Teman ceting'
);
Jalannya aplikasi :
login dengan user = oky dan password = coba
66
klik link untuk mendisplay output, tampilan akan muncul sebagai
berikut:
sekarang, kita akan “memalsu” link yang ada di address bar untuk
menampilkan data user endy.
http://localhost/latihan/displayNoSession.php?user=endy
Kemudian tekan enter.
67
Ooopss… dengan mudah data rahasia akan muncul.
Cara mencegah hal ini terjadi adalah dengan meminta user untuk
memasukkan login dan password setiap kali ia berpindah halaman.
Tetapi tentu saja cara ini menjengkelkan bagi user. Selain itu,
mempassing variabel login dan password di setiap halaman sangat tidak
aman dan rentan penyadapan.
B. Konsep session
Session bekerja seperti tempat penitipan barang di supermarket. Kita
datang, menitipkan barang bawaan, dan petugas akan memberikan
tanda pengenal.
Pada saat kita akan mengambil barang, kita memberikan tanda pada
petugas, dan petugas akan dapat mengambil barang yang dititipkan
tanpa tertukar dengan barang orang lain.
o Cookie
o Hidden Form
o URL Embedding
68
C. Implementasi : Cookie
Cookie adalah informasi yang disimpan pada browser user. Script
menjalankan function setcookie yang akan menulis data di harddisk user.
setcookie(“sessionId”, “1234”);
Setelah itu, variabel $sessionId akan tersedia setiap kali browser
user mengakses sistem.
Cookie akan hilang dari browser user setelah melewati masa kadaluarsa
yang ditentukan atau dihapus melalui perintah:
setcookie(“sessionId”);
Pendekatan ini banyak mengundang kontroversi. Karena cookie dapat
menghilangkan privacy user dan berpotensi mengandung virus. Oleh
karena itu, user dapat menonaktifkan cookie melalui setting di browser.
login.htm
loginSessionCookie.php
<?
// -- cek user dan password -- //
if($login == "endy" && $pass =="test"){
setcookie("user", $login);
header("Location: welcomeSessionCookie.php");
}elseif($login == "oky" && $pass =="coba"){
setcookie("user", $login);
header("Location: welcomeSessionCookie.php");
}else{
echo("User dan password salah");
}
?>
welcomeSessionCookie.php
69
<?
if(!$user){
echo("Illegal Access");
exit;
}
echo("Welcome $user <br>");
echo("<a href=\"displaySessionCookie.php\">");
echo("klik di sini untuk mengakses daftar kenalan
anda</a>");
?>
tambahkan baris berikut pada bagian atas displayNoSession.php dan
save as displaySessionCookie.php
if(!$user){
echo("Illegal Access");
exit;
}
http://localhost/latihan/displaySessionCookie.php
Kemudian tekan enter.
70
Klik tab Security dan klik tombol Custom Level
71
coba lagi mengakses halaman contact. Anda akan mendapat Illegal
Access.
Satu-satunya kerugian cara ini adalah, link URL menjadi tidak bisa
di’bookmark’. Selain itu, link menjadi tidak indah dipandang mata. Tetapi
secara teknis, metode inilah yang paling efektif dan reliable.
http://localhost/latihan/displaySessionApi.php
untuk membuka halaman pribadi.
72
loginSessionApi.php:
<?
// -- cek user dan password -- //
if($login == "endy" && $pass =="test"){
session_start();
$user = $login;
session_register("user");
header("Location: welcomeSessionApi.php");
}elseif($login == "oky" && $pass =="coba"){
session_start();
$user = $login;
session_register("user");
header("Location: welcomeSessionApi.php");
}else{
echo("User dan password salah");
}
?>
welcomeSessionApi.php
<?
session_start();
if(!session_is_registered("user")){
echo("Illegal Access");
exit;
}
echo("Welcome $user <br>");
echo("<a href=\"displaySessionApi.php\">");
echo("klik di sini untuk mengakses daftar kenalan
anda</a>");
?>
73
displaySessionApi.php
<?
session_start();
if(!session_is_registered("user")){
echo("Illegal Access");
exit;
}
$dbUser = "endy";
$dbPass = "test";
$db = "latihan";
$server = "localhost";
// membuat koneksi
$koneksi = mysql_connect($server, $dbUser, $dbPass);
// memeriksa koneksi
if(!$koneksi){
echo("Koneksi ke database gagal");
exit;
}
// membuka database
mysql_select_db($db);
?>
74