Tampilkan postingan dengan label PHP SQL. Tampilkan semua postingan
Tampilkan postingan dengan label PHP SQL. Tampilkan semua postingan

Selasa, 07 Agustus 2012

Membuat Upload dan Download Menggunakan PHP & Mysql

Sebenarnya dalam upload file sendiri terdapat dua jenis yaitu menyimpan file ke direktori kita dan yang kedua adalah menyimpan file ke database MySQL. Kali ini saya akan menerangkan bagaimana caranya upload dan download file dan menyimpannya ke direktori kita.

Langkah pertama kita akan membuat table yang berfungsi untuk menyimpan data dari file yang akan di upload. Kenapa data dari file tersebut harus disimpan? tujuannya adalah agar memudahkan dalam melakukan download.

sebelumya buatlah database " updown "


lalu
Buatlah tabel dengan nama upload

CREATE TABLE `upload` (
`fileid` int(11) NOT NULL auto_increment,
`filename` varchar(30),
`type` varchar(40),
`size` int(11),
`path` varchar(20),
PRIMARY KEY (`fileid`)
);

Selanjutnya kita akan membuat file database.php untuk koneksi ke database MySQL

<?php
$db_hostname=”localhost”;
$db_username=”root”; // username anda
$db_password=””; // password anda
$db_name=”updown”; // nama database anda (sesuai database yang kita buat sebelum tabel)

function connect_db() {
global $db_hostname, $db_username, $db_password, $db_name;
$conn = mysql_connect($db_hostname, $db_username, $db_password) or die (`Sorry cannot connect to the database because: ` . mysql_error());;
mysql_select_db($db_name);
}
?>

Kemudian kita buat form untuk upload file. Simpan file tersebut dengan nama form_upload.php

<html>
<head><title>Upload</title></head>
<body>
<font align=center><h2>Form Upload</h2></font>
<form action=”upload.php” method=”post” enctype=”multipart/form-data” name=”uploadform”>
<table align=center>
<tr><td>File</td><td><input name=”userfile” type=”file”></td></tr>
<tr><td></td><td><input name=”tombol” type=”submit” value=”Upload”></td></tr>
</table>
</form>
</body>
</html>

Selanjutnya buatlah file upload.php untuk menyimpan data file ke tabel upload. Di dalam file upload.php terdapat variable $uploadDir, variable ini berisi path / folder yang berfungsi untuk menyimpan file yang telah di upload. Untuk itu ubah hak akses folder tersebut agar bisa di isi file.

<?php
require_once(”database.php”); //memanggil file database.php

connect_db(); // memanggil fungsi connect_db yang ada di file database.php
if($_POST[”tombol”])
{
$fileName = $_FILES[`userfile`][`name`];
$tmpName = $_FILES[`userfile`][`tmp_name`];
$fileSize = $_FILES[`userfile`][`size`];
$fileType = $_FILES[`userfile`][`type`];

$uploadDir = `C:/apache2triad/htdocs/upload/`;    (berfungsi untuk menyimpan file yang telah di upload)
$filePath = $uploadDir . $fileName;

$result = move_uploaded_file($tmpName, $filePath);
if (!$result) {
$error_message=”Error uploading file”;
include(”admin_error.php”);
}

if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
$filePath = addslashes($filePath);
}

