3.PHP E-MAIL PHP Email - FORM SEND E-MAIL PHP UPLOAD _ FORM UPLOAD PROSES SIMPAN FILE YG DIUPLOAD
Pemrosesan Upload File Lebih Lanjut
PHP E-Mail ►Salah satu cara untuk membantu seorang pengunjung suatu website agar dapat membantu mempublikasikan/menyebarkan informasi tentang keberadaan suatu web adalah dengan menyediakan fasilitas untuk membantu mengirimkan email kepada teman yang dikenalnya supaya dapat mengetahui website yang baru saja dikunjunginya cukup bagus untuk dikunjungi, sayang kalau belum sempat melihat.
►Email dengan interface web dan pengiriman otomatis tentang informasi suatu artikel atau situs web dapat dibuat dengan mudah. PHP menyediakan fasilitas ini. ►Untuk dapat melakukan pengiriman email dengan menggunakan PHP maka harus dipastikan terlebih dahulu bahwa anda mempunyai server yang berfungsi untuk mengirimkan email disebut dengan server SMTP (Simple Mail Transfer Protocol).
►To send email in a PHP script use the mail function. Mail(string to, string subject, string message,[,string additional_headers [,string additional_parameters]]) KETERANGAN string to, = Kepada : Alamat yang dituju. string subject, : Subject/Judul dari pesan yang akan ditampilkan/dimunculkan dalam E-mail penerima string message, = Isi pesan, bila diclick subject/judul pesan, oleh penerima akan mincul ini pesan [,string additional_headers [,string additional_parameters]] : Bersifat optional, bila ada data lain, bias berupa file, dll ATAU, Bisa ditulis : Mail(“kepada”,”subejk”,”isipesan”,”datalain”) This sends an email to the email address in to, with subject subject and message message. OR You can also set additional mail headers
and parameters to mail : $Result = mail([email protected], “Web mail”, $_REQUEST[“message”]); OR : Can also Writted with attachments
$result = mail(“[email protected]”,“Web mail”, $_REQUEST[“message”],$headers); Message is retrieved from html form
Additional email headers like the following may be specified. [,string additional_headers [,string additional_parameters]] =”DataLain” : Bersifat optional, bila ada data lain, bias berupa file, dll $result = mail(“[email protected]”,“Web mail”, $_REQUEST[“message”],DataLain); Examp :
cc (“carbon copy”) bcc (“blind carbon copy”)
These are set with the additional_headers parameter.
Kirim Email dengan SMPT *nix Pada lingkungan *nix maka server SMTP menggunakan software sendmail. Software yang akan digunakan ini telah didefinisikan pada php
Mail(string to, string subject, string message,[,string additional_headers [,string additional_parameters]]) OR : Can also Writted with attachments Mail(“kepada”,”subejk”,”isipesan”,”datalain”) Contoh : ini_set(“SMTP”, “172.16.1.1”); ini_set(“sendmail_form”, “$dari”); mail(“$kepada”,”$subjek”,”$pesan”); Contoh ini menunjukkan kemampuan dari PHP untuk menggunakan suatu server SMTP yang didefinisikan untuk mengirimkan email dari komputer server web kita dengan menggunakan PHP.
Jika anda menggunakan *nix sebagai sistem operasi dan server webnya maka init_set() tidak harus dituliskan, karena defaultnya sudah mengacu kepada dirinya sendiri, dengan asumsi bahwa dirinya (server) sudah mempunyai SMTP server berupa sendmail. Contoh ini dapat dikembangkan lebih lanjut dengan digabungkan dengan form untuk isian email dari browser web. Kirim Email dengan SMTP Windows NT/2000 Khusus untuk digunakan pada server web MS IIS pada Windows NT/2000 yang telah dipasang server SMTP-nya. Ini menggunakan cara yang ‘tricky – akal-akalan’, karena SMTP pada Windows NT atau Windows 2000 server tidak dapat diakses langsung seperti halnya SMTP pada lingkungan *nix. Setiap email yg akan dikirim oleh Windows NT Server atau W2000 Server akan disimpan dg nama message.eml di direktori c:\inetput\mailroot\pickup Directoyr ini adalah direktori default hasil instalasi. Definisi direktori ini mungkin berbeda dg definisi yg ada pada server SMTP anda, tetapi ini adalah direktori default hasil instalasi, apabila tidak ada perubahan yang dilakukan oleh administrasi sistem anda. Ini dapat dikembangkan dengan dikombinasikan form isian agar tujuan dan isi komentarnya juga dapat berubah-ubah seusai dengan kebutuhan, Contoh : Perhatikan script PHP dibawah ini yg bernama : mail_01.php hanya menun jukan kemampuan mengirimkan email dari PHP dengan menggunakan server SMTP pada Windows NT4 Server dan Windows 2000 Server. Nama script : mail01.php Demo Send Email - #2
Demo Send Email
Menggunakan SMTP pada Windows NT4/2000 Server Langsung menulis pada direktori pengiriman filenya
fwrite( $file, “Subject: Email testing ...\r\n”); fwrite( $file, “\r\n”); fwrite( $file, “Here is the message\r\n”); fwrite( $file, “\r\n”); fclose( $file ); ?>
Dan lihat hasilnya dibawah ini, sbb :
Gbr. Tampilan output dari Mail01.php Ket : Pada mail_01.php diatas perintah ganti baris diberikan dengan karakter escape \r dan \n, hal ini disebabkan karena tanda ganti baris pada Windows atau DOS adalah dengan CR (carriage return – chr(13)) dan LF (Line Feed – chr(10)), sedangkan pada *nix standarnya hanya menggunakan \n saja. Jika menggunakan \n saja pada saat menuliskan ke dalam file message.eml selalu dianggap sebagai badmail.
FORM SEND E-MAIL CONTOH : Kirim Email dengan Form Web Menggabungkan form isian dengan dokumen dan PHP untuk mengirimkan masukan dari form isian dengan menggunakan mail(). Nama script : form_email.html Demo Form untuk Send Email
Demo Form untuk Send Email
Dan hasilnya sbb :
Nama script : send_email.php
Demo Send Email
Demo Send Email
Kepada : Subjek : Pesan : Dari : ini_set(“SMTP”, “172.16.1.1”); ini_set(“sendmail_form”, “$dari”); mail(“$kepada”,”$subjek”,”$pesan”); ?> Telah dilakukan!
Dan Tampilan send_email.php
PHP UPLOAD Updload adalah proses menyalin file dari komputer lokal (tempat kita kerja) ke dalam server, umumnya ke dalam server file. Server file umumnya menggunakan software server FTP. Trend masa kini adalah bagaimana memanjakan pemakai untuk dapat dengan mudah melakukan proses upload dari komputer kerjanya ke dalam server file. Kemudahan pemakaian komputer mengalami revolusi dengan adanya web, semua aplikasi dan fungsi telah berusaha dipindahkan pada platform web ini. Upload file merupakan salah satu fasilitas yang digunakan untuk memudahkan pemakaian melakukan pengiriman file dari komputer lokal ke dalam server, tanpa harus pemakai mengetahui bagaimana seharusnya dilakukan secara manual. Kini cukup, tunjuk dan klik, cari file dari drive dan direktori lokal, kemudian kirim ke dalam server, cukup dengan perintah klik tombol kirim (submit) yang
disediakan.
Fasilitas upload dengan menggunakan browser juga dimaksudkan untuk memudahkan proses administrasi dan meningkatkan keamanan sistem. Pengelola server tidak harus membuat user id dan password untuk setiap pemakai yang akan diberi hak untuk dapat mengakses dan menaruh file ke dalam server file secara langsung dengan menggunakan program FTP atau yang sejenisnya. Elemen-elemen yang dibutuhkan untuk dapat melakukan upload file via browser maka harus disiapkan : Sebuah form untuk menyajikan tampilan agar pemakai memilih file yang akan diupload File yang akan diupload (dan tentu saja browser yang mendukung fungsi upload) Tempat dalam server yang digunakan untuk menyimpan file yang akan diupload Script untuk menempatkan file ke tempat yang telah ditentukan di dalam server PHP mampu menerima file yang diupload/dikirim dari browser yang komplian (merujuk standarnya) kepada RFC-1867, seperti Internet Explorer 3.0 yang dispatch atau yang lebih baru versinya dan Netscape Navigator 3.0 atau yang lebih baru. Feature ini memungkinkan orang untuk mengupload file teks atau biner. Dengan menggunakan fungsi otentikasi dan manipulasi file PHP, kita dapat mengatur siapa saja yang diijinkan untuk melakukan upload dan manipulasi apa saja yang dapat dilakukan oleh setiap orang yang diijinkan. Catatan:
PHP juga mendukung method PUT untuk upload file yang dilakukan oleh Netscape Computer (editor HTML Netscape) dan software Amaya dari W3C.
FORM UPLOAD Pada tag form harus ada atribut “enctype=multipart\form-data” yang digunakan untuk memberitahu browser dan server bahwa yang dikirimkan bukan hanya data nama file yang dientrikan pada tampilan browser tetapi juga data berupa isi dari nama file yang diacu pada isian form. CONTOH : Lihat script PHP dibawah ini yaitu : script form untuk upload, dgn nama script adalah form_upload.php, harus ada tipe input adalah “file”, dengan adanya form input ini maka tombol browser akan otomatis muncul. Tombol browse ini disediakan untuk memudahkan pemakai melakukan browse/interface kepada window explorer untuk memilih file yang akan diupload. Nama script formt_upload.php Form untuk Input Nama File
Input Nama File untuk Upload
Klik tombol Browse untuk memilih!
Ket : Pada script PHP diatas, Sebuah variabel dengan nama MAX_FILE_SIZE dengan tipe hidden harus disediakan, isi atribut Value pada variabel MX_FILE_SIZE digunakan untuk mengendalikan besar file maksimum yg akan diupload ke dlm server. MAX_FILE_SIZE harus diletakkan sebelum elemen input dengan tupe=”file”. Angka pada Value menunjukkan jumlah byte maksimum.
Dan hasilnya sbb :
Tampilan form_upload.php
PROSES SIMPAN FILE YG DIUPLOAD Data yang dikirim oleh form upload berupa data nama file dan data file yang namanya disimpan dalam text dengan nama file1. Data file akan disimpan dalam direktori server web, kemudian dengan perintah copy PHP memindahkan ke dalam file yang didefinisikan.
Contoh: Setiap file yang diupload akan dinamai (rename) dengan nama hasil upload.txt dan disimpan dalam direktori “files” yang ada dibawah direktori script PHP kita berada. Nama script : do_upload.php
Simpan file yang diupload!
if ($file1!=”none”){ copy(“$file1”,”hasilupload.txt”) or die (“No files!”) ; } else { die (“Tidak ada file yang akan diupload!”) ; } ?>
Dan hasilnya : Tampilan : do_upload.php
Ket : Sebelumnya pastikan bahwa ada file yang akan diupload seperti contoh berikut. Isi dari nama file dapat diganti dengan yang anda inginkan :
Sebelum mencoba, maka pastikan terlebih dahulu bahwa direktori yang akan digunakan untuk menyimpan file sudah didefinisikan bahwa direktori tersebut ditulis oleh server web dengan user anonymous. File yang diupload selalu disimpan dengan nama hasil upload.txt dalam direktori files di bawah direktori dari script PHP kita berada.
Pemrosesan Upload File Lebih Lanjut Jika kita melakukan pemrosesan pada file yang diupload dengan menggunakan PHP, maka akan ada bbrp variabel yg dibuat/didefinisikan sendiri oleh PHP, jika proses upload berhasil, yaitu : $varfile nama file temporer dari file yang diupload dan telah disimpan dalam server $varfile_name nama file asli (original) atau path dari file pada sistem pengirim $varfile_size ukuran file yang diupload dalam byte $varfile_type tipe mime file jika diberikan oleh browser informasinya. Sebagai contoh adalah “image/gif”. $varfile adlh nama dari input dg type=”file” pd form untuk upload file. Variabel-variabel tersebut akan tersedia apabila option register_globals bernilai on, option ini terletak pada file php3. Jika option track_vars bernilai on, maka variabel-variabel tersebut juga akan tersedia pada array global $HTTP_POST_VARS. Pada PHP4 informasi untuk pemrosesan lebih lanjut file yang diupload sangat berbeda, ada array yang baru yaitu $HTTP_POST_FILES yang disediakan untuk informasi file yang diupload. Tetapi hanya tersedia jika track_vars bernilai on. Isi dari $HTTP_POST_FILES adalah sebagai berikut (asumsi bahwa file yang diupload informasi awalnya pada browser disimpan pada „varfile‟): $HTTP_POST_FILES[„varfile‟][„name‟] Nama file asal pada mesin klien $HTTP_POST_FILES[„varfile‟][„size‟] Ukuran file yang diupload dalam byte $HTTP_POST_FILES[„varfile‟][„tmp_name‟] Nama file temporer dari file yang diupload yg disimpan dlm server Ket : File yang diupload akan disimpan sementara pada direktori temporer dalam server. File akan diberi nama temporer secara acak oleh server. Server mempunyai sebuah direktori temporer untuk menyimpan file yang diupload.
Nama direktori ini disimpan dalam variabel direktif upload_tmp_dir dalam php. Default direktori server dapat diubah dengan menggunakan variabel environment TMPDTR tempat PHP dijalankan. Fungsi putenv() PHP tidak dapat digunakan untuk mengubah. Variabel environment ini dapat juga digunakan untuk meyakinkan bahwa operasi lain dapat digunakan pada file yang diupload dengan baik. Contoh : Script upload yang pertama memperlihatkan kemampuan untuk upload, tetapi masih sederhana sekali karena nama file hasil upload tidak menggunakan nama file aslinya, tetapi selalu disimpan dengan nama hasilupload.txt dlm direktori files dibawah direktori script PHP kita berada. Untuk dapat menyimpan file dengan nama aslinya maka harus meng gunakan environment variabel yang menyimpan informasi nama aslinya. Nama script : form_upload2.php Form untuk Input Nama File
Input Nama File untuk Upload – versi 2
Klik tombol Browse untuk memilih!
Script ini menggunakan PHP4 untuk melakukan penyimpanan file dengan nama sesuai dg aslinya, dg menggunakan variabel $HTTP_POST_FILES[„file‟][„name‟]. Nama script : do_upload2.php
Simpan file yang diupload!
$namafile=$HTTP_POST_FILES[„file1‟][„name‟]; ?>
Nama File :
if ($file1!=”none”){ copy(“$file1”,”files/$namfile”) or die (“No file!”) ; } else { die (“Tidak ada file yang akan diupload”) ; } ?>