UPLOAD DOWNLOAD FILE DENGAN BATASAN HAK AKSES.
create tabelnya :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
CREATE TABLE user ( username varchar(20), password varchar(32), PRIMARY KEY (username) ) CREATE TABLE upload ( id int(11) auto_increment, name varchar(30), type varchar(30), size int(11), content mediumblob, username varchar(20), PRIMARY KEY (id) ) |
1 2 |
INSERT INTO `user` VALUES ('a', 'pass1'); INSERT INTO `user` VALUES ('b', 'pass2'); |
index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<html> <head><title>Login User</title></head> <body> <h1>Login User</h1> <form method="post" action="login.php"> <table> <tr> <td>Username</td> <td><input type="text" name="user" /></td> </tr> <tr> <td>Password</td> <td><input type="password" name="pass" /></td> </tr> <tr> <td></td> <td><input type="submit" name="submit" value="Submit" /></td> </tr> </table> </form> </body> <html> |
langkah kedua (2) membuat script login
login.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<?php mysql_connect('localhost', 'root', ''); mysql_select_db('upload_download_user'); $username = $_POST['user']; $password = $_POST['pass']; // mencari data user yang login untuk mendapat password dari database $query = "SELECT * FROM `user` WHERE username = '$username'"; $result = mysql_query($query); $data = mysql_fetch_array($result); // mencocokan password user dari database dengan password dari form if ($password == $data['password']) { // jika kedua password sama, maka login akan berhasil // simpan username kedalam session session_start(); $_SESSION['username'] = $username; echo "<h1>Login Sukses</h1>"; echo "<h2>Anda login sebagai : ".$username."</h2>"; // tampilkan menu user echo "<p>[ <a href='formupload.php'>Upload</a> ] [ <a href='list.php'>Daftar File</a> ] [ <a href='logout.php'>Logout</a> ] </p>"; } else { // jika kedua passwod tidak cocok maka login gagal echo "<h1>Maaf Login Gagal</h1>"; } ?> |
Nah untuk mencegah penyusup masuk, buat script “cek”
cek.php
1 2 3 4 5 6 7 8 9 |
<?php if (!isset($_SESSION['username'])) { session_start(); } else { echo "<h1>Maaf Anda belum Login</h1>"; exit; } ?> |
Script selanjutnya membuat formupload.php
formupload.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php include "cek.php"; // membaca nama user yang tersimpan dalam session $username = $_SESSION['username']; echo "<h1>Anda Login sebagai : ".$username."</h1>"; echo "<p>[ <a href='formupload.php'>Upload</a> ] [ <a href='list.php'>Daftar File</a> ] [ <a href='logout.php'>Logout</a> ]</p>"; echo "<p>Silakan Upload File</p>"; ?> <html> <head><title>Form Upload</title></head> <body> <!-- form untuk upload --> <form method="post" enctype="multipart/form-data" action="upload.php"> <table> <tr> <td> <input type="hidden" name="MAX_FILE_SIZE" value="2000000" /> <input type="file" name="userfile" /> </td> <td><input type="submit" name="upload" value="Upload" /></td> </tr> </table> </form> </body> </html> |
upload.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
<?php // untuk keamanan cek.php di include kan :) include "cek.php"; // membaca nama file $fileName = $_FILES['userfile']['name']; // membaca nama file temporary $tmpName = $_FILES['userfile']['tmp_name']; // membaca size file $fileSize = $_FILES['userfile']['size']; // membaca tipe file $fileType = $_FILES['userfile']['type']; // membaca username yang disimpan dalam session // username ini sekaligus menyatakan informasi pemilik file $username = $_SESSION['username']; // langkah membaca isi file yang diupload $fp = fopen($tmpName, 'r'); $content = fread($fp, filesize($tmpName)); $content = addslashes($content); fclose($fp); // koneksi ke MySQL mysql_connect('localhost', 'root', ''); mysql_select_db('upload_download_user'); // query $query = "INSERT INTO `upload` (name, size, type, content, username) VALUES ('$fileName', '$fileSize', '$fileType', '$content', '$username')"; mysql_query($query); echo "<h1>Anda Login sebagai :".$username."</h1>"; echo "<p>[ <a href='formupload.php'>Upload</a> ] [ <a href='list.php'>Daftar File</a> ] [ <a href='logout.php'>Logout</a> ]</p>"; // konfirmasi echo "<p>File ".$fileName." telah diupload oleh ".$username."</p>"; ?> |
list.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php include "cek.php"; // koneksi ke database mysql_connect('localhost', 'root', ''); mysql_select_db('upload_download_user'); // membaca username yang disimpan dalam session $username = $_SESSION['username']; echo "<h1>Anda Login sebagai ".$username."</h1>"; echo "<p>[ <a href='formupload.php'>Upload File</a> ] [ <a href='list.php'>Daftar File</a> ] [ <a href='logout.php'>Logout</a> ] </p>"; echo "<h2>Daftar File Anda</h2>"; // query untuk mencari file yang telah diupload milik si user yang sedang login $query = "SELECT * FROM `upload` WHERE username = '$username'"; $result = mysql_query($query); // menampilkan nama-nama file yang telah diupload oleh si user echo "<ul>"; while ($data = mysql_fetch_array($result)) { echo "<li><a href='download.php?id=".$data['id']."'>".$data['name']."</a> (<a href='delete.php?id=".$data['id']."'>x</a>)</li>"; } echo "</ul>"; ?> |
download.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<?php // sisipkan cek.php untuk keamanan include "cek.php"; // koneksi ke database mysql_connect('localhost', 'root', ''); mysql_select_db('upload_download_user'); // membaca nilai ID file yg berasal dari link download.php?id=xx $id = $_GET['id']; // membaca username yang sedang login melalui session $username = $_SESSION['username']; // query untuk mencari data file yang akan didownload dalam database $query = "SELECT * FROM `upload` WHERE id = '$id'"; $result = mysql_query($query); $data = mysql_fetch_array($result); // mencocokan username pemilik file dengan username login if ($username == $data['username']) { // bila cocok datanya header("Content-Disposition: attachment; filename=".$data['name']); header("Content-length: ".$data['size']); header("Content-type: ".$data['type']); echo $data['content']; } else { // bila tidak sama maka file tidak boleh didownload echo "<h1>Anda tidak berhak mengakses file</h1>"; } ?> |
delete.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
<?php session_start(); include "cek.php"; // koneksi ke mysql mysql_connect('localhost','root',''); mysql_select_db('upload_download_user'); // membaca id file yang akan dihapus $id = $_GET['id']; // membaca username yang sedang login $username = $_SESSION['username']; // mencari username pemilik file yang akan dihapus $query = "SELECT username FROM upload WHERE id = $id"; $hasil = mysql_query($query); $data = mysql_fetch_array($hasil); // mencocokkan username pemilik file dengan username yang sedang login if ($username == $data['username']) { // jika cocok maka hapus file $query = "DELETE FROM upload WHERE id = $id"; mysql_query($query); echo "<h1>Anda login sebagai : ".$username."</h1>"; echo "<p>[ <a href='formupload.php'>Upload</a> ] [ <a href='list.php'>Daftar File</a> ] [ <a href='logout.php'>Logout</a> ]</p>"; echo "<p>File telah dihapus</p>"; } else { // jika tidak cocok maka tolak echo "<h1>Maaf Anda tidak berhak menghapus file ini</h1>"; } ?> |
logout.php
1 2 3 4 5 6 7 |
<?php session_start(); // menghapus session session_destroy(); echo "<h1>Anda sudah Logout</h1>"; ?> |