$query = ”INSERT INTO upload(filename,type,size,path) VALUES (`$fileName`, `$fileType`, `$fileSize`, `$fileName`)”;
$result=mysql_query($query);
if($result){
echo ”upload file berhasil dilakukan <br> <a href=`daftar_file.php`>Daftar File</a>”;
}else{
echo ”<br>File can`t uploaded<br>”;
}
}
?>

Selanjutnya kita akan membuat file dengan nama daftar_file.php. File ini digunakan untuk menampilkan data yang di inputkan oleh user.

<html>
<head><title>Daftar File</title></head>
<body>
<?php
require_once(”database.php”);
connect_db();

$query=mysql_query(”SELECT * FROM upload”);
$row=mysql_fetch_row($query);
if(!$row)
echo ”tabel upload kosong”;
else
{
echo ”<h2>Daftar File</h2>”;
echo ”<table border=1>”;
echo ”<tr>”;
echo ”<td>Nama File</td>”;
echo ”<td>Type</td>”;
echo ”<td>Size</td>”;
echo ”<td>Download</td>”;
echo ”</tr>”;

do{
list($fileid,$filename,$type,$size,$path)=$row;
echo ”<tr>”;
echo ”<td>$filename</td>”;
echo ”<td>$type</td>”;
echo ”<td>$size</td>”;
echo ”<td><a href=download.php?fileid=$fileid>Download</a></td>”;
echo ”</tr>”;
}while($row=mysql_fetch_row($query));
}

?>
</body>
</html>

Selanjutnya kita akan membuat file download.php untuk melakukan download.

<?php
require_once("database.php");
connect_db();
if(isset($_GET[fileid]))
{
$id = $_GET[fileid];
$query = "SELECT * FROM upload WHERE fileid = $fileid";
$result = mysql_query($query) or die(Error, query failed);
list($fileid,$filename,$type,$size,$path)=mysql_fetch_array($result);

header("Content-Disposition: attachment; filename=$filename");
header("Content-length: $size");
header("Content-type: $type");

readfile("upload/$path");
}
?>
Selanjutkan kita akan membuat file delete.php untuk menghapus file
<?php
require_once("database.php");
connect_db();
if(isset($_GET[fileid]))
{
$id = $_GET[fileid];
$query = "SELECT * FROM upload WHERE fileid = $fileid";
$result = mysql_query($query) or die(Error, query failed);
list($fileid,$filename,$type,$size,$path)=mysql_fetch_array($result);
unlink("upload/$path");
mysql_query("delete from upload where fileid=$fileid");
header("location:./daftar_file.php");
}
?>



sekian terima kasih semoga membantu anda.

Selasa, 24 Juli 2012

Script PHP menyimpan file pdf di Database untuk kemudian bisa di download.



Pada ulasan kali ini saya akan memberikan tutorial lengkap bagaimana memanajemen suatu file yang banyak agar anda tidak perlu memasukkan secara manual di hosting anda sehingga sedikit menghemat waktu, menghemat ruang penyimpanan dan yang pasti praktis.
Langkah – langkahnya adalah sebagai berikut :


1. Misalkan buat sebuah file dengan nama “index.php” kemudian tuliskan ini :

<?
echo “<table>
<form method=’post’ action=’$PHP_SELF?action=file_manager’ enctype=’multipart/form-data’>
<input type=’hidden’ name=’MAX_FILE_SIZE’
value=’1000000000′>
<tr><td>File Materi</td>
<td><input type=’file’ name=’file_data’></td></tr>
<tr><td>Nama File</td>
<td><input type=’text’ name=’nama_tampil’></td></tr>
<tr><td>Info File</td>
<td><input type=’text’ name=’info’></td></tr>
<tr><td></td>
<td><input type=’submit’ name=’ok’ value=’Simpan’>
</td></tr>
</form> </table>”;
if (isset($_POST["ok"]) && (!empty($_FILES["file_data"])) && (!empty($_POST["nama_tampil"])) )
{
include “koneksi.php”;
$nama_file = $_FILES['file_data']['name'];
$ukuran = $_FILES['file_data']['size'];
$tipe_file = $_FILES['file_data']['type'];
$file_data = $_FILES['file_data']['tmp_name'];
$data = addslashes(fread(fopen($file_data, “r”), filesize($file_data)));
$sql = “INSERT INTO materi
VALUES (”,’$data’,
‘$nama_file’, ‘$ukuran’, ‘$tipe_file’,'$nama_tampil’,'$info’)”;
$result = mysql_query($sql);
if (!$result )
{
echo “Data Gagal Disimpan Anda Sudah Memasukkan File Yang Sama”;
}
else
{
echo “Data Berhasil Disimpan”;
}
}
else if ( (isset($_POST["ok"]) && (empty($_POST["nama_tampil"])) ))
{
header(“location:input_materisalah.php”);
}
?>

2. Buat satu table bernama “materi” di database MySQL

CREATE TABLE `materi` (
`id` int(10) NOT NULL auto_increment,
`materi` longblob,
`namafile` varchar(50) default NULL,
`ukuran` varchar(50) default NULL,
`tipefile` varchar(50) default NULL,
`nama_tampil` varchar(50) NOT NULL default ”,
`info` varchar(200) NOT NULL default ”,
PRIMARY KEY (`id`)
)

3. Lalu buat halaman misalkan bernama “download_materi.php”

<?
include “koneksi.php”;
$tampil=mysql_query(“select * from materi order by nama_tampil asc”);
while($data=mysql_fetch_row($tampil))
{
echo”<a href=’materi.php?id=$data[0]&&materi=$data[5]‘>$data[5]</a><br>”;
}
?>

4. Langkah terakhir buatlah file bernama “materi.php”

<?php
/* materi.php */
include “koneksi.php”;
$id = $_GET["id"];
$sql = “SELECT * FROM materi WHERE id=’$id’”;
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
if ($row[materi])
{
header(“Content-Type: $row[tipefile]“);
header(“Content-Disposition: attachment; filename=$materi.pdf “);
header(“Pragma: no-cache”);
header(“Expires: 0″);
print “$row[materi]“;
}
}
?>

Jika sudah semuanya silahkan mencoba dan juga berkreatifitaslah sesukamu … Terima kasih

Membuat Polling Dengan PHP



Disini saya akan menjelaskan bagaimana membuat poling yang bisa menampilkan chart atau dengan gambar. Ikuti langkah-langkah saya ini saya yakin anda pasti bisa.

1. Buat satu file dengan nama misalkan “index.php” kemudian ketikkan ini :
<?
include “koneksi.php”;
$tampil=mysql_query(“select * from voting”);
$data=mysql_fetch_row($tampil);
$totalvoting=($data[1]+$data[2]+$data[3]+$data[4]);
$hasil1=(($data[1]/$totalvoting)*100);
$hasil2=(($data[2]/$totalvoting)*100);
$hasil3=(($data[3]/$totalvoting)*100);
$hasil4=(($data[4]/$totalvoting)*100);
echo”
<form method=’post’ action=’voting.php’>
<img src=’images/poling.jpg’ width=’160′><br>Bagaimana Pendapat anda tentang website ini..??<br>
<input name=’vote’ value=’1′ type=’radio’> Bagus Sekali<br>
<input name=’vote’ value=’2′ type=’radio’> Bagus <br>
<input name=’vote’ value=’3′ type=’radio’> Cukup <br>
<input name=’vote’ value=’4′ type=’radio’> Jelek <br><br>
<input type=’hidden’ value=’$data[1]‘ name=’bagusskl’>
<input type=’hidden’ value=’$data[2]‘ name=’bagus’>
<input type=’hidden’ value=’$data[3]‘ name=’cukup’>
<input type=’hidden’ value=’$data[4]‘ name=’jelek’>
<input type=’submit’ value=’Vote’> <br>”;
$width1=$hasil1+20;
$width2=$hasil2+20;
$width3=$hasil3+20;
$width4=$hasil4+20;
echo”<br>HASIL POLLING<hr>”;
echo”
Bagus Sekali : ($data[1] Orang) <br> <img src=’images/voting1.jpg’ width=’$width1′ height=’10′> <br>
Bagus : ($data[2] Orang) <br> <img src=’images/voting2.jpg’ width=’$width2′ height=’10′> <br>
Biasa : ($data[3] Orang) <br> <img src=’images/voting3.jpg’ width=’$width3′ height=’10′> <br>
Jelek : ($data[4] Orang) <br> <img src=’images/voting4.jpg’ width=’$width4′ height=’10′> <br>
</form>
“;
?>

2. Buat 1 tabel pada database MySQL dengan nama voting

CREATE TABLE `voting` (
`no` char(2) NOT NULL default ”,
`bagusskl` int(10) NOT NULL default ’0′,
`bagus` int(10) NOT NULL default ’0′,
`cukup` int(10) NOT NULL default ’0′,
`jelek` int(10) NOT NULL default ’0′
)

3. Kemudian Buat 1 halaman lagi bernama “voting.php” :

<?
if($vote==’1′)
{
$bagusskl2=($bagusskl+1);
include “koneksi.php”;
$edit=mysql_query(“update voting set bagusskl=’$bagusskl2′ where no=’1′ “);
}
if($vote==’2′)
{
$bagus2=($bagus+1);
include “koneksi.php”;
$edit=mysql_query(“update voting set bagus=’$bagus2′ where no=’1′ “);
}
if($vote==’3′)
{
$cukup2=($cukup+1);
include “koneksi.php”;
$edit=mysql_query(“update voting set cukup=’$cukup2′ where no=’1′ “);
}
if($vote==’4′)
{
$jelek2=($jelek+1);
include “koneksi.php”;
$edit=mysql_query(“update voting set jelek=’$jelek2′ where no=’1′ “);
}
header(“location:index.php”);
?>

4. Kemudian jika anda ingin menambahkan gambar / chart pada masing – masing status voting :

Buatlah 5 image di photoshop dengan ukuran 5 x 10 pixel warna terserah dibedakan saja menurut status
dengan masing masing nama : voting1.jpg , voting2.jpg ,voting3.jpg , voting4.jpg , voting5.jpg

MEMBUAT FORM LOGIN MENGGUNAKAN PHP DAN MYSQL

Buat databasenya terlebih dahulu di MySQL , kita akan memBuat nama databasenya  “admin” dan Tabelnya juga “admin”
 lihat pada gambar
Yaitu terdiri dari 6 file yaitu: id, nama, email, kelamin, user, dan password. Primary key nya  “id”
Cara input data klik pada insert atau sisipkan
Password jangan lupa buat fungsi” MD5”, lalu Klik GO
Selanjutnya kita akan membuat file koneksi, login, keluar dan home. Simpan filenya kedalam folder “htdocs “  dan buat folder satu lagi dengan nama “login”, ingat , ini hanyalah contoh...

Selanjutnya kita membuat koneksi
Script Koneksi:
html>
<head>
</head>
<body>
<?
ini_set('display_errors',FALSE);
$host="localhost";
$user="root";
$pass="";
$db="admin";


$koneksi=mysql_connect($host,$user,$pass);
$tanggal=date("Y-m-d H:i:s");

if ($koneksi)
{
                //echo "berhasil : )";
}else{
                ?><script language="javascript">alert("Gagal Koneksi Database MySql !!")</script><?
}

?>

</body>
</html>

Simpan dengan nama “conn.php”
Selanjutnya membuat menu “login”
<? session_start();
if (isset($_POST['admin']))
{
                include ("conn.php");
                $user_name=htmlentities((trim($_POST['admin'])));
                $password=htmlentities(md5($_POST['kunci']));
               
                $login=mysql_db_query($db,"select * from admin where user='$user_name' and password='$password'",$koneksi);
               
                $cek_login=mysql_num_rows($login);
                                if (empty($cek_login))
                                {
                                                ?><script language="javascript">
                                                alert("Maaf, Password Anda salah!!");
                                                document.location="login.php";
                                                </script><?
                                }
                                else
                                {
                                                //daftarkan ID jika user dan password BENAR
                                                while ($row=mysql_fetch_array($login))
                                                {
                                                                $id=$row[0];
                                                                session_register('id');
                                                                session_register('user_name');
                                                }
                                                echo "<script> document.location.href='home.php'; </script>";
                                }
}
?>


<html>
<title>Login</title>
<head>
<script language="javascript">
function cek(){
                var user= document.getElementById('userid').value;
                var pass= document.getElementById('passwd').value;
                if(user.replace(/^\s+|\s+$/g, '')==''){
                                alert('Username Harus Diisi!');
                                return false;
                }
                if(pass.replace(/^\s+|\s+$/g, '')==''){
                                alert('Password Harus diisi!');
                                return false;
                }
                return true;
}
</script>
</head>

<form action="login.php" method="post">
  <p align="center"><? echo $status;?></p>
  <table width="251" height="101" border="0" align="center">
<tr valign="bottom">
                <td width="104" height="35"><font size="4" face="verdana">Username</font></td>
                <td width="137"><input type="text" name="admin" size="20" id="userid"></td>
</tr>

<tr valign="top">
                <td height="34"><font size="4" face="verdana">Password</font></td>
                <td><input type="password" name="kunci" size="20" id="passwd"></td>
</tr>

<tr>
                <td>&nbsp;</td>
                <td><input name="submit" type="submit" onClick="return cek()" value="LOGIN"></td>
</tr>
</table>
</form>

</body>
</html>

Selanjutnya Simpan dengan nama “login.php”
Selanjutnya kita akan membuat menu utama
<? session_start();
if (session_is_registered('id'))
{
                $_SESSION['id'];
                $_SESSION['user'];
               
                ?>
                <html>
                <head>
                                <title>[Admin]</title>
                                <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
                                <style type="text/css">
                                <!--
.style2 {
                font-family: "comic Sans MS";
                font-size: 14px;
}
.style3 {
                font-family: Arial, Helvetica, sans-serif;
                font-style: italic;
}
.style4 {font-family: Arial, Helvetica, sans-serif}
.style5 {
                color: #FF0000;
                font-weight: bold;
}
                                -->
                                </style>
                </head>
                <body background="./img/background.jpg">
                <p>&nbsp;</p>
                                <table border="0" align="center" bgcolor="#FFFFFF">
                                <tr>
                                                <td width="501">
                                               
                                               
                                               
                                                <table width="547" height="368" border="0" align="center">
                                                <tr>
                                                                <td width="444" height="32" align="center" valign="top" class="style4"><marquee behavior="scroll" scrollamount="3">Selamat Datang <? echo $_SESSION['user_name'];?>
                                                                </marquee>
                                                                </td>
                                                </tr>
                                                <tr>
                                                                <td height="21" align="center" bgcolor="#00CCFF"><a href="logout.php" class="style5" title="Keluar">Menu Logout</a></td>
                                                </tr>
                                                <tr>
                                                                <td height="260" align="center" bgcolor="#0099FF">
                                                                  <span class="style3">isi dari web anda</span></td>
                                                </tr>
                                                <tr>
                                                                <td height="45"><div align="center" class="style2">Copyright &copy; ismade.blogspot.com</div></td>
                                                </tr>
                                                </table>
                                               
                                               
                                  </td>
                                </tr>
                                </table>
                    <p>&nbsp;</p>
                </body>
                </html>
<?
}else{
                ?><script language="javascript">
                alert("Maaf, Anda tidak berhak mengakses halaman ini!!");
                document.location="login.php";
                </script>
                <?
}
?>
Simpan dengan nama “home.php”
Lalu kita membuat file logout
<? session_start();
if (session_is_registered('id'))
{
                session_unregister("id");
                session_unregister("user_name");
                //session_destroy();
                ?><script language="javascript">
                alert("Anda Berhasil logout.");
                document.location="login.php";
                </script><?
               
}else{
                ?><script language="javascript">
                alert("Maaf, Anda tidak berhak mengakses halaman ini!!");
                document.location="login.php";
                </script>
                <?
}
?>

Simpan dengan nama “logout.php”
Sampai disini dulu , apabila langkah ya benar maka akan tampil seperti berikut
selamat mencoba

Sabtu, 10 Desember 2011

php sql Sistem Informasi Barang

Sistem Informasi Barang


di sini  saya berbagi program php sql tentang informasi barang.
bagi yang berkeinginan untuk mendapatkan program tersebut
bisa dowload link di bawah ini





Membuat Form Login


Membuat Form Login



Yang pertama kita buat dulu database dengan nama login, lalu buat sebuah tabel dengan nama tabel_user.
create database login;
use login;
create table tabel_user (id int(10) not null auto_increment primary key,
namauser varchar(50),
password varchar(50));
insert into tabel_user value ("1","admin","admin123");
Berikut skrip untuk membuat formnya, simpan sebagai index.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
<html>
<head>
<title>Form Login</title>
</head>

<body>
<?php
//bagian ketika password atau user salah memasukkan
if(isset($_GET['error'])) {
        echo "Anda Bukan Administrator";}
?>
<form name="form1" method="post" action="proses_login.php">
  <table border="0">
    <tr>
      <td>Username</td>
      <td>:</td>
      <td><label>
        <input type="text" name="namauser" id="namauser" />
      </label></td>
    </tr>
    <tr>
      <td>Password</td>
      <td>:</td>
      <td><label>
        <input type="text" name="pass" id="pass" />
      </label></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td><input type="submit" name="login" id="login" value="L O G I N" />
      &nbsp;
      <label>
        <input type="reset" name="Reset" id="button" value="C A N C E L" />
      </label></td>
    </tr>
  </table>
</form>
</body>
</html>
<?php
//bagian ketika password atau user salah memasukkan
if(isset($_GET['error'])) {
echo “Anda Bukan Administrator”;}
?>
Bagian ini merupakan fungsi penampil informasi saja, artinya jika kita salah memasukkan password/username maka skrip akan memberikan informasi “Anda Bukan Administrator“.Kemudian pada bagian
<form name=”form1″ method=”post” action=”proses_login.php”>
Bagian ini merupakan proses kemana data dari form nanti akan menuju langkah selanjutnya yaitu proses_login.php. Untuk lebih jelasnya anda bisa melihat lagi artikel saya tentang membuat buku tamu
Skrip berikutnya, koneksi.php
1
2
3
4
5
6
7
8
<?php
$host="localhost";
$user="root";
$pass="admin";
$datab="login";
$koneksi=mysql_connect($host,$user,$pass) or die ("ERROR");
$opdb = mysql_select_db($datab);
?>
proses_login.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
include('koneksi.php');
$login = mysql_query("SELECT * FROM tabel_user WHERE namauser = '$_POST[namauser]' AND password = '$_POST[pass]'");

$hitungbaris = mysql_num_rows($login);
$hitungbaris1 = mysql_fetch_array($login);
if ($hitungbaris > 0) {
        session_start();
        session_register("namauser");
        $_SESSION[namauser] = $hitungbaris1[namauser];
        header("location:login.php");
        }
        else
        {
               header("location:index.php?error");
        }
?>
Mari kita bahas satu persatu pada proses_login.php.
*include (koneksi.php) – koneksi.php merupakan file yang berisi penghubung antara program dengan database,oleh karena itu kita ikut sertakan dengan fungsi include.
*mysql_query – berisi query atau fungsi untuk mencocokkan isi tabel_user dengan inputan pada form.
*session_register – artinya kita mendaftarkan sebuah session (username) agar data-data yang berhubungan dengan username selalu dipakai, session selalu diawali dengan session_start().
*$_SESSION[namauser] = $hitungbaris1[namauser]; – artinya , jika nama session sama dengan tabel_user maka form akan diproses ke halaman login.php , jika tidak akan memanggil skrip
<?php
//bagian ketika password atau user salah memasukkan
if(isset($_GET['error'])) {
echo “Anda Bukan Administrator”;}
?>
login.php pada contoh ini hanya berisi konfirmasi bahwa kita telah berhasil login, jadi bisa dikembangkan sendiri.
<html>
<head>
<title>Login sukses</title>
</head>

<body>
<h1>Login Sukses, Selamat Datang</h1>
<a href="logout.php">logout</a>
</body>
</html>
yang terakhir adalah logout.php, file ini berisi skrip untuk menutup session dan mengembalikan ke halaman awal
1
2
3
4
5
6
<?php
session_start();
unset($_SESSION['username']);
session_destroy();
header("Location: index.php");
?>
Semoga Bermanfaat :)

Membuat Script Upload Download File Dengan Batasan Hak Akses

Membuat Script Upload Download File Dengan Batasan Hak Akses
.OK… bagaimana ide dan langkah-langkah membuatnya? simak artikel ini lebih lanjut.

Langkah pertama, kita siapkan terlebih dahulu 2 buah tabel yaitu tabel ‘user’ dan tabel ‘upload’. Tabel ‘user’ digunakan untuk menyimpan data user yang berhak mengakses, serta tabel ‘upload’ untuk menyimpan file-file yang diupload oleh user.

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)

Pada tabel ‘upload’, field ID digunakan untuk memberikan nomor ID dari setiap file supaya unik (pembeda tiap file) karena bisa jadi nama file yang diupload user adalah sama. Field ‘name’ terkait dengan nama file yang diupload, ‘type’ terkait dengan jenis file apakah berupa image, text file atau dokumen dll, ‘size’ menyatakan ukuran file, dan ‘content’ untuk menyimpan isi file (di sini menggunakan blob atau mediumblob). Nah.. kemudian field ‘username’ digunakan untuk memberikan informasi kepemilikan dari file, milik user siapakah file tersebut.
Selanjutnya untuk sekedar mencoba, Anda bisa sekalian tambahkan beberapa user

1.INSERT INTO `user` VALUES ('a', 'pass1');
2.INSERT INTO `user` VALUES ('b', 'pass2');
Catatan: dalam contoh ini sengaja saya tidak mengenkripsi password login masing-masing username supaya Anda bisa mencoba. Namun.. lebih baik jika Anda gunakan enkripsi md5.
Langkah kedua, kita siapkan form login untuk user
index.htm

01.<h1>Login User</h1>
02. 
03.<form method="post" action="login.php">
04.<table>
05.  <tr><td>Username</td><td><input type="text" name="user"></td></tr>
06.  <tr><td>Password</td><td><input type="password" name="pass"></td></tr>
07.  <tr><td></td><td><input type="submit" name="submit" value="Submit"></td></tr>
08.</table>
09.</form>
Langkah kedua, kita bisa buat script untuk memproses loginnya
login.php

01.<?php
02. 
03.// koneksi ke mysql
04.mysql_connect('dbhost', 'dbuser', 'dbpass');
05.mysql_select_db('dbname');
06. 
07.// membaca username dan password dari form login
08.$username = $_POST['user'];
09.$password = $_POST['pass'];
10. 
11.// mencari data user yang login tujuannya untuk mendapatkan password dari database
12.$query = "SELECT * FROM user WHERE username = '$username'";
13.$hasil = mysql_query($query);
14.$data  = mysql_fetch_array($hasil);
15. 
16.// mencocokkan password user dari database dengan password dari form
17.if ($password == $data['password'])
18.{
19.   // jika kedua password sama, maka login berhasil
20.   // simpan username ke dalam session
21. 
22.   session_start();
23.   $_SESSION['username'] = $username;
24.   echo "<h1>Login Sukses</h1>";
25.   echo "<h2>Anda login sebagai : ".$username."</h2>";
26. 
27.   // tampilkan menu user
28.   echo "<p>[ <a href='formupload.php'>Upload</a> ] [ <a href='list.php'>Daftar File</a> ] [ <a href='logout.php'>Logout</a> ]</p>";
29.}
30.else
31.{
32.   // jika kedua password tidak cocok, maka login gagal
33.   echo "<h1>Maaf login gagal</h1>";
34.}
35. 
36.?>
Perhatikan script di atas! Terdapat 3 buah menu yang akan tampil begitu user berhasil login. Menu ‘upload’ untuk melakukan proses upload file, ‘daftar file’ untuk melihat daftar file apa saja yang telah diuploadnya, dan ‘logout’ untuk proses logout. Nah.. di antara ketiga menu tersebut, menu ‘upload’ yang diarahkan ke script ‘formupload.php’ dan ‘daftar file’ yang diarahkan ke script ‘list.php’ ini hendaknya diproteksi supaya hanya bisa diakses oleh user yang telah terdaftar dalam database saja. Maksudnya, kedua script tersebut haruslah hanya bisa diakses oleh user yang telah melakukan login dengan sukses saja. Sehingga untuk keperluan ini, kita harus mengatur strategi supaya user nakal tidak bisa mengakses kedua script tersebut tanpa login (by pass)… he.. 3x kayak mau perang saja pake strategi segala :-)
Nah… untuk mencegah ada penyusup yang masuk tanpa login, kita buat dulu script untuk pengamanannya.
cek.php

01.<?php
02. 
03.session_start();
04. 
05.if (!isset($_SESSION['username']))
06.{
07.   echo "<h1>Maaf Anda belum login</h1>";
08.   exit;
09.}
10. 
11.?>
Ide dari script pengaman di atas adalah dengan mengecek keberadaan session dengan nama ‘$_SESSION['username']‘. Bila login berhasil, maka session tersebut ada (perhatikan kembali script login.php). Namun bila user mencoba masuk tanpa login, maka keberadaan session ini tidak ada. Sehingga bila session tersebut dideteksi tidak ada, maka ditolak dengan pesan ‘Maaf Anda belum login’.
Nah… selanjutnya script cek.php di atas diincludekan ke dalam script ‘formupload.php’ dan ‘list.php’.
Langkah berikutnya, kita sudah bisa buat script untuk formupload.php nya
formupload.php

01.<?php
02.session_start();
03.include "cek.php";
04. 
05.// membaca nama user yang tersimpan dalam session
06.$username = $_SESSION['username'];
07. 
08.echo "<h1>Anda login sebagai : ".$username."</h1>";
09.echo "<p>[ <a href='formupload.php'>Upload</a> ] [ <a href='list.php'>Daftar File</a> ] [ <a href='logout.php'>Logout</a> ]</p>";
10.echo "<p>Silakan upload file</p>";
11.?>
12. 
13.// form untuk upload
14. 
15.<form method="post" enctype="multipart/form-data" action="upload.php">
16.<table>
17.<tr><td><input type="hidden" name="MAX_FILE_SIZE" value="2000000">
18.        <input name="userfile" type="file">
19.    </td>
20.    <td><input name="upload" type="submit" value="Upload">
21.    </td>
22.</tr>
23.</table>
24.</form>
Perhatikan pada tag <input name=”userfile” type=”file”>. Tag ini digunakan untuk input file yang akan diupload. Tag ini diberikan nama komponen ‘userfile’. Nama komponen ini selanjutnya akan digunakan dalam script proses uploadnya.
upload.php

01.<?php
02. 
03.session_start();
04. 
05.// untuk keamanan, kita juga includekan cek.php
06.include "cek.php";
07. 
08.// membaca nama file
09.$fileName = $_FILES['userfile']['name'];    
10. 
11.// membaca nama file temporary
12.$tmpName  = $_FILES['userfile']['tmp_name'];
13. 
14.// membaca size file
15.$fileSize = $_FILES['userfile']['size'];
16. 
17.// membaca tipe file
18.$fileType = $_FILES['userfile']['type'];
19. 
20.// membaca username yang disimpan dalam session
21.// username ini sekaligus menyatakan informasi pemilik file
22.$username = $_SESSION['username'];
23. 
24.// langkah membaca isi file yang diupload
25.$fp      = fopen($tmpName, 'r');
26.$content = fread($fp, filesize($tmpName));
27.$content = addslashes($content);
28.fclose($fp);
29. 
30.// koneksi ke mysql
31.mysql_connect('dbhost','dbuser','dbpass');
32.mysql_select_db('dbname');
33. 
34.// query SQL untuk menyimpan file ke database disertai username pemiliknya
35. 
36.$query = "INSERT INTO upload (name, size, type, content, username)
37.          VALUES ('$fileName', '$fileSize', '$fileType', '$content', '$username')";
38. 
39.mysql_query($query);
40.echo "<h1>Anda login sebagai : ".$username."</h1>";
41.echo "<p>[ <a href='formupload.php'>Upload</a> ] [ <a href='list.php'>Daftar File</a> ] [ <a href='logout.php'>Logout</a> ]</p>";
42. 
43.// konfirmasi
44. 
45.echo "<p>File ".$fileName." telah terupload</p>";
46. 
47.?>
Setelah kita membuat script untuk proses upload, berikutnya kita buat script list.php untuk menampilkan daftar file yang telah diupload
list.php

01.<?php
02. 
03.session_start();
04. 
05.include "cek.php";
06. 
07.// koneksi ke mysql
08.mysql_connect('dbhost','dbuser','dbpass');
09.mysql_select_db('dbname');
10. 
11.// membaca username yang disimpan dalam session
12.$username = $_SESSION['username'];
13. 
14.echo "<h1>Anda login sebagai : ".$username."</h1>";
15.echo "<p>[ <a href='formupload.php'>Upload</a> ] [ <a href='list.php'>Daftar File</a> ] [ <a href='logout.php'>Logout</a> ]</p>";
16. 
17.echo "<h2>Daftar File Anda</h2>";
18. 
19.// query untuk mencari file yang telah diupload milik si user yang sedang login
20.$query = "SELECT * FROM upload WHERE username = '$username'";
21. 
22.$hasil = mysql_query($query);
23. 
24.// menampilkan nama-nama file yang telah diupload si user yang sedang login
25.echo "<ul>";
26.while ($data = mysql_fetch_array($hasil))
27.{
28.    echo "<li><a href='download.php?id=".$data['id']."'>".$data['name']."</a> (<a href='delete.php?id=".$data['id']."'>x</a>)</li>";
29.}
30.echo "</ul>";
31. 
32.?>
Pada daftar file yang tampil, si user dapat mendownload file nya dengan mengklik nama filenya atau menghapusnya dengan mengklik tanda X yang ada di sebelah kanan nama file. Untuk proses download, linknya akan diarahkan ke script ‘download.php’ dan hapus file di arahkan ke ‘delete.php’. Kedua link tersebut ditambahkan parameter ‘?id=…’ yang digunakan untuk mengidentifikasi file apa yang akan didownload atau dihapus, mengingat pembeda antar file adalah ID nya.
Bagaimana script download.php nya? trus bagaimana idenya supaya file tersebut hanya berhak didownload oleh user yang telah menguploadnya atau yang berhak? ya… konsepnya kita cari dulu nama username pemilik file yang akan didownload dalam database. Selanjutnya kita cocokkan username pemiliknya dengan username yang sedang login. Jika sama atau cocok, maka bolehlah file tersebut didownload. Jika tidak, maka tolak mentah-mentah :-)
download.php

01.<?php
02. 
03.session_start();
04. 
05.// sisipkan cek.php untuk keamanan
06.include "cek.php";
07. 
08.// koneksi ke mysql
09.mysql_connect('dbhost','dbuser','dbpass');
10.mysql_select_db('dbname');
11. 
12.// membaca nilai ID file yang berasal dari link download.php?id=...
13.$id      = $_GET['id'];
14. 
15.// membaca username yang sedang login melalui session
16.$username = $_SESSION['username'];
17. 
18.// query untuk mencari data file yang akan didownload dalam database
19.$query   = "SELECT * FROM upload WHERE id = $id";
20. 
21.$hasil   = mysql_query($query);
22.$data    = mysql_fetch_array($hasil);
23. 
24.// mencocokkan username pemilik file  dengan username yang sedang login
25.if ($username == $data['username'])
26.{
27.   // bila usernamenya cocok maka file boleh didownload
28.   header("Content-Disposition: attachment; filename=".$data['name']);
29.   header("Content-length: ".$data['size']);
30. 
31.   header("Content-type: ".$data['type']);
32. 
33.   echo $data['content'];
34.}
35.else
36.{
37.   // bila tidak sama maka file tidak boleh didownload
38.   echo "<h1>Anda tidak berhak mengakses file</h1>";
39.}
40.?>
Konsep yang hampir sama juga kita terapkan dalam delete.php. Artinya bahwa mekanisme pencocokan username pemilik file dengan username yang sedang login juga harus dilakukan sebelum file dihapus.
delete.php

01.<?php
02. 
03.session_start();
04. 
05.include "cek.php";
06. 
07.// koneksi ke mysql
08.mysql_connect('dbhost','dbuser','dbpass');
09.mysql_select_db('dbname');
10. 
11.// membaca id file yang akan dihapus
12.$id = $_GET['id'];
13. 
14.// membaca username yang sedang login
15.$username = $_SESSION['username'];
16. 
17.// mencari username pemilik file yang akan dihapus
18.$query = "SELECT username FROM upload WHERE id = $id";
19.$hasil = mysql_query($query);
20.$data  = mysql_fetch_array($hasil);
21. 
22.// mencocokkan username pemilik file dengan username yang sedang login
23.if ($username == $data['username'])
24.{
25.   // jika cocok maka hapus file
26.   $query = "DELETE FROM upload WHERE id = $id";
27.   mysql_query($query);
28. 
29.   echo "<h1>Anda login sebagai : ".$username."</h1>";
30.   echo "<p>[ <a href='formupload.php'>Upload</a> ] [ <a href='list.php'>Daftar File</a> ] [ <a href='logout.php'>Logout</a> ]</p>";
31. 
32.   echo "<p>File telah dihapus</p>";
33.}
34.else
35.{
36.   // jika tidak cocok maka tolak
37.   echo "<h1>Maaf Anda tidak berhak menghapus file ini</h1>";
38.}
39. 
40.?>
Yang terakhir, jangan lupa buat script logout.php untuk proses logoutnya. Konsep logout adalah dengan menghapus session yang digunakan untuk menyimpan username yang login.
logout.php

01.<?php
02. 
03.session_start();
04. 
05.// menghapus session
06.session_destroy();
07.echo "<h1>Anda sudah logout</h1>";
08. 
09.?>
Perhatian:
Script di atas sudah melalui tahap pengujian dan dipastikan 100% dapat berjalan dengan normal. Bila Anda mencoba dan mengalami kesalahan atau berjalan tidak normal maka dipastikan kesalahan ada pada Anda. Coba cek kembali script yang Anda buat. Bila kesalahan masih berlanjut, maka downloadlah script di bawah ini.
http://www.ziddu.com/download/17764689/uploaddownload.zip.html

Terbit Lapak

Lapak

 
Design by Free WordPress Themes | Bloggerized by dyan123 - Premium Blogger Themes | cheap international calls